pkgsrc-Users archive

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

Re: LIBPATH issues on AIX

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/ as a 32-bit object. But
pkgsrc has /usr/pkg/lib/ 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...


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/


                        ***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 2 3 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!


Home | Main Index | Thread Index | Old Index