retitle 307521 ia32-libs: Broken on amd64 / Compilation with 'gcc-3.4 -m32' 
does not work
tags 307521 +patch
thanks

I made some tests and finally found a small patch which makes ia32-libs
work again on amd64/sarge without any change to other packages, i.e.
without changing the 'gcc-3.4' package from sarge. 

The attached patch does the following:

* Remove the (Build-)Depends on 'lsb-release' from debian/control.

* Change debian/rules, debian/ia32-libs.postinst and debian/ia32-libs/postrm
  to use 'ROOT=' and 'SUFFIX=32' also for Debian amd64.

* Change debian/ia32-libs.postinst and debian/ia32-libs/postrm to create
  and remove a symlink from /emul/ia32-linux/usr/lib/libgcc_s.so.1 to
  /usr/lib32/libgcc_s.so.1. 
  This symlink is necessary for sarge because the lib32gcc1 package 
  from gcc-3.4 installs libgcc_s.so.1 in /emul/ia32-linux/usr/lib 
  instead of /usr/lib32. Once the gcc-3.4 package is corrected to
  use /usr/lib32, this symlink can simply be dropped.

* Change a sed rule in debian/rules so that it does not remove the leading
  '/' in the first commentary lines of libc.so and libpthread.so.


With this patch, it is possible to compile 32 bit binaries with 'gcc-3.4 -m32'
and to run those binaries.

If going back to the old working ia32-libs version 0.7 is not an option 
for some reason, this small patch could be used to make ia32-libs work
again on amd64.

Regards
Andreas Jochens


diff -urN ../tmp-orig/ia32-libs-1.3/debian/control ./debian/control
--- ../tmp-orig/ia32-libs-1.3/debian/control    2005-04-25 03:33:40.000000000 
+0200
+++ ./debian/control    2005-05-05 10:16:18.953931574 +0200
@@ -2,12 +2,12 @@
 Section: libs
 Priority: optional
 Maintainer: Bdale Garbee <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>> 3.0.0), dpkg-dev (>= 1.10.23), lsb-release
+Build-Depends: debhelper (>> 3.0.0), dpkg-dev (>= 1.10.23)
 Standards-Version: 3.6.1.0
 
 Package: ia32-libs
 Architecture: amd64 ia64
-Depends: lsb-release, lib32gcc1
+Depends: lib32gcc1
 Replaces: ia32-libs-openoffice.org
 Description: ia32 shared libraries for use on amd64 and ia64 systems
  This package contains runtime libraries for the ia32/i386
diff -urN ../tmp-orig/ia32-libs-1.3/debian/ia32-libs.postinst 
./debian/ia32-libs.postinst
--- ../tmp-orig/ia32-libs-1.3/debian/ia32-libs.postinst 2005-04-11 
18:08:38.000000000 +0200
+++ ./debian/ia32-libs.postinst 2005-05-05 10:15:54.642627454 +0200
@@ -2,13 +2,8 @@
 
 set -e
 
-if [ $(lsb_release -i -s) = "Debian" ]; then
-    ROOT=/emul/ia32-linux
-    SUFFIX=
-else
-    ROOT=
-    SUFFIX=32
-fi
+ROOT=
+SUFFIX=32
 
 addlineifmissing () {
     if ! grep -q "^$1$" "$2" ; then
@@ -23,4 +18,8 @@
     ldconfig
 fi
 
+if [ "`uname -m`" != "ia64" ] && ! [ -e /usr/lib32/libgcc_s.so.1 ]; then
+  ln -s /emul/ia32-linux/usr/lib/libgcc_s.so.1 /usr/lib32
+fi
+
 #DEBHELPER#
diff -urN ../tmp-orig/ia32-libs-1.3/debian/ia32-libs.postrm 
./debian/ia32-libs.postrm
--- ../tmp-orig/ia32-libs-1.3/debian/ia32-libs.postrm   2005-04-11 
18:15:06.000000000 +0200
+++ ./debian/ia32-libs.postrm   2005-05-05 10:15:54.642627454 +0200
@@ -2,13 +2,8 @@
 
 set -e
 
-if [ $(lsb_release -i -s) = "Debian" ]; then
-    ROOT=/emul/ia32-linux
-    SUFFIX=
-else
-    ROOT=
-    SUFFIX=32
-fi
+ROOT=
+SUFFIX=32
 
 removeline () {
     if grep -q "^/$1$" "$2"; then
@@ -28,4 +23,8 @@
     dpkg-divert --divert /usr/bin/ldd.ia32-libs --quiet --rename --package 
ia32-libs --remove /usr/bin/ldd
 fi
 
+if [ "`uname -m`" != "ia64" ] && [ -L /usr/lib32/libgcc_s.so.1 ]; then
+  rm /usr/lib32/libgcc_s.so.1
+fi
+
 #DEBHELPER#
diff -urN ../tmp-orig/ia32-libs-1.3/debian/rules ./debian/rules
--- ../tmp-orig/ia32-libs-1.3/debian/rules      2005-04-25 03:26:00.000000000 
+0200
+++ ./debian/rules      2005-05-05 10:15:54.643627302 +0200
@@ -5,14 +5,8 @@
 # Lowest version with fully ABI compatible libraries
 SHLIB_VERSION=0.2
 
-OSVER=$(shell lsb_release -s -i)
-ifeq (Debian,$(OSVER))
-       ROOT=emul/ia32-linux
-       SUFFIX=
-else
-       ROOT=
-       SUFFIX=32
-endif
+ROOT=
+SUFFIX=32
 
 build:
 #      ./fetch-and-build
@@ -53,11 +47,6 @@
        mv debian/ia32-libs/usr/lib debian/ia32-libs/$(ROOT)/usr/lib$(SUFFIX)
        mv debian/ia32-libs/usr/X11R6/lib 
debian/ia32-libs/$(ROOT)/usr/X11R6/lib$(SUFFIX)
 
-ifeq (Debian,$(OSVER))
-       mkdir -p  debian/ia32-libs/$(ROOT)/bin
-       mv debian/ia32-libs/bin/uname debian/ia32-libs/$(ROOT)/bin
-endif
-
 
        rm -r debian/ia32-libs/usr/include
        rm -r debian/ia32-libs/usr/X11R6
@@ -127,7 +116,7 @@
        # Fix up GROUP commands in linker scripts
        for lib in libc.so libpthread.so; do                            \
          cat debian/ia32-libs/$(ROOT)/usr/lib$(SUFFIX)/$$lib                   
        \
-           | sed -e 's,^/,$(ROOT),' -e 's,/lib/,/lib$(SUFFIX)/,g' > $$lib;     
        \
+           | sed -e 's, /, /$(ROOT),g' -e 's,/lib/,/lib$(SUFFIX)/,g' > $$lib; \
          mv -f $$lib debian/ia32-libs/$(ROOT)/usr/lib$(SUFFIX)/$$lib;          
\
        done
 


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

Reply via email to