libtool-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] disable de-duplication of postdeps on Solaris


From: Bob Friesenhahn
Subject: Re: [PATCH] disable de-duplication of postdeps on Solaris
Date: Mon, 30 Jul 2012 09:27:00 -0500 (CDT)
User-agent: Alpine 2.01 (GSO 1266 2009-07-14)

On Mon, 30 Jul 2012, Fabian Groffen wrote:

On 30-07-2012 08:49:17 -0500, Bob Friesenhahn wrote:
Libtool link line:
/bin/bash ./libtool  --tag=CXX   --mode=link /usr/local64/bin/c++-64  
-march=native -O -g -g3 -ggdb -Wall -Winline -W -Wextra -Wno-unknown-pragmas 
-D_REENTRANT -pthreads -no-undefined -Wl,-zlazyload -L/usr/local64/lib 
-R/usr/local64/lib -L/usr/openwin/lib -R/usr/openwin/lib -L/usr/local64/lib 
-L/usr/lib -o Magick++/tests/exceptions Magick++/tests/exceptions.o 
Magick++/lib/libGraphicsMagick++.la

there's no -lc here

libtool: link: /usr/local64/bin/c++-64 -march=native -O -g -g3 -ggdb -Wall 
-Winline -W -Wextra -Wno-unknown-pragmas -D_REENTRANT -pthreads -Wl,-zlazyload 
-o Magick++/tests/exceptions Magick++/tests/exceptions.o  -L/usr/local64/lib 
-L/usr/openwin/lib -L/usr/lib Magick++/lib/.libs/libGraphicsMagick++.a 
/home/bfriesen/build/GM-16-static-64bit/magick/.libs/libGraphicsMagick.a 
-lpthread /usr/local64/lib/liblcms2.so /usr/local64/lib/libtiff.so -lc 
/usr/local64/lib/libjbig.so /usr/local64/lib/libfreetype.so 
/usr/local64/lib/libjasper.so /usr/local64/lib/libjpeg.so 
/usr/local64/lib/libwmflite.so -lXext -lSM -lICE -lX11 -lsocket -lnsl 
/usr/local64/lib/liblzma.so -lbz2 -lxml2 -lz 
/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/libgomp.so -lrt 
/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/libstdc++.so -lm -fopenmp 
-pthreads -Wl,-R -Wl,/usr/local64/lib -Wl,-R 
-Wl,/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64 -Wl,-R 
-Wl,/usr/local64/lib -Wl,-R -Wl,/usr/local/lib/gcc/i386-!
pc-!

and there is now so most likely it was in the
libGraphicsMagick++.la file, which got it from libtiff's pkg-config
perhaps?  (just guessing)

GraphicsMagick does not use pkg-config. However, I see that -lc is included in the libtiff.la file as a dependency:

# Libraries that this one depends upon.
dependency_libs=' -R/usr/local64/lib -L/usr/local64/lib /usr/local64/lib/liblzma.la /usr/local64/lib/libjbig.la /usr/local64/lib/libjpeg.la -lz -lm -lc'

  /usr/local/libexec/gcc/i386-pc-solaris2.10/4.7.1/collect2 -V -Y 
P,/lib/amd64:/usr/lib/amd64 -Qy -o Magick++/tests/exceptions 
/usr/lib/amd64/crt1.o /usr/lib/amd64/crti.o /usr/lib/amd64/values-Xa.o 
/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/crtbegin.o 
-L/usr/local64/lib -L/usr/openwin/lib -L/usr/lib 
-L/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64 
-L/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/../../../amd64 -L/lib/amd64 
-L/usr/lib/amd64 -L/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1 
-L/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/../../.. -zlazyload 
Magick++/tests/exceptions.o Magick++/lib/.libs/libGraphicsMagick++.a 
/home/bfriesen/build/GM-16-static-64bit/magick/.libs/libGraphicsMagick.a 
-lpthread /usr/local64/lib/liblcms2.so /usr/local64/lib/libtiff.so 
/usr/local64/lib/libjbig.so /usr/local64/lib/libfreetype.so 
/usr/local64/lib/libjasper.so /usr/local64/lib/libjpeg.so 
/usr/local64/lib/libwmflite.so -lXext -lSM -lICE -lX11 -lsocket -lnsl 
/usr/local64/lib/libl!
zma!
 .so -lbz2 -lxml2 -lz 
/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/libgomp.so -lrt 
/usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/libstdc++.so -R 
/usr/local64/lib -R /usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64 -R 
/usr/local64/lib -R /usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64 -R 
/usr/openwin/lib -lstdc++ -lm -lc -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s 
-lgcc /usr/local/lib/gcc/i386-pc-solaris2.10/4.7.1/amd64/crtend.o 
/usr/lib/amd64/crtn.o

-lc was specified, so not much the compiler can do here, IMO.

Yesterday I took the link command that libtool was generating and removed -lc from it. GCC still produced -lc in its collect2 invocation.

It seems that there are at least two issues. In some cases libtool is putting -lc into the .la files and in some cases (I am suspecting pthreads) GCC injects -lc.

I am not seeing -lc listed as a dependency in the other .la files for libraries built for AMD64. A strong clue is that this also appears in libtiff.la:

# Linker flags that can not go in dependency_libs.
inherited_linker_flags=' -pthreads'

I see that libtiff is ingesting and using the AX_PTHREAD macro. As a maintainer of libtiff, I will investigate this. It seems likely to be pulled in through use of OpenGL/GLUT macros.

Bob
--
Bob Friesenhahn
address@hidden, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/



reply via email to

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