From: Michael Brown Date: Sun, 28 Nov 2010 17:26:27 +0000 (+0000) Subject: [build] Use __builtin_offsetof() when available X-Git-Tag: v1.20.1~2376 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=795793b3a4751936db4dc331aeb5f5549cfb3987;p=thirdparty%2Fipxe.git [build] Use __builtin_offsetof() when available Some newer versions of gcc (observed with a patched gcc 4.5.1) seem to treat our offsetof() implementation as not being a compile-time constant. Fix by using __builtin_offsetof() when available. (As with the original offsetof() macro, this code is copied from the Linux kernel's stddef.h.) Reported-by: Arkadiusz Miskiewicz Signed-off-by: Michael Brown --- diff --git a/src/include/stddef.h b/src/include/stddef.h index 2a02a8985..8e69545c2 100644 --- a/src/include/stddef.h +++ b/src/include/stddef.h @@ -10,7 +10,11 @@ FILE_LICENCE ( GPL2_ONLY ); #define NULL ((void *)0) #undef offsetof +#ifdef __compiler_offsetof +#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER) +#else #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif #undef container_of #define container_of(ptr, type, member) ({ \