Warren Young
2011-07-13 19:21:17 UTC
I tried to build my Bakefile-based project on CentOS 6 for the first
time today.
The project goes through the bootstrap and build processes just fine,
right through the link step for the main target, a library. (<dll> tag
in the .bkl file.) After that it goes on to build some test and sample
programs that exercise the library, but the first one of these fails to
build because the libmyproject.so file doesn't exist. The
libmyproject.so.x.y.z file created by the link step exists, but the .x.y
and .x symlinks don't exist.
This causes the subsequent library test programs to fail, because their
build lines have -lmyproject, and libmyproject.so doesn't exist.
Here's the last few build lines:
g++ -shared -fPIC -o libmysqlpp.so.3.1.0 [LOTS OF .o FILES]
-Wl,-soname,libmysqlpp.so.3 -lmysqlclient -L/usr/lib64
/usr/bin/ld: cannot find -lmysqlclient
To the best of my knowledge, the only difference between these two build
systems is the OS.
I poked into the generated Makefile.in and Makefile, and see something
about a USE_SOTWOSYMLINKS conditional variable. I assume what's going
on is that conditional isn't getting set to 1, but I don't see how to do
that. -DUSE_SOTWOSYMLINKS=1 on the bakefile command line doesn't do it.
I never had to explicitly set it before.
Could it be an incompatibility with newer versions of the various tools?
Differences I've found:
Autoconf 2.59 -> 2.63
Automake 1.9.6 -> 1.11.1
Python 2.4.3 -> 2.6.5
SWIG 1.3.29 -> 1.3.40
GCC 4.1.2 -> 4.4.4
time today.
The project goes through the bootstrap and build processes just fine,
right through the link step for the main target, a library. (<dll> tag
in the .bkl file.) After that it goes on to build some test and sample
programs that exercise the library, but the first one of these fails to
build because the libmyproject.so file doesn't exist. The
libmyproject.so.x.y.z file created by the link step exists, but the .x.y
and .x symlinks don't exist.
This causes the subsequent library test programs to fail, because their
build lines have -lmyproject, and libmyproject.so doesn't exist.
Here's the last few build lines:
g++ -shared -fPIC -o libmysqlpp.so.3.1.0 [LOTS OF .o FILES]
-Wl,-soname,libmysqlpp.so.3 -lmysqlclient -L/usr/lib64
/usr/bin/ld: cannot find -lmysqlclient
To the best of my knowledge, the only difference between these two build
systems is the OS.
I poked into the generated Makefile.in and Makefile, and see something
about a USE_SOTWOSYMLINKS conditional variable. I assume what's going
on is that conditional isn't getting set to 1, but I don't see how to do
that. -DUSE_SOTWOSYMLINKS=1 on the bakefile command line doesn't do it.
I never had to explicitly set it before.
Could it be an incompatibility with newer versions of the various tools?
Differences I've found:
Autoconf 2.59 -> 2.63
Automake 1.9.6 -> 1.11.1
Python 2.4.3 -> 2.6.5
SWIG 1.3.29 -> 1.3.40
GCC 4.1.2 -> 4.4.4