[Top][All Lists]

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

bug#8542: 2.4 : triggers libc "nlist > 1" assertion failure from --link

From: Jason Vas Dias
Subject: bug#8542: 2.4 : triggers libc "nlist > 1" assertion failure from --link in 'setarch i686' environment
Date: Fri, 22 Apr 2011 17:36:42 +0100
User-agent: KMail/1.12.4 (Linux/; KDE/4.3.4; x86_64; svn-1073138; 2010-01-11)

Hi Gordon, bug-libtool members - this is my first post to this list, so please 
reply to : address@hidden 

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 
  314  export 
" | sed 's/^[\ \        ]*[0-9]*[\ \    ]*//'); export 
PKG_CONFIG_PATH=/usr/lib32/pkgconfig/; export 
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 
$ ( $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)
GNU assembler (GNU Binutils)
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

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  
 -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 

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.

reply via email to

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