|
From: | Bob Friesenhahn |
Subject: | Re: no-undefined, solaris sun studio and pain |
Date: | Thu, 24 Dec 2009 09:38:16 -0600 (CST) |
User-agent: | Alpine 2.01 (GSO 1266 2009-07-14) |
On Wed, 23 Dec 2009, Monty Taylor wrote:
Thing is - libprotobuf.so hasn't been installed in /usr/local/lib/amd64 yet, so the -lprotobuf seems to trigger the unknown symbols above. If I remove -no-undefined from the LDFLAGS or I manually edit the above line to do: CC -G -zdefs -hlibprotoc.so.6 -o .libs/libprotoc.so.6.0.0 <various .o files snipped> -R/usr/local/lib/amd64 -L/usr/local/lib/amd64 .libs/libprotobuf.so -library=stlport4 -library=Crun -lpthread -lz -lc -template=no%extdef -mt -m64 -mt It works. Of course, I know the above editing is wrong, because it really wants to be linked with -lprotobuf. Am I just SOL in terms of being able to use -no-undefined in this case? It would be nice to get that error on the compile-for-tree stage but not have it apply to the relink for install phase.
I believe that the problem is with the order that the libraries are being installed. Unfortunately, Automake does not fully understand library dependencies so it is necessary to list the libraries in the correct dependency order for installation since programs and libraries may be re-linked at install time. Consider that if an old version of libprotobuf.so had already been installed, that this old version would be accidentally used rather than the new version you are installing. If you have two libraries which depend on each other's symbols, then the libraries will need to be redesigned.
Bob -- Bob Friesenhahn address@hidden, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
[Prev in Thread] | Current Thread | [Next in Thread] |