All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof
@ 2012-03-05  6:22 Stefan Weil
  2012-03-05 13:23 ` Andreas Färber
  2012-03-05 16:53 ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  0 siblings, 2 replies; 5+ messages in thread
From: Stefan Weil @ 2012-03-05  6:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Stefan Weil

The macro offsetof is defined in stddef.h. It is conforming to
the standards C89, C99 and POSIX.1-2001 (see man page), so it
is a sufficiently old standard.

Therefore chances are very high that QEMU never needs a local
definition of this macro.

osdep.h already includes stddef.h, so this patch simply removes
the unneeded code from the files configure and osdep.h.

If we ever need the local definition again, it should be added
to compiler.h (the macro is usually provided with the compiler,
it is not OS specific).

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 configure |   14 --------------
 osdep.h   |    3 ---
 2 files changed, 0 insertions(+), 17 deletions(-)

diff --git a/configure b/configure
index b607795..a260fab 100755
--- a/configure
+++ b/configure
@@ -2525,17 +2525,6 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
 fi
 
 ##########################################
-# check if the compiler defines offsetof
-
-need_offsetof=yes
-cat > $TMPC << EOF
-#include <stddef.h>
-int main(void) { struct s { int f; }; return offsetof(struct s, f); }
-EOF
-if compile_prog "" "" ; then
-    need_offsetof=no
-fi
-
 # spice probe
 if test "$spice" != "no" ; then
   cat > $TMPC << EOF
@@ -3200,9 +3189,6 @@ fi
 if test "$tcg_interpreter" = "yes" ; then
   echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
 fi
-if test "$need_offsetof" = "yes" ; then
-  echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
-fi
 if test "$fdatasync" = "yes" ; then
   echo "CONFIG_FDATASYNC=y" >> $config_host_mak
 fi
diff --git a/osdep.h b/osdep.h
index 432b91e..0350383 100644
--- a/osdep.h
+++ b/osdep.h
@@ -26,9 +26,6 @@
 #define unlikely(x)   __builtin_expect(!!(x), 0)
 #endif
 
-#ifdef CONFIG_NEED_OFFSETOF
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
-#endif
 #ifndef container_of
 #define container_of(ptr, type, member) ({                      \
         const typeof(((type *) 0)->member) *__mptr = (ptr);     \
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof
  2012-03-05  6:22 [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof Stefan Weil
@ 2012-03-05 13:23 ` Andreas Färber
  2012-03-05 13:49   ` Peter Maydell
  2012-03-05 16:53 ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
  1 sibling, 1 reply; 5+ messages in thread
From: Andreas Färber @ 2012-03-05 13:23 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-trivial, qemu-devel

Am 05.03.2012 07:22, schrieb Stefan Weil:
> The macro offsetof is defined in stddef.h. It is conforming to
> the standards C89, C99 and POSIX.1-2001 (see man page), so it
> is a sufficiently old standard.
> 
> Therefore chances are very high that QEMU never needs a local
> definition of this macro.
> 
> osdep.h already includes stddef.h, so this patch simply removes
> the unneeded code from the files configure and osdep.h.
> 
> If we ever need the local definition again, it should be added
> to compiler.h (the macro is usually provided with the compiler,
> it is not OS specific).
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>

Did you check when this was introduced and whether the commit message
gave any explanation why?

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof
  2012-03-05 13:23 ` Andreas Färber
@ 2012-03-05 13:49   ` Peter Maydell
  2012-03-05 17:29     ` Stefan Weil
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Maydell @ 2012-03-05 13:49 UTC (permalink / raw)
  To: Andreas Färber; +Cc: qemu-trivial, Stefan Weil, qemu-devel

On 5 March 2012 13:23, Andreas Färber <afaerber@suse.de> wrote:
> Am 05.03.2012 07:22, schrieb Stefan Weil:
>> The macro offsetof is defined in stddef.h. It is conforming to
>> the standards C89, C99 and POSIX.1-2001 (see man page), so it
>> is a sufficiently old standard.
>>
>> Therefore chances are very high that QEMU never needs a local
>> definition of this macro.

> Did you check when this was introduced and whether the commit message
> gave any explanation why?

It's been copied and moved around and rerationalised down to one
definition since then, but the first offsetof() definition was
added by Fabrice in fd6ce8f66 in May 2003, with no particular
comment about it. That is about as close as qemu gets to "it has
always been this way" :-)

Nearly a decade on, I think dropping it is probably reasonably
safe.

-- PMM

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH] osdep: Remove local definition of macro offsetof
  2012-03-05  6:22 [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof Stefan Weil
  2012-03-05 13:23 ` Andreas Färber
@ 2012-03-05 16:53 ` Stefan Hajnoczi
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2012-03-05 16:53 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-trivial, qemu-devel

On Mon, Mar 05, 2012 at 07:22:31AM +0100, Stefan Weil wrote:
> The macro offsetof is defined in stddef.h. It is conforming to
> the standards C89, C99 and POSIX.1-2001 (see man page), so it
> is a sufficiently old standard.
> 
> Therefore chances are very high that QEMU never needs a local
> definition of this macro.
> 
> osdep.h already includes stddef.h, so this patch simply removes
> the unneeded code from the files configure and osdep.h.
> 
> If we ever need the local definition again, it should be added
> to compiler.h (the macro is usually provided with the compiler,
> it is not OS specific).
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  configure |   14 --------------
>  osdep.h   |    3 ---
>  2 files changed, 0 insertions(+), 17 deletions(-)

Andreas and Peter, thanks for looking into whether it's safe to remove
offsetof().  I feel the risk is very low.

Thanks, applied to the trivial patches tree:
https://github.com/stefanha/qemu/commits/trivial-patches

Stefan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof
  2012-03-05 13:49   ` Peter Maydell
@ 2012-03-05 17:29     ` Stefan Weil
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Weil @ 2012-03-05 17:29 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-trivial, Andreas Färber, qemu-devel

Am 05.03.2012 14:49, schrieb Peter Maydell:
> On 5 March 2012 13:23, Andreas Färber <afaerber@suse.de> wrote:
>> Am 05.03.2012 07:22, schrieb Stefan Weil:
>>> The macro offsetof is defined in stddef.h. It is conforming to
>>> the standards C89, C99 and POSIX.1-2001 (see man page), so it
>>> is a sufficiently old standard.
>>>
>>> Therefore chances are very high that QEMU never needs a local
>>> definition of this macro.
>
>> Did you check when this was introduced and whether the commit message
>> gave any explanation why?
>
> It's been copied and moved around and rerationalised down to one
> definition since then, but the first offsetof() definition was
> added by Fabrice in fd6ce8f66 in May 2003, with no particular
> comment about it. That is about as close as qemu gets to "it has
> always been this way" :-)
>
> Nearly a decade on, I think dropping it is probably reasonably
> safe.
>
> -- PMM

Thanks for your mail.

If anybody likes historic discussion threads, here is one from 2008:

http://lists.nongnu.org/archive/html/qemu-devel/2008-06/msg00009.html

I am working without the local definition in my QEMU tree since 4 years now.

Cheers,
Stefan W.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-03-05 17:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-05  6:22 [Qemu-devel] [PATCH] osdep: Remove local definition of macro offsetof Stefan Weil
2012-03-05 13:23 ` Andreas Färber
2012-03-05 13:49   ` Peter Maydell
2012-03-05 17:29     ` Stefan Weil
2012-03-05 16:53 ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.