On 12/17/10 12:37 PM, Louis Guillaume wrote:
On 12/17/10 12:00 PM, Joerg Sonnenberger wrote:On Fri, Dec 17, 2010 at 11:35:04AM -0500, Louis Guillaume wrote:On AIX[1], we just installed some AIX-base-system software that included it's own /usr/lib/libexpat.so as a 32-bit object. But pkgsrc has /usr/pkg/lib/libexpat.so as a 64-bit object for fontconfig et al.I don't have a modern AIX system at hand, so where are 32bit and 64bit libraries stored?It would appear they are stored in the same directories (/lib, /usr/lib, /usr/pkg/lib). Not sure I understand the question.Sane ELF systems silently skip objects of the wrong type, making this easier.I guess I'm dealing with an not-so-sane XCOFF system :) I know that AIX's ld lets us embed library paths into the loader, but in the past it's caused objects to look in the buildlink-time directory for the package rather than the normal library locations. I will try to build with LDFLAGS=-blibpath:/usr/pkg/lib:/usr/lib:/lib and see what happens... Louis
No Luck. I have tried setting LDFLAGS with... 1) -blibpath:/usr/pkg/lib:/usr/lib:/lib 2) -bnolibpath -L /usr/pkg/lib 3) -bsvr4 -L/usr/pkg/lib 4) -bsvr4 The first (1) is supposed to explicitly put the paths in the header.(2) is supposed to not write the header, putting only in the contents of LIBPATH (which I set appropriately)
(3) is supposed to put the `-L' arguments in the path (4) is supposed to use any `-L' or `-R' arguments for the path.None of these work. I'm not sure if pkgsrc is overriding these options. But it simply isn't working.
In every case the header looks like this... # dump -X64 -H /usr/pkg/lib/libfontconfig.so /usr/pkg/lib/libfontconfig.so: ***Loader Section*** Loader Header Information VERSION# #SYMtableENT #RELOCent LENidSTR 0x00000001 0x0000019a 0x000005fb 0x000000b9 #IMPfilID OFFidSTR LENstrTBL OFFstrTBL 0x00000006 0x00008658 0x00001ce7 0x00008711 ***Import File Strings***INDEX PATH BASE MEMBER 0 /usr/lib:/lib:/usr/pkgobj/fonts/fontconfig/work/.buildlink/lib:/usr/lib:/lib:/usr/pkg/lib:/usr/pkg/lib 1 libfreetype.so 2 libz.so 3 libexpat.so 4 libiconv.a shr4_64.o
5 libc.a shr_64.o My only workaround now is to set LIBPATH at runtime, which is awful! Louis