On Fri, Nov 24, 2006 at 09:25:42PM +0100, Joop Stakenborg wrote:
> Very weird. All architectures build fine, so why does amd64 fail?
> libcw.so.0.0.0 seems to be created correctly.
Not in the log file that he cited, it doesn't.
make[3]: Entering directory /build/buildd/unixcw-2.3/src/cwlib'
if [ "no" = "yes" ]; then \
x86_64-linux-gnu-gcc -shared -Wl,-soname,libcw.so.0
\
-o libcw.so.0.0.0 cwlib.o; \
else \
if [ "no" = "yes" ]; then \
/usr/bin/ld -G -Wl,-soname,libcw.so.0
\
-o libcw.so.0.0.0 cwlib.o; \
fi \
fi
ln -s -f libcw.so.0.0.0 libcw.so.0
ln -s -f libcw.so.0.0.0 libcw.so
I think it's safe to say that "no" != "yes", in both cases.
So your package seems to make some assumption that /happened/ to be correct
in the past on amd64 but isn't any longer.
The exact check I find that's failing in configure for the testing version
of unixcw is
checking whether ld builds .so files with -G... no
which is a wrong check, because that's not how it goes on to try to link the
.so!
In the new version, we instead get:
CC_LINKS_SO="no"
if test -n "$CC" ; then
AC_MSG_CHECKING(whether cc builds .so files with -shared)
cat >conftest.c <<-EOF
int so_test() { return 0; }
EOF
$CC -c conftest.c >/dev/null 2>/dev/null
$CC -shared -o conftest.so conftest.o >/dev/null 2>/dev/null
rm -f conftest.c conftest.o
if test -f conftest.so ; then
nm conftest.so | grep -q so_test
if test $? -eq 0 ; then
CC_LINKS_SO="yes"
fi
fi
rm -f conftest.so
if test $CC_LINKS_SO = "yes" ; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
This is also crap, and the test fails silently because you're not allowed to
link objects into a .so on amd64 unless they're built with -fPIC, which is
enforced by the toolchain.
Guessing how to build shared objects on different platforms is a total waste
of time. Upstream should switch to libtool and be done with it.
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
[EMAIL PROTECTED] http://www.debian.org/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]