Re: gtk+ cannot be generted on AIX 4.1




Philippe.Defert@cern.ch writes:

> and I began to generate gtk+-0.99.3 and it worked OK except on
> rs6000-ibm-aix4.1.4 where the error is:
> 
> make all-recursive
> make[1]: Entering directory `/scratch/happi/GNU.DESK/gtk+-0.99.3'
> Making all in glib
> make[2]: Entering directory `/scratch/happi/GNU.DESK/gtk+-0.99.3/glib'
> ./libtool --mode=link gcc -g -O2 -Wall  -o libglib.la -rpath /usr/local/lib -version-info 1:0:0 garray.lo gcache.lo gerror.lo ghash.lo glist.lo gmem.lo gprimes.lo gslist.lo gtimer.lo gtree.lo gstring.lo gscanner.lo gutils.lo  
> rm -f .libs/libglib.la .libs/libglib.*
> /usr/local/bin/gnu/nm -B garray.o gcache.o gerror.o ghash.o glist.o gmem.o gprimes.o gslist.o gtimer.o gtree.o gstring.o gscanner.o gutils.o | sed -n -e 's/^.* [ABCDGISTUW] \([_A-Za-z][_A-Za-z0-9]*\)$/\1 \1/p' | sed 's/.* //' > .libs/libglib.so.1.0.0.exp
> gcc -o .libs/libglib.so.1 garray.o gcache.o gerror.o ghash.o glist.o gmem.o gprimes.o gslist.o gtimer.o gtree.o gstring.o gscanner.o gutils.o -Wl,-bE:.libs/libglib.so.1.0.0.exp -Wl,-bM:SRE -Wl,-bnoentry -lc
> /lib/crt0.o(.pr+0x28): : undefined reference to `main'
> make[2]: *** [libglib.la] Error 1
> make[2]: Leaving directory `/scratch/happi/GNU.DESK/gtk+-0.99.3/glib'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/scratch/happi/GNU.DESK/gtk+-0.99.3'
> make: *** [all-recursive-am] Error 2
> 
> It is with gcc-2.8.0 and libtool-1.0.

This is almost certainly a libtool bug (sort of). The problem seems
to be that libtool is trying to make the library as it would
using AIX's cc, but you have CC=gcc.

I don't know enough about shared libraries on AIX to say what the
proper fix is here. I would suggest reporting this problem to
bug-libtool@gnu.org. 

As a workaround, you could try adding the "-shared" flag to 
the appropriate place in ltconfig. 

That is, before the {$wl}-bE.... in the following.

  aix4*)
    allow_undefined_flag=unsupported
    archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
    hardcode_direct=yes
    hardcode_minus_L=yes
    ;;

It might convince gcc to not try to link in crt0.o.

If it is an option for you, you could try compiling with AIX's
compiler:

  CC=cc ./configure

(It really doesn't matter what version of libtool you have installed,
unless you want to upgrade the GTK sources to a newer version, but
1.0 is pretty old. GTK uses libtool-1.0f. libtool-1.0i is out on
alpha.gnu.org, I don't know if it fixes the problems in 1.0h.)

Regards,
                                        Owen



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