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

Bug#406491: Build failure of oops 1.5.23.cvs-3



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" <emmet.hikory@gmail.com>
> 
> 
> Reinhard Tartler <siretart@tauware.de> 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
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    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)
     ;;


Reply to: