[Help-gnutls] Re: duplicate symbols complaint on Mac OS X 10.5.2
simon at josefsson.org
Thu Mar 20 10:47:31 CET 2008
ludo at gnu.org (Ludovic Courtès) writes:
> David Reiser <dbreiser at gmail.com> writes:
>> cc1: error: unrecognized command line option "-fgnu89-inline"
> Damn it, I just noticed that this option appeared in GCC 4.1.3 . The
> attached patch (applied to `master') fixes it (Simon: can you apply it
> to other branches as well, if needed?).
Thanks. I haven't branched off gnutls_2_4_x yet, fortunately, so there
is nothing for me to do about this.
> BTW, is there any reason why GnuTLS is now compiled in C99 mode? It
> doesn't seem to be explicitly set in `configure.in', so maybe some
> Gnulib module requires it somehow?
Yeah, gnulib calls AC_PROG_CC_STDC, which in modern autoconf enables C99
mode if the compiler supports it. The test looks like:
checking for gcc option to accept ISO C99... -std=gnu99
checking for gcc -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99
Anyway, I don't see any harm in setting the compiler in C99 mode if the
compiler supports it. GnuTLS optionally use several C99 features, such
as __func__, CPP macros with flexible number of parameters, stdbool.h.
If the compiler doesn't supports those, we'll disable those features or
use our gnulib-workarounds, which seems sub-optimal. We want our code
to work with C99.
I still don't see how this problem occur though. Exactly how is the
gmpz_abs symbol pulled into guile/src/*.o files? If gmpz_abs is inline
in gmp.h, should that be inlined into the guile code? Does setting the
compiler in gnu99 mode also set the linker in a different mode, that
causes this problem?
David, could you try build GnuTLS and passing ./configure the parameter
'ac_cv_prog_cc_c99=no'? Make sure configure output looks like:
checking for gcc option to accept ISO C99... (cached) unsupported
More information about the Gnutls-help