Package: dietlibc
Version: 0.31-1
Severity: grave
Tags: patch
Justification: renders package unusable

Hi,

As it turns out dietlibc-0.31 doesn't properly define the umount2
symbols on two architectures: alpha and ia64. This sadly results in a
build regression for util-vserver, which used to build on these
architectures, but is refusing to build now. This is holding back an
important transition of the package into Lenny. In otherwords, if this
package cannot be built on alpha/ia64, then it will not be usable for
most cases in Lenny due to the previous version not functioning
properly in two important respects.

The buildlogs which demonstrate this problem are:

alpha: 
http://buildd.debian.org/fetch.cgi?&pkg=util-vserver&ver=0.30.216%7Er2772-5&arch=alpha&stamp=1227907425&file=log
ia64: 
http://buildd.debian.org/fetch.cgi?&pkg=util-vserver&ver=0.30.216%7Er2772-5&arch=ia64&stamp=1227907303&file=log

both complain, rightly:

diet -Os gcc -Wall -g -O2 -std=c99 -Wall -pedantic -W -funit-at-a-time
 -o src/exec-remount src/exec-remount.o lib/libvserver.a
 src/exec-remount.o: In function `main':
 /build/buildd/util-vserver-0.30.216~r2772/src/exec-remount.c:110:
 undefined reference to `umount2' collect2: ld returned 1 exit status

The solution to this is the attached patch, I believe.

micah



-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-vserver-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

dietlibc depends on no packages.

dietlibc recommends no packages.

Versions of packages dietlibc suggests:
ii  dietlibc-dev                  0.31-1     diet libc - a libc optimized for s
pn  dietlibc-doc                  <none>     (no description available)

-- no debconf information
--- a/syscalls.s/umount.S	9 Jan 2001 17:57:49 -0000	1.1
+++ b/syscalls.s/umount.S	10 Dec 2008 20:21:33 -0000
@@ -1,3 +1,7 @@
 #include "syscalls.h"
 
+#if defined(__NR_oldumount) && defined(__NR_umount)
+syscall(oldumount,umount)
+#else
 syscall(umount,umount)
+#endif
--- a/syscalls.s/umount2.S	4 Jan 2003 22:21:48 -0000	1.2
+++ b/syscalls.s/umount2.S	10 Dec 2008 20:21:33 -0000
@@ -1,5 +1,7 @@
 #include "syscalls.h"
 
-#ifdef __NR_umount2
+#if defined(__NR_umount2)
 syscall(umount2,umount2)
+#elif defined(__NR_oldumount) && defined(__NR_umount)
+syscall(umount,umount2)
 #endif

Reply via email to