On 01/18/2011 05:20 PM, Glenn Morris wrote:
> the Mac (nextstep) port seems unhappy with the changes:
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7856
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7859
>
> [compiling unexmacosx.c]
> In file included from ../lib/unistd.h:110,
> from unexmacosx.c:94:
> ../lib/getopt.h:196: error: redefinition of 'struct option'
Thanks for mentioning that, as I don't follow the bug list.
This almost certainly seems to be a bug with gnulib's treatment
of getopt.h and unistd.h.
gnulib's unistd.h includes its getopt.h, which defines 'struct
option'. I suspect the problem is that MacOS X already defines
'struct option' somewhere; or perhaps somehow we're including both the
MacOS X 'getopt.h' and Emacs's getopt.h.
What does src/config.h #define __GETOPT_PREFIX to?
Would it be possible to send the output of the command of "gcc -E",
e.g., something like this (substituting the -I options that the failed
compile used)?
gcc -E -Demacs -DHAVE_CONFIG_H -I. -I/usr/local/emacs/trunk/src -I../lib \
-I/usr/local/emacs/trunk/src/../lib -I/opt/local/include/libxml2 \
-I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include \
-I/opt/local/include \
unexmacosx.c
That would help us find out which earlier header file is defining
'struct option'. Also, it might be helpful to know what src/config.h
looks like. Unfortunately I do not have access to a Mac OS X host
so I can't debug this directly.