Re: compile failure gtk+ 2.4.0 and 2.4.1 on Solaris 8



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.

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).
> 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]