Le mer 02/06/2004 à 10:03, Steven M. Christensen a écrit : > I have gone back to the creation of glib and determined that the > problem is there and not in atk, though the problem with glib's > configure step is probably occurs in atk, pango, and gtk also. The config.log extract below is quite correct. dgettext and other symbols are fisrt seached in libc, and as they are not found there, they are searched in libintl, this time with success. There is no proble there. > With ./configure --with-libiconv=gnu in the glib source directory, > and looking down the config.log I find > > configure:6053: result: yes > configure:6057: checking libintl.h presence > configure:6067: gcc -E -DNDEBUG -I/usr/local/BerkeleyDB.4.2/include -I/usr/local/ssl/include -I/usr/openwin/include -I/usr/local/lib/glib-2.0/include -I/usr/local/include conftest.c > configure:6073: $? = 0 > configure:6093: result: yes > configure:6128: checking for libintl.h > configure:6135: result: yes > configure:6146: checking for dgettext in libc > configure:6169: gcc -o conftest -g -O2 -DNDEBUG -I/usr/local/BerkeleyDB.4.2/include -I/usr/local/ssl/include -I/usr/openwin/include -I/usr/local/lib/glib-2.0/include -I/usr/local/include -R/usr/lib -L/usr/lib -R/usr/openwin/lib -L/usr/openwin/lib -R/usr/local/lib -L/usr/local/lib -L/usr/local/BerkeleyDB.4.2/lib -R/usr/local/BerkeleyDB.4.2/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -lintl conftest.c >&5 > Undefined first referenced > symbol in file > libintl_dgettext /var/tmp//ccwCMoJv.o > ld: fatal: Symbol referencing errors. No output written to conftest > collect2: ld returned 1 exit status > configure:6175: $? = 1 > configure: failed program was: > | /* confdefs.h. */ > | > | #define PACKAGE_NAME "glib" > | #define PACKAGE_TARNAME "glib" > | #define PACKAGE_VERSION "2.4.1" > | #define PACKAGE_STRING "glib 2.4.1" > | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=glib" > | #define GLIB_MAJOR_VERSION 2 > | #define GLIB_MINOR_VERSION 4 > | #define GLIB_MICRO_VERSION 1 > | #define GLIB_INTERFACE_AGE 1 > | #define GLIB_BINARY_AGE 401 > | #define G_COMPILED_WITH_DEBUGGING "minimum" > | #ifdef __cplusplus > | extern "C" void std::exit (int) throw (); using std::exit; > | #endif > | #define _FILE_OFFSET_BITS 64 > | #define STDC_HEADERS 1 > | #define HAVE_SYS_TYPES_H 1 > | #define HAVE_SYS_STAT_H 1 > | #define HAVE_STDLIB_H 1 > | #define HAVE_STRING_H 1 > | #define HAVE_MEMORY_H 1 > | #define HAVE_STRINGS_H 1 > | #define HAVE_INTTYPES_H 1 > | #define HAVE_UNISTD_H 1 > | #define HAVE_LOCALE_H 1 > | #define HAVE_LC_MESSAGES 1 > | /* end confdefs.h. */ > | > | #include <libintl.h> > | > | int > | main () > | { > | return (int) dgettext ("","") > | ; > | return 0; > | } > configure:6201: result: no > configure:6315: checking for bindtextdomain in -lintl > configure:6345: gcc -o conftest -g -O2 -DNDEBUG -I/usr/local/BerkeleyDB.4.2/include -I/usr/local/ssl/include -I/usr/openwin/include -I/usr/local/lib/glib-2.0/include -I/usr/local/include -R/usr/lib -L/usr/lib -R/usr/openwin/lib -L/usr/openwin/lib -R/usr/local/lib -L/usr/local/lib -L/usr/local/BerkeleyDB.4.2/lib -R/usr/local/BerkeleyDB.4.2/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -lintl conftest.c -lintl >&5 > configure:6351: $? = 0 > configure:6355: test -z > || test ! -s conftest.err > configure:6358: $? = 0 > configure:6361: test -s conftest > configure:6364: $? = 0 > configure:6377: result: yes > configure:6380: checking for dgettext in -lintl > configure:6410: gcc -o conftest -g -O2 -DNDEBUG -I/usr/local/BerkeleyDB.4.2/include -I/usr/local/ssl/include -I/usr/openwin/include -I/usr/local/lib/glib-2.0/include -I/usr/local/include -R/usr/lib -L/usr/lib -R/usr/openwin/lib -L/usr/openwin/lib -R/usr/local/lib -L/usr/local/lib -L/usr/local/BerkeleyDB.4.2/lib -R/usr/local/BerkeleyDB.4.2/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -lintl conftest.c -lintl >&5 > configure:6416: $? = 0 > configure:6420: test -z > || test ! -s conftest.err > configure:6423: $? = 0 > configure:6426: test -s conftest > configure:6429: $? = 0 > configure:6442: result: yes > configure:6542: checking for bind_textdomain_codeset > configure:6599: gcc -o conftest -g -O2 -DNDEBUG -I/usr/local/BerkeleyDB.4.2/include -I/usr/local/ssl/include -I/usr/openwin/include -I/usr/local/lib/glib-2.0/include -I/usr/local/include -R/usr/lib -L/usr/lib -R/usr/openwin/lib -L/usr/openwin/lib -R/usr/local/lib -L/usr/local/lib -L/usr/local/BerkeleyDB.4.2/lib -R/usr/local/BerkeleyDB.4.2/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib -lintl conftest.c -lintl >&5 > Undefined first referenced > symbol in file > bind_textdomain_codeset /var/tmp//ccCriMJe.o > ld: fatal: Symbol referencing errors. No output written to conftest > collect2: ld returned 1 exit status > configure:6605: $? = 1 > configure: failed program was: > | /* confdefs.h. */ > | > | #define PACKAGE_NAME "glib" > | #define PACKAGE_TARNAME "glib" > | #define PACKAGE_VERSION "2.4.1" > | #define PACKAGE_STRING "glib 2.4.1" > | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=glib" > | #define GLIB_MAJOR_VERSION 2 > | #define GLIB_MINOR_VERSION 4 > | #define GLIB_MICRO_VERSION 1 > | #define GLIB_INTERFACE_AGE 1 > | #define GLIB_BINARY_AGE 401 > | #define G_COMPILED_WITH_DEBUGGING "minimum" > | #ifdef __cplusplus > | extern "C" void std::exit (int) throw (); using std::exit; > | #endif > | #define _FILE_OFFSET_BITS 64 > | #define STDC_HEADERS 1 > | #define HAVE_SYS_TYPES_H 1 > | #define HAVE_SYS_STAT_H 1 > | #define HAVE_STDLIB_H 1 > | #define HAVE_STRING_H 1 > | #define HAVE_MEMORY_H 1 > | #define HAVE_STRINGS_H 1 > | #define HAVE_INTTYPES_H 1 > | #define HAVE_UNISTD_H 1 > | #define HAVE_LOCALE_H 1 > | #define HAVE_LC_MESSAGES 1 > | /* end confdefs.h. */ > | /* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset. > | For example, HP-UX 11i <limits.h> declares gettimeofday. */ > | #define bind_textdomain_codeset innocuous_bind_textdomain_codeset > | > | /* System header to define __stub macros and hopefully few prototypes, > | which can conflict with char bind_textdomain_codeset (); below. > | Prefer <limits.h> to <assert.h> if __STDC__ is defined, since > | <limits.h> exists even on freestanding compilers. */ > | > | #ifdef __STDC__ > | # include <limits.h> > | #else > | # include <assert.h> > | #endif > | > | #undef bind_textdomain_codeset > | > | /* Override any gcc2 internal prototype to avoid an error. */ > | #ifdef __cplusplus > | extern "C" > | { > | #endif > | /* We use char because int might match the return type of a gcc2 > | builtin and then its argument prototype would still apply. */ > | char bind_textdomain_codeset (); > | /* The GNU C library defines this for functions which it implements > | to always fail with ENOSYS. Some functions are actually named > | something starting with __ and the normal name is an alias. */ > | #if defined (__stub_bind_textdomain_codeset) || defined (__stub___bind_textdomain_codeset) > | choke me > | #else > | char (*f) () = bind_textdomain_codeset; > | #endif > | #ifdef __cplusplus > | } > | #endif > | > | int > | main () > | { > | return f != bind_textdomain_codeset; > | ; > | return 0; > | } > configure:6630: result: no > > > ---------------------------------------------------- > > I took the code bits above and compiled them outside of configure. > If I take, for example > > #include <libintl.h> > > int > main () > { > return (int) dgettext ("","") > ; > return 0; > } > > and call it gtest.c, and then do gcc on it I get > > [417]> gcc -o gtest gtest.c > Undefined first referenced > symbol in file > libintl_dgettext /var/tmp//ccry6HWi.o > ld: fatal: Symbol referencing errors. No output written to gtest > collect2: ld returned 1 exit status > > but with gcc -o gtest gtest.c -lintl, it compiles and runs fine. > > So, it appears to me that there is a problem in the configure file. This > problem then propogates to the atk, pango, and gtk configures also. > > > Steve Christensen > > > From jean brefort normalesup org Wed Jun 2 01:23:57 2004 > > Subject: Re: compile failure gtk+ 2.4.0 and 2.4.1 on Solaris 8 > > From: Jean =?ISO-8859-1?Q?Br=E9fort?= <jean brefort normalesup org> > > To: "Steven M. Christensen" <steve smc vnet net> > > Cc: hnl_dk stofanet dk, gtk-list gnome org > > Date: 02 Jun 2004 07:28:50 +0200 > > X-Spam-Status: No, hits=-6.9 required=5.0 > > tests=IN_REP_TO,PGP_SIGNATURE_2,QUOTED_EMAIL_TEXT,REFERENCES, > > REPLY_WITH_QUOTES,USER_AGENT_XIMIAN > > autolearn=ham version=2.55 > > X-Spam-Level: > > X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) > > > > So the symbols that ld claims are missing are really present in > > libintl.so. This is quite strange. I have no more idea about how to > > solve your problem except changing the order of the libraries when > > calling ld. You can edit glib-2.0.pc (probably in > > /usr/local/lib/pkgconfig/) and if you have -lintl in the Libs variable, > > change the order (put it before -lglib-2.0). I'd be surprised if it > > works but it is the only think I can think about (it might also be a ld > > bug). > > >
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=