[csw-maintainers] Shared library search path with $ISALIST in the middle

Maciej (Matchek) Blizinski maciej at opencsw.org
Tue Sep 22 21:26:16 CEST 2009


I'm working on packaging MySQL-5.0.x. I'm having a following problem:

When making a 64-bit build, during the install phase, the following
tree structure is being created:

work/install-isa-amd64/opt/csw/mysql5/lib
`-- 64
    `-- mysql
        |-- libdbug.a
        |-- libheap.a
        |-- libmyisam.a
        |-- libmyisammrg.a
        |-- libmysqlclient.a
        |-- libmysqlclient.la
        |-- libmysqlclient.so -> libmysqlclient.so.15.0.0
        |-- libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
        |-- libmysqlclient.so.15.0.0
        |-- libmystrings.a
        |-- libmysys.a
        `-- libvio.a

2 directories, 12 files

After building a package, the following files are in the package prototype:

d none /opt/csw/mysql5/lib/amd64/mysql 0755 root bin
s none /opt/csw/mysql5/lib/amd64/mysql/libmysqlclient.so=libmysqlclient.so.15.0.0
s none /opt/csw/mysql5/lib/amd64/mysql/libmysqlclient.so.15=libmysqlclient.so.15.0.0
f none /opt/csw/mysql5/lib/amd64/mysql/libmysqlclient.so.15.0.0 0755 root bin

When running the 'mysql' binary, I'm getting an error:

$ mysql
ld.so.1: mysql: fatal: libmysqlclient.so.15: open failed: No such file
or directory
Killed

The reason is that the binary is not looking into the directories
containing the shared libraries. The difference is:

the existing file: .../amd64/mysql/libmysqlclient.so
the program is looking for: .../mysql/amd64/libmysqlclient.so

Can set the runtime library path to .../amd64/mysql/libmysqlclient.so?
Is the following line the right thing to do?

EXTRA_LIB = /opt/csw/mysql5/lib/$$ISALIST/mysql

Maciej



More information about the maintainers mailing list