.libs/gnutls_compress.o: In function `__strcspn_c1': /usr/include/bits/string2.h:972: multiple definition of `__strcspn_c1' .libs/gnutls_record.o:/usr/include/bits/string2.h:972: first defined here .libs/gnutls_compress.o: In function `__strcspn_c2': /usr/include/bits/string2.h:983: multiple definition of `__strcspn_c2' .libs/gnutls_record.o:/usr/include/bits/string2.h:983: first defined hereIt turns out that gnutls decides to enforce ISO C99 standard on all its source files, but a lot of the glibc header files use extern inline, which causes GCC to emit a symbol for each extern inline functions. GCC made a change to the extern inline semantics in GCC 4.3 in order to be ISO C99 compliant.
The fix I chose is to add -fgnu89-inline option to GCC throughout. It can be accomplished by invoking configure script like this:
./configure [config_flags...] CFLAGS=-fgnu89-inline
And this solves the problem.
1 comment:
This post helped me get the Command-T vim plugin working. Thanks a million.
Post a Comment