bug-libtool
[Top][All Lists]
Advanced

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

Re: libtools bugs on Tru64


From: Martin MOKREJŠ
Subject: Re: libtools bugs on Tru64
Date: Tue, 14 Jan 2003 11:19:46 +0100 (CET)

On Tue, 14 Jan 2003, Christian Cornelssen wrote:

Hi,

> Hi,
>
> I have not tracked libtool's CVS for weeks.  Anyway, `libtool.m4' may
> be the place to search for such bugs.
>
> On Mon, 13 Jan 2003, [iso-8859-2] Martin MOKREJ? wrote:
>
> > /bin/bash ../libtool --mode=link cc  -O2 -arch ev56  -o 
> > libgdk_pixbuf-2.0.la -rpath /software/@sys/usr/lib -version-info 200:0:200 
> > -export-symbols--regex "^[^_].*" gdk-pixbuf.lo gdk-pixbuf-animation.lo 
> > gdk-pixbuf-data.lo gdk-pixbuf-io.lo gdk-pixbuf-loader.lo 
> > gdk-pixbuf-scale.lo gdk-pixbuf-util.lo gdk-pixdata.lo 
> > gdk-pixbuf-enum-types.lo pixops/libpixops.la   -L/software/@sys/usr/lib 
> > -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 -lintl -liconv -lm    -lm 
> > -L/usr/local/lib -L/software/@sys/usr/lib -L/usr/local/openssl/lib 
> > -L/usr/lib -lintl
> > rm -fr .libs/libgdk_pixbuf-2.0.la .libs/libgdk_pixbuf-2.0.* 
> > .libs/libgdk_pixbuf-2.0.*
> > generating symbol list for `libgdk_pixbuf-2.0.la'
> > /usr/bin/nm -B  gdk-pixbuf.o gdk-pixbuf-animation.o gdk-pixbuf-data.o 
> > gdk-pixbuf-io.o gdk-pixbuf-loader.o gdk-pixbuf-scale.o gdk-pixbuf-util.o 
> > gdk-pixdata.o gdk-pixbuf-enum-types.o   pixops/.libs/libpixops.al | sed -n 
> > -e 's/^.*[         ]\([BCDEGQRST][BCDEGQRST]*\)[        ][      
> > ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' | sed 's/.* //' | sort | 
> > uniq > .libs/libgdk_pixbuf-2.0.exp
> > egrep -e "^[^_].*" ".libs/libgdk_pixbuf-2.0.exp" > 
> > ".libs/libgdk_pixbuf-2.0.expT"
> > mv -f ".libs/libgdk_pixbuf-2.0.expT" ".libs/libgdk_pixbuf-2.0.exp"
> > rm -fr .libs/libgdk_pixbuf-2.0.lax
> > mkdir .libs/libgdk_pixbuf-2.0.lax
> > rm -fr .libs/libgdk_pixbuf-2.0.lax/libpixops.al
> > mkdir .libs/libgdk_pixbuf-2.0.lax/libpixops.al
> > (cd .libs/libgdk_pixbuf-2.0.lax/libpixops.al && ar x 
> > /afs/gsf.de/sources/gtk+-2.2.0/gdk-pixbuf/pixops/.libs/libpixops.al)
> > for i in `cat .libs/libgdk_pixbuf-2.0.exp`; do printf "-exported_symbol " 
> > >> .libs/libgdk_pixbuf-2.0.so.200.200.0.exp; echo "$i" >> 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp; done; echo "-hidden">> 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp
> > ../libtool: printf: illegal option: -e
> > printf: usage: printf format [arguments]
> > ../libtool: printf: illegal option: -e
> > printf: usage: printf format [arguments]
> > ../libtool: printf: illegal option: -e
> > printf: usage: printf format [arguments]
> > [...]
> >
> >
> > The libtoolize script has to be edited and "printf" has to be replaced by
> > "/some/path/to/GNU/bin/printf". This problem appears not only on Tru64Unix, 
> > but
> > also Irix.
>
> The universal (libtool) fix is to use printf "%s " "-exported_symbol".
> Another way is to let the format string begin with a blank instead of
> ending in it.  Both approaches avoid relying on the availability of
> "--", which would be the normal way around that problem.  In any case,
> no specific printf should be needed.


Yes, I can confirm that

printf "%s " "-exported_symbol " works fine here, also with
/usr/bin/printf and with GNU printf.

I've edited the generated libtool script to be as
do printf \\\"%s \\\" \\\"-exported_symbol \\\"
instead of
do printf \\\"-exported_symbol \\\"

but I am not sure how to tweak libtool.m4. Could you please propose a
patch?



>
> > But, I have another problem, which I don't know how to solve:
> >
> > make[3]: Entering directory `/afs/gsf.de/sources/gtk+-2.2.0/gdk-pixbuf'
> > /bin/bash ../libtool --mode=link cc  -O2 -arch ev56  -o 
> > libgdk_pixbuf-2.0.la -rpath /software/@sys/usr/lib -version-info 200:0:200 
> > -export-symbols--regex "^[^_].*" gdk-pixbuf.lo gdk-pixbuf-animation.lo 
> > gdk-pixbuf-data.lo gdk-pixbuf-io.lo gdk-pixbuf-loader.lo 
> > gdk-pixbuf-scale.lo gdk-pixbuf-util.lo gdk-pixdata.lo 
> > gdk-pixbuf-enum-types.lo pixops/libpixops.la   -L/software/@sys/usr/lib 
> > -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 -lintl -liconv -lm    -lm 
> > -L/usr/local/lib -L/software/@sys/usr/lib -L/usr/local/openssl/lib 
> > -L/usr/lib -lintl
> > rm -fr .libs/libgdk_pixbuf-2.0.la .libs/libgdk_pixbuf-2.0.* 
> > .libs/libgdk_pixbuf-2.0.*
> > generating symbol list for `libgdk_pixbuf-2.0.la'
> > /usr/bin/nm -B  gdk-pixbuf.o gdk-pixbuf-animation.o gdk-pixbuf-data.o 
> > gdk-pixbuf-io.o gdk-pixbuf-loader.o gdk-pixbuf-scale.o gdk-pixbuf-util.o 
> > gdk-pixdata.o gdk-pixbuf-enum-types.o   pixops/.libs/libpixops.al | sed -n 
> > -e 's/^.*[         ]\([BCDEGQRST][BCDEGQRST]*\)[        ][      
> > ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' | sed 's/.* //' | sort | 
> > uniq > .libs/libgdk_pixbuf-2.0.exp
> > egrep -e "^[^_].*" ".libs/libgdk_pixbuf-2.0.exp" > 
> > ".libs/libgdk_pixbuf-2.0.expT"
> > mv -f ".libs/libgdk_pixbuf-2.0.expT" ".libs/libgdk_pixbuf-2.0.exp"
> > rm -fr .libs/libgdk_pixbuf-2.0.lax
> > mkdir .libs/libgdk_pixbuf-2.0.lax
> > rm -fr .libs/libgdk_pixbuf-2.0.lax/libpixops.al
> > mkdir .libs/libgdk_pixbuf-2.0.lax/libpixops.al
> > (cd .libs/libgdk_pixbuf-2.0.lax/libpixops.al && ar x 
> > /afs/gsf.de/sources/gtk+-2.2.0/gdk-pixbuf/pixops/.libs/libpixops.al)
> > for i in `cat .libs/libgdk_pixbuf-2.0.exp`; do 
> > /software/@sys/usr/bin/printf "-exported_symbol " >> 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp; echo "$i" >> 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp; done; echo "-hidden">> 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp
> >  /usr/bin/ld -shared -expect_unresolved \* -input 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp   gdk-pixbuf.o 
> > gdk-pixbuf-animation.o gdk-pixbuf-data.o gdk-pixbuf-io.o 
> > gdk-pixbuf-loader.o gdk-pixbuf-scale.o gdk-pixbuf-util.o gdk-pixdata.o 
> > gdk-pixbuf-enum-types.o  .libs/libgdk_pixbuf-2.0.lax/libpixops.al/pixops.lo 
> >  -rpath /software/@sys/usr/lib  pixops/.libs/libpixops.al -L/usr/local/lib 
> > -L/software/@sys/usr/lib -L/usr/local/openssl/lib -L/usr/lib 
> > -R/software/@sys/usr/lib -lc /software/@sys/usr/lib/libgmodule-2.0.so 
> > /software/@sys/usr/lib/libgobject-2.0.so 
> > /software/@sys/usr/lib/libglib-2.0.so /software/@sys/usr/lib/libiconv.so 
> > -lm /software/@sys/usr/lib/libintl.so  -lc -soname libgdk_pixbuf-2.0.so.0 
> > `test -n 
> > "200.200.0:0.0:1.0:2.0:3.0:4.0:5.0:6.0:7.0:8.0:9.0:10.0:11.0:12.0:13.0:14.0:15.0:16.0:17.0:18.0:19.0:20.0:21.0:22.0:23.0:24.0:25.0:26.0:27.0:28.0:29.0:30.0:31.0:32.0:33.0:34.0:35.0:36.0:37.0:38.0:39.0:40.0:41.0:42.0:43.0:44.0:45.0:46.0:47.0:48.0:49.0:50.0:51.0:52.0:53.0:54.0:!
> >  55.0:56.0:57.0:58.0:59.0:60.0:61.0: /usr/bin/ld -shared -expect_unresolved 
> > \* -input .libs/libgdk_pixbuf-2.0.so.200.200.0.exp   gdk-pixbuf.o 
> > gdk-pixbuf-animation.o gdk-pixbuf-data.o gdk-pixbuf-io.o 
> > gdk-pixbuf-loader.o gdk-pixbuf-scale.o gdk-pixbuf-util.o gdk-pixdata.o 
> > gdk-pixbuf-enum-types.o  .libs/libgdk_pixbuf-2.0.lax/libpixops.al/pixops.lo 
> >  -rpath /software/@sys/usr/lib  pixops/.libs/libpixops.al -L/usr/local/lib 
> > -L/software/@sys/usr/lib -L/usr/local/openssl/lib -L/usr/lib 
> > -R/software/@sys/usr/lib -lc /software/@sys/usr/lib/libgmodule-2.0.so 
> > /software/@sys/usr/lib/libgobject-2.0.so 
> > /software/@sys/usr/lib/libglib-2.0.so /software/@sys/usr/lib/libiconv.so 
> > -lm /software/@sys/usr/lib/libintl.so  -lc -soname libgdk_pixbuf-2.0.so.0 
> > `test -n 
> > "200.200.0:0.0:1.0:2.0:3.0:4.0:5.0:6.0:7.0:8.0:9.0:10.0:11.0:12.0:13.0:14.0:15.0:16.0:17.0:18.0:19.0:20.0:21.0:22.0:23.0:24.0:25.0:26.0:27.0:28.0:29.0:30.0:31.0:32.0:33.0:34.0:35.0:36.0:37.0:38.0:39.0:40.0:41.0:42.0:43.0:44.0:45.0:46.0:47.0!
> >  :48.0:49.0:50.0:51.0:52.0:53.0:54.0:55.0:56.0:57.0:58.0:59.0:60.0:61.0
> > : /usr/bin/ld -shared -expect_unresolved \* -input 
> > .libs/libgdk_pixbuf-2.0.so.200.200.0.exp   gdk-pixbuf.o 
> > gdk-pixbuf-animation.o gdk-pixbuf-data.o gdk-pixbuf-io.o 
> > gdk-pixbuf-loader.o gdk-pixbuf-scale.o gdk-pixbuf-util.o gdk-pixdata.o 
> > gdk-pixbuf-enum-types.o  .libs/libgdk_pixbuf-2.0.lax/libpixops.al/pixops.lo 
> >  -rpath /software/@sys/usr/lib  pixops/.libs/libpixops.al -L/usr/local/lib 
> > -L/software/@sys/usr/lib -L/usr/local/openssl/lib -L/usr/lib 
> > -R/software/@sys/usr/lib -lc /software/@sys/usr/lib/libgmodule-2.0.so 
> > /software/@sys/usr/lib/libgobject-2.0.so 
> > /software/@sys/usr/lib/libglib-2.0.so /software/@sys/usr/lib/libiconv.so 
> > -lm /software/@sys/usr/lib/libintl.so  -lc -soname libgdk_pixbuf-2.0.so.0 
> > `test -n 
> > "200.200.0:0.0:1.0:2.0:3.0:4.0:5.0:6.0:7.0:8.0:9.0:10.0:11.0:12.0:13.0:14.0:15.0:16.0:17.0:18.0:19.0:20.0:21.0:22.0:23.0:24.0:25.0:26.0:27.0:28.0:29.0:30.0:31.0:32.0:33.0:34.0:35.0:36.0:37.0:38.0:39.0:40.0:41.0:42.0:43.0:44.0:45.0:46.0:47.0:48.0:49.0:50.0:51.0:52./usr/bin/ld:
> > -R/software/@sys/usr/lib: Unknown flag
>
> Seems to be a compatibility issue.  Could you replace the "-R" with
> "-rpath " and retry that command by hand (in the working directory
> where "make" aborted)?  For a reason, my "man ld" says:
>
>            For compatibility with other ELF linkers, if the  "-R"
>            option  is followed by a directory name, rather than a
>            file name, it is treated as the "-rpath" option.

See my previous post about this. I cannot find where the -R comes from in
libtool.m4. It's present there, but in section under case condition not
matching osf5. :(

I'll need some more official patch. ;-)
-- 
Martin Mokrejs <address@hidden>, <address@hidden>
PGP5.0i key is at http://www.natur.cuni.cz/~mmokrejs
MIPS / Institute for Bioinformatics <http://mips.gsf.de>
GSF - National Research Center for Environment and Health
Ingolstaedter Landstrasse 1, D-85764 Neuherberg, Germany
tel.: +49-89-3187 3683 , fax: +49-89-3187 3585




reply via email to

[Prev in Thread] Current Thread [Next in Thread]