libtool
[Top][All Lists]
Advanced

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

Re: gettext libintl.la dependency_libs problem


From: Tim Mooney
Subject: Re: gettext libintl.la dependency_libs problem
Date: Thu, 2 Jan 2003 22:26:28 -0600 (CST)

In regard to: Re: gettext libintl.la dependency_libs problem, Albert Chin...:

>On Thu, Jan 02, 2003 at 07:07:42PM -0600, Albert Chin wrote:
>> On Thu, Jan 02, 2003 at 06:30:58PM -0600, Tim Mooney wrote:
>> > I'm on the libtool list, but not the bug-gnu-gettext list.  I haven't
>> > looked at this problem long enough to know with any certainty where the
>> > bug is, but my guess is libtool.
>> >
>> > Take a platform like alphaev56-dec-osf5.1 or mips-sgi-irix6.5.  Build
>> > GNU libiconv 1.8, and install it somewhere, say /usr/local/gnu.  Now
>> > build GNU gettext 0.11.5 to install under the same path.  Gettext's
>> > configure should detect libiconv and use it.  The problem is, in
>> > the `libintl.la' file that is generated for gettext, the dependency_libs
>> > line ends up like:
>> >
>> > # Libraries that this one depends upon.
>> > dependency_libs=' -R/usr/local/gnu/lib -L/usr/local/gnu/lib 
>> > /usr/local/gnu/lib/libiconv.la -lc'
>>
>> This is obviously wrong.
>
>I take this back. This is entirely correct.

:-)  I'm even more undecided about the issue than you are, but there's
clearly a problem *somewhere*.

>> > Now say you build some package (for me it was glib-2.2.0) that depends on
>> > gettext.  When you go to link the package on a platform like Tru64 or
>> > IRIX, the link will fail because libtool passes the `-R/usr/local/gnu/lib'
>> > to whatever is doing the linking on the platform in question (ld
>> > generally).
>> >
>> > Many vendor compilers and linkers don't understand `-R', so the link
>> > bombs.
>
>Show the command-line doing this.

With versioning this gets pretty long, hopefully it comes through OK:

/bin/ksh ../libtool --mode=link cc  -std1 -O3 -g3 -tune host -arch host 
-portable -readonly_strings -pthread -ieee -msg_disable 
inlinestoclsmod,valuepres -I/local/gnu/include -L/local/gnu/lib -o 
libglib-2.0.la -rpath /local/gnu/lib/X11 -version-info 200:0:200 
-export-dynamic   garray.lo gasyncqueue.lo gbacktrace.lo gbsearcharray.lo 
gcache.lo gcompletion.lo gconvert.lo gdataset.lo gdate.lo gdir.lo gerror.lo 
gfileutils.lo ghash.lo ghook.lo giochannel.lo glist.lo gmain.lo gmarkup.lo 
gmem.lo gmessages.lo gnode.lo gpattern.lo gprimes.lo gqsort.lo gqueue.lo 
grel.lo grand.lo gscanner.lo gshell.lo gslist.lo gstrfuncs.lo gstring.lo 
gthread.lo gthreadpool.lo gtimer.lo gtree.lo guniprop.lo gutf8.lo gunibreak.lo 
gunicollate.lo gunidecomp.lo gutils.lo gprintf.lo libcharset/libcharset.la 
trio/libtrio.la giounix.lo gspawn.lo   -liconv   -lintl
mkdir .libs
rm -fr .libs/libglib-2.0.la .libs/libglib-2.0.* .libs/libglib-2.0.*
(cd . && ln -s garray.lo garray.o)
(cd . && ln -s gasyncqueue.lo gasyncqueue.o)
(cd . && ln -s gbacktrace.lo gbacktrace.o)
(cd . && ln -s gbsearcharray.lo gbsearcharray.o)
(cd . && ln -s gcache.lo gcache.o)
(cd . && ln -s gcompletion.lo gcompletion.o)
(cd . && ln -s gconvert.lo gconvert.o)
(cd . && ln -s gdataset.lo gdataset.o)
(cd . && ln -s gdate.lo gdate.o)
(cd . && ln -s gdir.lo gdir.o)
(cd . && ln -s gerror.lo gerror.o)
(cd . && ln -s gfileutils.lo gfileutils.o)
(cd . && ln -s ghash.lo ghash.o)
(cd . && ln -s ghook.lo ghook.o)
(cd . && ln -s giochannel.lo giochannel.o)
(cd . && ln -s glist.lo glist.o)
(cd . && ln -s gmain.lo gmain.o)
(cd . && ln -s gmarkup.lo gmarkup.o)
(cd . && ln -s gmem.lo gmem.o)
(cd . && ln -s gmessages.lo gmessages.o)
(cd . && ln -s gnode.lo gnode.o)
(cd . && ln -s gpattern.lo gpattern.o)
(cd . && ln -s gprimes.lo gprimes.o)
(cd . && ln -s gqsort.lo gqsort.o)
(cd . && ln -s gqueue.lo gqueue.o)
(cd . && ln -s grel.lo grel.o)
(cd . && ln -s grand.lo grand.o)
(cd . && ln -s gscanner.lo gscanner.o)
(cd . && ln -s gshell.lo gshell.o)
(cd . && ln -s gslist.lo gslist.o)
(cd . && ln -s gstrfuncs.lo gstrfuncs.o)
(cd . && ln -s gstring.lo gstring.o)
(cd . && ln -s gthread.lo gthread.o)
(cd . && ln -s gthreadpool.lo gthreadpool.o)
(cd . && ln -s gtimer.lo gtimer.o)
(cd . && ln -s gtree.lo gtree.o)
(cd . && ln -s guniprop.lo guniprop.o)
(cd . && ln -s gutf8.lo gutf8.o)
(cd . && ln -s gunibreak.lo gunibreak.o)
(cd . && ln -s gunicollate.lo gunicollate.o)
(cd . && ln -s gunidecomp.lo gunidecomp.o)
(cd . && ln -s gutils.lo gutils.o)
(cd . && ln -s gprintf.lo gprintf.o)
(cd . && ln -s giounix.lo giounix.o)
(cd . && ln -s gspawn.lo gspawn.o)
rm -fr .libs/libglib-2.0.lax
mkdir .libs/libglib-2.0.lax
rm -fr .libs/libglib-2.0.lax/libcharset.al
mkdir .libs/libglib-2.0.lax/libcharset.al
(cd .libs/libglib-2.0.lax/libcharset.al && ar x 
/local/src/RPM/BUILD/glib-2.2.0/glib/libcharset/.libs/libcharset.al)
rm -fr .libs/libglib-2.0.lax/libtrio.al
mkdir .libs/libglib-2.0.lax/libtrio.al
(cd .libs/libglib-2.0.lax/libtrio.al && ar x 
/local/src/RPM/BUILD/glib-2.2.0/glib/trio/.libs/libtrio.al)
/usr/bin/ld -shared -expect_unresolved \*  garray.o gasyncqueue.o gbacktrace.o 
gbsearcharray.o gcache.o gcompletion.o gconvert.o gdataset.o gdate.o gdir.o 
gerror.o gfileutils.o ghash.o ghook.o giochannel.o glist.o gmain.o gmarkup.o 
gmem.o gmessages.o gnode.o gpattern.o gprimes.o gqsort.o gqueue.o grel.o 
grand.o gscanner.o gshell.o gslist.o gstrfuncs.o gstring.o gthread.o 
gthreadpool.o gtimer.o gtree.o guniprop.o gutf8.o gunibreak.o gunicollate.o 
gunidecomp.o gutils.o gprintf.o giounix.o gspawn.o  
.libs/libglib-2.0.lax/libcharset.al/localcharset.lo  
.libs/libglib-2.0.lax/libtrio.al/trio.lo 
.libs/libglib-2.0.lax/libtrio.al/trionan.lo 
.libs/libglib-2.0.lax/libtrio.al/triostr.lo   -rpath /local/gnu/lib 
-L/local/gnu/lib -lm -R/local/gnu/lib -lc /local/gnu/lib/libiconv.so 
/local/gnu/lib/libintl.so -lc  -msym -soname libglib-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:62.0:63.0:64.0:65.0:66.0:67.0:68.0:69.0:70.0:71.0:72.0:73.0:74.0:75.0:76.0:77.0:78.0:79.0:80.0:81.0:82.0:83.0:84.0:85.0:86.0:87.0:88.0:89.0:90.0:91.0:92.0:93.0:94.0:95.0:96.0:97.0:98.0:99.0:100.0:101.0:102.0:103.0:104.0:105.0:106.0:107.0:108.0:109.0:110.0:111.0:112.0:113.0:114.0:115.0:116.0:117.0:118.0:119.0:120.0:121.0:122.0:123.0:124.0:125.0:126.0:127.0:128.0:129.0:130.0:131.0:132.0:133.0:134.0:135.0:136.0:137.0:138.0:139.0:140.0:141.0:142.0:143.0:144.0:145.0:146.0:147.0:148.0:149.0:150.0:151.0:152.0:153.0:154.0:155.0:156.0:157.0:158.0:159.0:160.0:161.0:162.0:163.0:164.0:165.0:166.0:167.0:168.0:169.0:170.0:171.0:172.0:173.0:174.0:175.0:176.0:177.0:178.0:179.0:180.0:181.0:182.0:183.0:184.0:185.0:186.0:187.0:188.0:189.0:190.0:191.0:192.0:193.0:194.0:195.0:196.0:197.0:198.0:199.0:200.0"
 && echo -set_version 2!
00.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:62.0:63.0:64.0:65.0:66.0:67.0:68.0:69.0:70.0:71.0:72.0:73.0:74.0:75.0:76.0:77.0:78.0:79.0:80.0:81.0:82.0:83.0:84.0:85.0:86.0:87.0:88.0:89.0:90.0:91.0:92.0:93.0:94.0:95.0:96.0:97.0:98.0:99.0:100.0:101.0:102.0:103.0:104.0:105.0:106.0:107.0:108.0:109.0:110.0:111.0:112.0:113.0:114.0:115.0:116.0:117.0:118.0:119.0:120.0:121.0:122.0:123.0:124.0:125.0:126.0:127.0:128.0:129.0:130.0:131.0:132.0:133.0:134.0:135.0:136.0:137.0:138.0:139.0:140.0:141.0:142.0:143.0:144.0:145.0:146.0:147.0:148.0:149.0:150.0:151.0:152.0:153.0:154.0:155.0:156.0:157.0:158.0:159.0:160.0:161.0:162.0:163.0:164.0:165.0:166.0:167.0:168.0:169.0:170.0:171.0:172.0:173.0:174.0:175.0:176.0:177.0:178.0:179.0:180.0:181.!
0:182.0:183.0:184.0:185.0:186.0:187.0:188.0:189.0:190.0:191.0:192.0:193.0:194.0:195.0:196.0:197.0:198.0:199.0:200.0`
 -update_registry .libs/so_locations -o .libs/libglib-2.0.so.200.200.0
/usr/bin/ld:
-R/local/gnu/lib: Unknown flag
/usr/bin/ld: Usage: /usr/bin/ld [options] file [...]
gmake[3]: *** [libglib-2.0.la] Error 1
gmake[3]: Leaving directory `/local/src/RPM/BUILD/glib-2.2.0/glib'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/local/src/RPM/BUILD/glib-2.2.0/glib'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/local/src/RPM/BUILD/glib-2.2.0'
gmake: *** [all-recursive-am] Error 2
Bad exit status from /var/tmp/rpm-tmp.20006 (%build)
>
>> > I tried rebuilding the configure machinery that comes with gettext 0.11.5
>> > to use libtool 1.4.3 (currently it uses 1.4.2), and the results were the
>> > same, so it's not something that was a bug in older libtool but is fixed
>> > with recent libtool.
>> >
>> > My initial impression is that either
>> >
>> > 1) `-R/some/path' should never be getting into the lib<whatever>.la file
>> > in the first place
>> >
>> > or
>> >
>> > 2) libtool should be translating -R when it sees it to whatever is
>> > appropriate for the current compiler and/or linker, when libtool later
>> > links something with `lib<whatever>.la'.
>>
>> I always apply something like the following to gettext. What is of
>> main interest is the last context diff. The rest is to make it
>> autoconf 2.5x compatible.
>
>Is the failure during ./configure?

Nope, it's during package build for a package that wants to link with
libintl.

Tim
-- 
Tim Mooney                              address@hidden
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164




reply via email to

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