GNU bug report logs - #8542
2.4 : triggers libc "nlist > 1" assertion failure from --link in 'setarch i686' environment

Previous Next

Package: libtool;

Reported by: jason.vas.dias <at> gmail.com

Date: Sun, 24 Apr 2011 17:44:02 UTC

Severity: normal

Merged with 8537

Found in version 2.4

To reply to this bug, email your comments to 8542 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-libtool <at> gnu.org:
bug#8542; Package libtool. (Sun, 24 Apr 2011 17:44:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to jason.vas.dias <at> gmail.com:
New bug report received and forwarded. Copy sent to bug-libtool <at> gnu.org. (Sun, 24 Apr 2011 17:44:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jason Vas Dias <jason.vas.dias <at> gmail.com>
To: bug-libtool <at> gnu.org
Cc: Gordon Matzigkeit <gord <at> gnu.ai.mit.edu>
Subject: 2.4 : triggers libc "nlist > 1" assertion failure from --link in
	'setarch i686' environment
Date: Fri, 22 Apr 2011 17:36:42 +0100
Hi Gordon, bug-libtool members - this is my first post to this list, so please reply to : jason.vas.dias <at> gmail.com 

I believe I may have found a libtool (or possibly a libtool-triggered glibc or binutils) bug :

In a "setarch i686" environment on a linux-x86_64 host, where EVERYTHING (more or less) is at the latest
available stable upstream version - especially :

$ setarch i686
$ echo eval $(echo "307  export CC=/usr/bin/gcc' -m32'
  308  export GCC=/usr/bin/gcc' -m32'
  309  export CXX=/usr/bin/g++' -m32'
  310  export LD=/usr/bin/ld' -melf_i386'
  311  export AS=/usr/bin/as' -32'
  313  export CFLAGS='-march=i686 -mtune=generic -g -O2 -fPIC -DPIC -Wa,--compress-debug-sections'
  314  export LDFLAGS='-Wl,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/lib32,-L/usr/lib32,-L/lib32,-R/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/lib32:/usr/lib32:/lib32,--dynamic-linker,/lib32/ld-linux.so.2'
" | sed 's/^[\ \        ]*[0-9]*[\ \    ]*//'); export PKG_CONFIG_PATH=/usr/lib32/pkgconfig/; export PATH=/bin/32:/usr/bin/32:/bin:/usr/bin:/sbin/32:/usr/sbin/32
eval export CC=/usr/bin/gcc' -m32' export GCC=/usr/bin/gcc' -m32' export CXX=/usr/bin/g++' -m32' export LD=/usr/bin/ld' -melf_i386' export AS=/usr/bin/as' -32' export CFLAGS='-march=i686 -mtune=generic -g -O2 -fPIC -DPIC -Wa,--compress-debug-sections' export LDFLAGS='-Wl,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/lib32,-L/usr/lib32,-L/lib32,-R/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/lib32:/usr/lib32:/lib32,--dynamic-linker,/lib32/ld-linux.so.2'
$ ( $CC --version;  $LD --version;  $AS --version; ldconfig --version; libtool --version; autoconf --version; automake --version ) | egrep '[(]G'
gcc (GCC) 4.6.0
GNU ld (GNU Binutils) 2.21.51.20110407
GNU assembler (GNU Binutils) 2.21.51.20110407
ldconfig (GNU libc) 2.13
libtool (GNU libtool) 2.4
autoconf (GNU Autoconf) 2.68
automake (GNU automake) 1.10.3

$ $(CC) --print-multi-os-directory
../lib32

I do for instance :

$  /usr/src/poppler/configure --prefix=/usr --libdir=/usr/lib32 
....

but make fails :

$ make                                                                                                                                                                
  CXXLD  libgoo.la                                                                                                                                                    
Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!                                                                   
make: *** [libgoo.la] Error 127                                                                                                                                       

but I can do:

$ cd goo/.libs
$ /usr/bin/g++ -m32  -shared -Wall -Wno-write-strings -Woverloaded-virtual -Wnon-virtual-dtor -Wcast-align -fno-exceptions -fno-check-new -fno-common -g -O2 -ansi  -Wl,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32,-L/usr/lib64/gcc/x86_64-pc-linux-gnu/lib32,-L/usr/lib32,-L/lib32,-R/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/lib32:/usr/lib32:/lib32,--dynamic-linker,/lib32/ld-linux.so.2 -o libgoo.so  $(echo gfile.lo gmempp.lo GooHash.lo GooList.lo GooTimer.lo GooString.lo gmem.lo FixedPoint.lo PNGWriter.lo JpegWriter.lo TiffWriter.lo ImgWriter.lo gstrtod.lo | sed  's/\.l/./g') -ltiff -ljpeg -lpng
$ ls -l libgoo.so ; file libgoo.so
-rwxr-xr-x 1 root root 151006 Apr 22 17:23 libgoo.so
libgoo.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

So what is libtool trying to do here that my command isn't ?  

Whatever it is, glibc-2.13 doesn't like it, or it caused binutils to produce a nasty object that glibc doesn't like.

Any advice / suggestions would be much appreciated. Obviously, I'll have to 'strace -f -e trace=execve make' . If you'd be interested in the log, I'll post it.

Incidentally, I had to :
$ rm ./libtool
after the poppler configure, else I got lots of errors :
$ make -j2                                  
make  all-recursive                         
make[1]: Entering directory `/tmp/poppler'  
Making all in goo                           
make[2]: Entering directory `/tmp/poppler/goo'
  CXX    gfile.lo                             
  CXX    gmempp.lo                            
../libtool: line 42: -32: command not found   
../libtool: line 42: -32: command not found   
  CXX    GooHash.lo                           
../libtool: line 42: -32: command not found   
  CXX    GooList.lo                           
../libtool: line 42: -32: command not found   

But if I remove what was generated during configure as ../libtool (from goo/) , no such messages appear.




Information forwarded to owner <at> debbugs.gnu.org, bug-libtool <at> gnu.org:
bug#8542; Package libtool. (Mon, 25 Apr 2011 05:11:02 GMT) Full text and rfc822 format available.

Message #8 received at 8542 <at> debbugs.gnu.org (full text, mbox):

From: Mike Frysinger <vapier <at> gentoo.org>
To: jason.vas.dias <at> gmail.com
Cc: Gordon Matzigkeit <gord <at> gnu.ai.mit.edu>, 8542 <at> debbugs.gnu.org
Subject: Re: bug#8542: 2.4 : triggers libc "nlist > 1" assertion failure from
	--link in 'setarch i686' environment
Date: Mon, 25 Apr 2011 01:10:21 -0400
On Fri, Apr 22, 2011 at 12:36 PM, Jason Vas Dias wrote:
> $ make
>  CXXLD  libgoo.la
> Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!

sounds like the glibc bug:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=12454
-mike




Information forwarded to owner <at> debbugs.gnu.org, bug-libtool <at> gnu.org:
bug#8542; Package libtool. (Mon, 25 Apr 2011 14:35:02 GMT) Full text and rfc822 format available.

Message #11 received at 8542 <at> debbugs.gnu.org (full text, mbox):

From: Jason Vas Dias <jason.vas.dias <at> gmail.com>
To: Mike Frysinger <vapier <at> gentoo.org>
Cc: Gordon Matzigkeit <gord <at> gnu.ai.mit.edu>, 8542 <at> debbugs.gnu.org
Subject: Re: bug#8542: 2.4 : triggers libc "nlist > 1" assertion failure from
	--link in 'setarch i686' environment
Date: Mon, 25 Apr 2011 15:34:09 +0100
On Monday 25 April 2011 06:10:21 Mike Frysinger wrote:
> On Fri, Apr 22, 2011 at 12:36 PM, Jason Vas Dias wrote:
> > $ make
> >  CXXLD  libgoo.la
> > Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!
> 
> sounds like the glibc bug:
> http://sources.redhat.com/bugzilla/show_bug.cgi?id=12454
> -mike
> 
Hi Mike - thanks for responding - 
but this was an inadvertent resend from my mailer of a "draft" , a copy of which I had sent by other means, to create bug :
    http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8537
this turned out to be nothing to do with glibc, but with why the libtool script says:

/usr/bin/libtool @line 274 :
# Compile-time system search path for libraries.
sys_lib_search_path_spec="/usr/lib64/gcc/x86_64-pc-linux-gnu/lib64 /usr/lib64 /lib64 /usr/x86_64-pc-linux-gnu/lib "

# Run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64 /lib64 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib64 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0 /usr/lib64/nspr /usr/lib64/nss /usr/qt/4.6/lib64 /usr/kde/4.3/lib64 /usr/java/lib64 /usr/lib32 /lib32 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib32 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32 /usr/lib32/nspr /usr/lib32/nss /usr/java/lib32 "

when I think it should be saying something like :

# Compile-time system search path for libraries.
sys_lib_search_path_spec="$(${CC:-gcc} $CFLAGS -print-search-dirs |sed -n '/^libraries:/{s/^libraries[:=\ \       ]*//;s/:/ /g;p}')"

# Run-time system search path for libraries.
sys_lib_dlsearch_path_spec="sed 's/^include/\#include/ < /etc/ld.so.conf | cpp - | egrep -v '^\#' | tr '\n' ' '"


ie. how can libtool hope to get the multi-lib search path correct if it is NOT dynamic and dependant on $CFLAGS ?
ie. my gcc-4.6.0 produces radically different library search values for 32-bit and 64-bit :

$ gcc -print-search-dirs ; echo multi-os:; gcc -print-multi-os-directory
install: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/
programs: =/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/
libraries: =/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/../lib64/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib64/:/lib/x86_64-pc-linux-gnu/4.6.0/:/lib/../lib64/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../:/lib/:/usr/lib/
multi-os:
../lib64

$ gcc -m32 -print-search-dirs ; echo multi-os:; gcc -m32 -print-multi-os-directory
install: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/
programs: =/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/
libraries: =/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/../lib32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/:/lib/x86_64-pc-linux-gnu/4.6.0/32/:/lib/../lib32/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib/../lib32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../:/lib/x86_64-pc-linux-gnu/4.6.0/:/lib/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib/
multi-os:
../lib32

So why can't the installed libtool script invoke "$($CC $CFLAGS -print-search-dirs)" dynamically to determine the library search path ?

If it did, it would function correctly for "naive" libtool users such as poppler which are totally unaware of any multi-lib / multi-arch
environment, as well as for "sophisticated" libtool using libraries such as cairo, which DO build correctly for 32-bit - both my
dynamic version and the installed hard-coded version - I can't quite understand why yet, but I think the cairo build scripts are
just better honoring my $CFLAGS / $LDFLAGS settings, and if they were not set libtool would still fail for 32-bit sub-arch 
cairo build on x86_64 ; ie.  with my "dynamic setting of sys_lib_search_path_spec", I would not need to set $LDFLAGS to such
a complicated value and libtool would work correctly if I just set CFLAGS=-m32 .

Also, why does libtool insist on supplying explicit paths to the "c runtime startup" (CRT) files : crti.o crtbeginS.o crtn.o crtendS.o -
when GCC supplies these automatically and 100% correctly for its "-mXX" args ? To me, that is just another unecessary way
that libtool can fail .

I'd greatly appreciate it if you could take a look at bug #8537 - do you think a patch along the lines detailed therein would be
considered for libtool ? (obviously the final patch would be against the script SOURCE, not the installed script, as it is currently).

Thanks & Regards ,
Jason Vas Dias




Information forwarded to owner <at> debbugs.gnu.org, bug-libtool <at> gnu.org:
bug#8542; Package libtool. (Mon, 25 Apr 2011 18:04:01 GMT) Full text and rfc822 format available.

Message #14 received at 8542 <at> debbugs.gnu.org (full text, mbox):

From: Todd Gamblin <tgamblin <at> llnl.gov>
To: "jason.vas.dias <at> gmail.com" <jason.vas.dias <at> gmail.com>
Cc: Gordon Matzigkeit <gord <at> gnu.ai.mit.edu>, Mike Frysinger <vapier <at> gentoo.org>,
	"8542 <at> debbugs.gnu.org" <8542 <at> debbugs.gnu.org>
Subject: Re: bug#8542: 2.4 : triggers libc "nlist > 1" assertion failure from
	--link in 'setarch i686' environment
Date: Mon, 25 Apr 2011 10:46:22 -0700
Hey guys,

I'm not sure why I'm on this bug list, but in any case, could you take me off?  I don't think I have anything to do with this.

Thanks!
-Todd



On Apr 25, 2011, at 7:34 AM, Jason Vas Dias wrote:

> On Monday 25 April 2011 06:10:21 Mike Frysinger wrote:
>> On Fri, Apr 22, 2011 at 12:36 PM, Jason Vas Dias wrote:
>>> $ make
>>> CXXLD  libgoo.la
>>> Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!
>> 
>> sounds like the glibc bug:
>> http://sources.redhat.com/bugzilla/show_bug.cgi?id=12454
>> -mike
>> 
> Hi Mike - thanks for responding - 
> but this was an inadvertent resend from my mailer of a "draft" , a copy of which I had sent by other means, to create bug :
>    http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8537
> this turned out to be nothing to do with glibc, but with why the libtool script says:
> 
> /usr/bin/libtool @line 274 :
> # Compile-time system search path for libraries.
> sys_lib_search_path_spec="/usr/lib64/gcc/x86_64-pc-linux-gnu/lib64 /usr/lib64 /lib64 /usr/x86_64-pc-linux-gnu/lib "
> 
> # Run-time system search path for libraries.
> sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64 /lib64 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib64 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0 /usr/lib64/nspr /usr/lib64/nss /usr/qt/4.6/lib64 /usr/kde/4.3/lib64 /usr/java/lib64 /usr/lib32 /lib32 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib32 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32 /usr/lib32/nspr /usr/lib32/nss /usr/java/lib32 "
> 
> when I think it should be saying something like :
> 
> # Compile-time system search path for libraries.
> sys_lib_search_path_spec="$(${CC:-gcc} $CFLAGS -print-search-dirs |sed -n '/^libraries:/{s/^libraries[:=\ \       ]*//;s/:/ /g;p}')"
> 
> # Run-time system search path for libraries.
> sys_lib_dlsearch_path_spec="sed 's/^include/\#include/ < /etc/ld.so.conf | cpp - | egrep -v '^\#' | tr '\n' ' '"
> 
> 
> ie. how can libtool hope to get the multi-lib search path correct if it is NOT dynamic and dependant on $CFLAGS ?
> ie. my gcc-4.6.0 produces radically different library search values for 32-bit and 64-bit :
> 
> $ gcc -print-search-dirs ; echo multi-os:; gcc -print-multi-os-directory
> install: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/
> programs: =/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/
> libraries: =/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/../lib64/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib64/:/lib/x86_64-pc-linux-gnu/4.6.0/:/lib/../lib64/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../:/lib/:/usr/lib/
> multi-os:
> ../lib64
> 
> $ gcc -m32 -print-search-dirs ; echo multi-os:; gcc -m32 -print-multi-os-directory
> install: /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/
> programs: =/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/libexec/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/bin/
> libraries: =/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/../lib32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../lib32/:/lib/x86_64-pc-linux-gnu/4.6.0/32/:/lib/../lib32/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/32/:/usr/lib/../lib32/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../../x86_64-pc-linux-gnu/lib/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../x86_64-pc-linux-gnu/4.6.0/:/usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/../../../:/lib/x86_64-pc-linux-gnu/4.6.0/:/lib/:/usr/lib/x86_64-pc-linux-gnu/4.6.0/:/usr/lib/
> multi-os:
> ../lib32
> 
> So why can't the installed libtool script invoke "$($CC $CFLAGS -print-search-dirs)" dynamically to determine the library search path ?
> 
> If it did, it would function correctly for "naive" libtool users such as poppler which are totally unaware of any multi-lib / multi-arch
> environment, as well as for "sophisticated" libtool using libraries such as cairo, which DO build correctly for 32-bit - both my
> dynamic version and the installed hard-coded version - I can't quite understand why yet, but I think the cairo build scripts are
> just better honoring my $CFLAGS / $LDFLAGS settings, and if they were not set libtool would still fail for 32-bit sub-arch 
> cairo build on x86_64 ; ie.  with my "dynamic setting of sys_lib_search_path_spec", I would not need to set $LDFLAGS to such
> a complicated value and libtool would work correctly if I just set CFLAGS=-m32 .
> 
> Also, why does libtool insist on supplying explicit paths to the "c runtime startup" (CRT) files : crti.o crtbeginS.o crtn.o crtendS.o -
> when GCC supplies these automatically and 100% correctly for its "-mXX" args ? To me, that is just another unecessary way
> that libtool can fail .
> 
> I'd greatly appreciate it if you could take a look at bug #8537 - do you think a patch along the lines detailed therein would be
> considered for libtool ? (obviously the final patch would be against the script SOURCE, not the installed script, as it is currently).
> 
> Thanks & Regards ,
> Jason Vas Dias
> 
> 
> 
> _______________________________________________
> Bug-libtool mailing list
> Bug-libtool <at> gnu.org
> https://lists.gnu.org/mailman/listinfo/bug-libtool

________________________________________________________________________
Todd Gamblin, tgamblin <at> llnl.gov, http://people.llnl.gov/gamblin2
CASC @ Lawrence Livermore National Laboratory, Livermore, CA, USA





Merged 8537 8542. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Sat, 27 Aug 2011 01:29:02 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 301 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.