[Top][All Lists]
[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