Package: klibc
Version: 1.5.20-1
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: origin-ubuntu ubuntu-patch natty

We've been experimenting with bringing up a ppc64 port of Ubuntu.  As
part of this I found that, much like ia64 (#439181), klibc shared
binaries simply segfault on ppc64: they seem to be loading
__malloc_head.next_free from the wrong place so as soon as anything
calls malloc it segfaults.  There may be other problems too, for all I
know.  I realise this ought to be fixed properly, but I spent a day on
this and ran out of time, so perhaps you could add it to the list of
architectures that need static binaries?

(You might want to merge this with the ia64-static patch rather than
applying another patch on top of it like this.)

  * Install static binaries on ppc64.

diff -Nru klibc-1.5.20/debian/patches/ppc64-static 
klibc-1.5.20/debian/patches/ppc64-static
--- klibc-1.5.20/debian/patches/ppc64-static    1970-01-01 01:00:00.000000000 
+0100
+++ klibc-1.5.20/debian/patches/ppc64-static    2011-02-18 13:28:38.000000000 
+0000
@@ -0,0 +1,91 @@
+Index: b/usr/dash/Kbuild
+===================================================================
+--- a/usr/dash/Kbuild
++++ b/usr/dash/Kbuild
+@@ -93,7 +93,7 @@
+       $(Q):
+ 
+ # Targets to install
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := sh
+ else
+ install-y := sh.shared
+Index: b/usr/kinit/fstype/Kbuild
+===================================================================
+--- a/usr/kinit/fstype/Kbuild
++++ b/usr/kinit/fstype/Kbuild
+@@ -22,7 +22,7 @@
+ clean-dirs := static shared
+ 
+ # install binary
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y)
+ else
+ install-y := $(shared-y)
+Index: b/usr/kinit/ipconfig/Kbuild
+===================================================================
+--- a/usr/kinit/ipconfig/Kbuild
++++ b/usr/kinit/ipconfig/Kbuild
+@@ -28,7 +28,7 @@
+ clean-dirs := static shared
+ 
+ # install binary
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y)
+ else
+ install-y := $(shared-y)
+Index: b/usr/kinit/nfsmount/Kbuild
+===================================================================
+--- a/usr/kinit/nfsmount/Kbuild
++++ b/usr/kinit/nfsmount/Kbuild
+@@ -24,7 +24,7 @@
+ clean-dirs := static shared
+ 
+ # Install binary
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y)
+ else
+ install-y := $(shared-y)
+Index: b/usr/kinit/resume/Kbuild
+===================================================================
+--- a/usr/kinit/resume/Kbuild
++++ b/usr/kinit/resume/Kbuild
+@@ -27,7 +27,7 @@
+ clean-dirs := static shared
+ 
+ # install binary
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y)
+ else
+ install-y := $(shared-y)
+Index: b/usr/kinit/run-init/Kbuild
+===================================================================
+--- a/usr/kinit/run-init/Kbuild
++++ b/usr/kinit/run-init/Kbuild
+@@ -26,7 +26,7 @@
+ clean-dirs := static shared
+ 
+ # install binary
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y)
+ else
+ install-y := $(shared-y)
+Index: b/usr/utils/Kbuild
+===================================================================
+--- a/usr/utils/Kbuild
++++ b/usr/utils/Kbuild
+@@ -73,7 +73,7 @@
+ clean-dirs := static shared
+ 
+ # install only install the shared binaries
+-ifeq ($(ARCH),ia64)
++ifneq (,$(filter $(ARCH),ia64 ppc64))
+ install-y := $(static-y) static/reboot static/poweroff
+ else
+ install-y := $(shared-y) shared/reboot shared/poweroff
diff -Nru klibc-1.5.20/debian/patches/series klibc-1.5.20/debian/patches/series
--- klibc-1.5.20/debian/patches/series  2010-08-28 12:09:43.000000000 +0100
+++ klibc-1.5.20/debian/patches/series  2011-02-18 13:26:48.000000000 +0000
@@ -2,3 +2,4 @@
 klibc-linux-libc-dev
 insmod
 debian-changes-1.5.20-1
+ppc64-static
diff -Nru klibc-1.5.20/debian/rules klibc-1.5.20/debian/rules
--- klibc-1.5.20/debian/rules   2010-08-25 11:58:44.000000000 +0100
+++ klibc-1.5.20/debian/rules   2011-02-18 13:30:26.000000000 +0000
@@ -26,6 +26,9 @@
 ifeq ($(DEB_HOST_ARCH),sh4)
 DEB_MAKE_ENVVARS := ARCH=sh
 endif
+ifeq ($(DEB_HOST_ARCH),ppc64)
+DEB_MAKE_ENVVARS := ARCH=ppc64
+endif
 
 DEB_MAKE_ENVVARS := INSTALLROOT=debian/tmp $(DEB_MAKE_ENVVARS)
 
Thanks,

-- 
Colin Watson                                       [[email protected]]



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to