reassign 406491 oops
found 406491 1.5.23.cvs-3
retitle 406491 oops: should not use its own rwlock implementation
tag 406491 + patch
thanks
Reinhard Tartler a écrit :
Package: glibc
Version: 2.5-0exp3
Please see the forwarded email from Emmet Hikory. He tried to build oops
with glibc 2.5, which is default in ubuntu/feisty. He confirmed that
this problem does also occur with glibc from debian/experimental, in an
sid chroot.
I'm not sure what the problem is, and am therefore requesting your input.
Sujet:
Re: Build failure of oops 1.5.23.cvs-3 on feisty
Expéditeur:
Emmet Hikory [EMAIL PROTECTED]
Reinhard Tartler [EMAIL PROTECTED] wrote:
thanks for the buildlog. In debian, the build is fine:
http://buildd.debian.org/fetch.cgi?pkg=oops;ver=1.5.23.cvs-3;arch=amd64;stamp=1142759810
[...]
Towards furthering the resolution of the FTBFS, I used the sid-source
chroot on the lvm to build oops 1.5.23.cvs-3, which worked fine. I
then downloaded and installed four additional packages from
ftp.debian.org:
libc6-dev_2.5-0exp3_amd64.deb
libc6_2.5-0exp3_amd64.deb
locales_2.5-0exp3_all.deb
nscd_2.5-0exp3_amd64.deb
Still within the chroot (now sid+experimental glibc), I removed the
last build, re-ran dpkg-source -x, and again ran debuid, resuling in a
buildlog (attached) that looks very simiar to that from feisty,
reinforcing my opinion that it is due to the 2.3-2.5 transition.
The glibc implementation of rwlock has changed between version 2.3.6 and
2.5, but not the API. Oops is currenly using its own copy of the rwlock
implementation, accessing directly to the internal variables.
It should instead use the glibc implementation. For that you should use
-D_BSD_SOURCE -D_XOPEN_SOURCE=600, as defined in the XG6 standard.
Please see the attached patch.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' [EMAIL PROTECTED] | [EMAIL PROTECTED]
`-people.debian.org/~aurel32 | www.aurel32.net
diff -u oops-1.5.23.cvs/configure oops-1.5.23.cvs/configure
--- oops-1.5.23.cvs/configure
+++ oops-1.5.23.cvs/configure
@@ -5517,7 +5517,7 @@
LIBS=$LEXLIB $LIBS
CXX=g++
;;
-gnu*|linux*) CFLAGS=$CFLAGS -D_REENTRANT -DLINUX
+gnu*|linux*) CFLAGS=$CFLAGS -D_REENTRANT -DLINUX -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
CXX=g++
if test $pthread_in = pthreads ; then
CFLAGS=$CFLAGS -D_MIT_POSIX_THREADS
@@ -6074,13 +6074,6 @@
esac
case $host_os in
-gnu*|linux*)
-EXTRASRC=$EXTRASRC rwlock.c ;
-cd src;
-cp -f lib/rwlock/rwlock.c ./;
-cp -f lib/rwlock/rwlock.h ./;
-cd ..
-;;
freebsd*)
cat confdefs.h \_ACEOF
#define HAVE_PTHREAD_RWLOCK_INIT 1
diff -u oops-1.5.23.cvs/configure.in oops-1.5.23.cvs/configure.in
--- oops-1.5.23.cvs/configure.in
+++ oops-1.5.23.cvs/configure.in
@@ -358,7 +358,7 @@
LIBS=$LEXLIB $LIBS
CXX=g++
;;
-gnu*|linux*) CFLAGS=$CFLAGS -D_REENTRANT -DLINUX
+gnu*|linux*) CFLAGS=$CFLAGS -D_REENTRANT -DLINUX -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
CXX=g++
if test $pthread_in = pthreads ; then
CFLAGS=$CFLAGS -D_MIT_POSIX_THREADS
@@ -492,13 +492,6 @@
esac
case $host_os in
-gnu*|linux*)
-EXTRASRC=$EXTRASRC rwlock.c ;
-cd src;
-cp -f lib/rwlock/rwlock.c ./;
-cp -f lib/rwlock/rwlock.h ./;
-cd ..
-;;
freebsd*)
AC_DEFINE(HAVE_PTHREAD_RWLOCK_INIT)
;;