grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Do not mess with libc's prototypes


From: lkundrak
Subject: Re: [PATCH] Do not mess with libc's prototypes
Date: Fri, 8 Aug 2008 02:52:32 -0400 (EDT)
User-agent: SquirrelMail/1.4.8-4.0.1.el5.centos.2

Due to some more breakage, here's some more patch:

According to POSIX memmove and memcpy can actually be macros or whatever
(IIRC). We'd better not play with those in code that uses libc's headers
and is to be linked with libc.

2008-08-08  Lubomir Rintel  <address@hidden>

        * include/grub/misc.h: Surround memmove and memcpy prototypes with
        #ifndef GRUB_UTIL
        * kern/misc.c: Surround memmove, memcpy and memset prototypes with
        #ifndef GRUB_UTIL

Index: kern/misc.c
===================================================================
--- kern/misc.c (revision 1797)
+++ kern/misc.c (working copy)
@@ -44,11 +44,15 @@

   return dest;
 }
+#ifdef GRUB_UTIL
+#include <string.h>
+#else
 void *memmove (void *dest, const void *src, grub_size_t n)
   __attribute__ ((alias ("grub_memmove")));
 /* GCC emits references to memcpy() for struct copies etc.  */
 void *memcpy (void *dest, const void *src, grub_size_t n)
   __attribute__ ((alias ("grub_memmove")));
+#endif

 char *
 grub_strcpy (char *dest, const char *src)
@@ -514,8 +518,10 @@

   return s;
 }
+#ifndef GRUB_UTIL
 void *memset (void *s, int c, grub_size_t n)
   __attribute__ ((alias ("grub_memset")));
+#endif

 grub_size_t
 grub_strlen (const char *s)
Index: include/grub/misc.h
===================================================================
--- include/grub/misc.h (revision 1797)
+++ include/grub/misc.h (working copy)
@@ -39,8 +39,12 @@
 char *EXPORT_FUNC(grub_strncat) (char *dest, const char *src, int c);

 /* Prototypes for aliases.  */
+#ifdef GRUB_UTIL
+#include <string.h>
+#else
 void *EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
 void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
+#endif

 int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t
n);
 int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]