On Thu, Mar 15, 2007 at 11:00:20PM +1100, Trent Buck wrote:
> On Thu, Mar 15, 2007 at 07:16:09AM +0100, Lionel Elie Mamane wrote:
>> On Thu, Mar 15, 2007 at 07:28:49AM +1100, Trent Buck wrote:
>>
>>> The attached patch makes scsh 0.6.7 compile on the amd64 platform,
>>> using 32-bit libraries.
>>
>> Indeed I expect that unconditionally adding -m32 to CFLAGS breaks
>> other platforms.
>
> The following is a similar patch for Scheme48 that adds -m32
> conditionally. [...]

Here's the exact changes needed to add support for AMD64 to scsh-0.6,
and *nothing* else.  It was generated by debdiff; apply thusly:

    apt-get source scsh-0.6
    cd scsh-0.6-0.6.7/
    patch -p1 <../just-add-amd64.patch
    dpkg-buildpackage

It adds the appropriate build dependencies to control.in and control.
$ debdiff scsh-0.6_0.6.7-4.dsc scsh-0.6_0.6.7-5.dsc
diff -u scsh-0.6-0.6.7/debian/rules scsh-0.6-0.6.7/debian/rules
--- scsh-0.6-0.6.7/debian/rules
+++ scsh-0.6-0.6.7/debian/rules
@@ -18,6 +18,11 @@
 INSTALL_PROGRAM += -s
 endif
 
+## Magic to support the amd64 architecture via its 32-bit layer.
+ifeq (amd64,$(DEB_HOST_ARCH))
+CFLAGS += -m32
+endif
+
 export CFLAGS
 
 # export DH_VERBOSE=1
diff -u scsh-0.6-0.6.7/debian/control scsh-0.6-0.6.7/debian/control
--- scsh-0.6-0.6.7/debian/control
+++ scsh-0.6-0.6.7/debian/control
@@ -4,10 +4,10 @@
 Maintainer: Scheme48 Maintainers Task Force <[EMAIL PROTECTED]>
 Uploaders: Lionel Elie Mamane <[EMAIL PROTECTED]>, Jorgen Schäfer <[EMAIL PROTECTED]>
 Standards-Version: 3.7.2
-Build-Depends: debhelper (>= 4), libelfg0-dev, type-handling
+Build-Depends: debhelper (>= 4), libelfg0-dev, type-handling, libc6-dev-i386 [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64], ia32-libs [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64], gcc-multilib [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64]
 
 Package: scsh-0.6
-Architecture: darwin-arm freebsd-arm hurd-arm kfreebsd-arm knetbsd-arm arm netbsd-arm openbsd-arm solaris-arm darwin-armeb freebsd-armeb hurd-armeb kfreebsd-armeb knetbsd-armeb armeb netbsd-armeb openbsd-armeb solaris-armeb armel darwin-hppa freebsd-hppa hurd-hppa kfreebsd-hppa knetbsd-hppa hppa netbsd-hppa openbsd-hppa solaris-hppa darwin-i386 freebsd-i386 hurd-i386 kfreebsd-i386 knetbsd-i386 i386 netbsd-i386 openbsd-i386 solaris-i386 darwin-m32r freebsd-m32r hurd-m32r kfreebsd-m32r knetbsd-m32r m32r netbsd-m32r openbsd-m32r solaris-m32r darwin-m68k freebsd-m68k hurd-m68k kfreebsd-m68k knetbsd-m68k m68k netbsd-m68k openbsd-m68k solaris-m68k darwin-mips freebsd-mips hurd-mips kfreebsd-mips knetbsd-mips mips netbsd-mips openbsd-mips solaris-mips darwin-mipsel freebsd-mipsel hurd-mipsel kfreebsd-mipsel knetbsd-mipsel mipsel netbsd-mipsel openbsd-mipsel solaris-mipsel darwin-powerpc freebsd-powerpc hurd-powerpc kfreebsd-powerpc knetbsd-powerpc powerpc netbsd-powerpc openbsd-powerpc solaris-powerpc darwin-s390 freebsd-s390 hurd-s390 kfreebsd-s390 knetbsd-s390 s390 netbsd-s390 openbsd-s390 solaris-s390 darwin-sh3 freebsd-sh3 hurd-sh3 kfreebsd-sh3 knetbsd-sh3 sh3 netbsd-sh3 openbsd-sh3 solaris-sh3 darwin-sh3eb freebsd-sh3eb hurd-sh3eb kfreebsd-sh3eb knetbsd-sh3eb sh3eb netbsd-sh3eb openbsd-sh3eb solaris-sh3eb darwin-sh4 freebsd-sh4 hurd-sh4 kfreebsd-sh4 knetbsd-sh4 sh4 netbsd-sh4 openbsd-sh4 solaris-sh4 darwin-sh4eb freebsd-sh4eb hurd-sh4eb kfreebsd-sh4eb knetbsd-sh4eb sh4eb netbsd-sh4eb openbsd-sh4eb solaris-sh4eb darwin-sparc freebsd-sparc hurd-sparc kfreebsd-sparc knetbsd-sparc sparc netbsd-sparc openbsd-sparc solaris-sparc
+Architecture: darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64 darwin-arm freebsd-arm hurd-arm kfreebsd-arm knetbsd-arm arm netbsd-arm openbsd-arm solaris-arm darwin-armeb freebsd-armeb hurd-armeb kfreebsd-armeb knetbsd-armeb armeb netbsd-armeb openbsd-armeb solaris-armeb armel darwin-hppa freebsd-hppa hurd-hppa kfreebsd-hppa knetbsd-hppa hppa netbsd-hppa openbsd-hppa solaris-hppa darwin-i386 freebsd-i386 hurd-i386 kfreebsd-i386 knetbsd-i386 i386 netbsd-i386 openbsd-i386 solaris-i386 darwin-m32r freebsd-m32r hurd-m32r kfreebsd-m32r knetbsd-m32r m32r netbsd-m32r openbsd-m32r solaris-m32r darwin-m68k freebsd-m68k hurd-m68k kfreebsd-m68k knetbsd-m68k m68k netbsd-m68k openbsd-m68k solaris-m68k darwin-mips freebsd-mips hurd-mips kfreebsd-mips knetbsd-mips mips netbsd-mips openbsd-mips solaris-mips darwin-mipsel freebsd-mipsel hurd-mipsel kfreebsd-mipsel knetbsd-mipsel mipsel netbsd-mipsel openbsd-mipsel solaris-mipsel darwin-powerpc freebsd-powerpc hurd-powerpc kfreebsd-powerpc knetbsd-powerpc powerpc netbsd-powerpc openbsd-powerpc solaris-powerpc darwin-s390 freebsd-s390 hurd-s390 kfreebsd-s390 knetbsd-s390 s390 netbsd-s390 openbsd-s390 solaris-s390 darwin-sh3 freebsd-sh3 hurd-sh3 kfreebsd-sh3 knetbsd-sh3 sh3 netbsd-sh3 openbsd-sh3 solaris-sh3 darwin-sh3eb freebsd-sh3eb hurd-sh3eb kfreebsd-sh3eb knetbsd-sh3eb sh3eb netbsd-sh3eb openbsd-sh3eb solaris-sh3eb darwin-sh4 freebsd-sh4 hurd-sh4 kfreebsd-sh4 knetbsd-sh4 sh4 netbsd-sh4 openbsd-sh4 solaris-sh4 darwin-sh4eb freebsd-sh4eb hurd-sh4eb kfreebsd-sh4eb knetbsd-sh4eb sh4eb netbsd-sh4eb openbsd-sh4eb solaris-sh4eb darwin-sparc freebsd-sparc hurd-sparc kfreebsd-sparc knetbsd-sparc sparc netbsd-sparc openbsd-sparc solaris-sparc
 Depends: ${shlibs:Depends}, scsh-common-0.6 (= ${source:Version})
 Replaces: scsh (<= 0.6.6-3)
 Conflicts: scsh (<= 0.6.6-3)
diff -u scsh-0.6-0.6.7/debian/control.in scsh-0.6-0.6.7/debian/control.in
--- scsh-0.6-0.6.7/debian/control.in
+++ scsh-0.6-0.6.7/debian/control.in
@@ -4,10 +4,10 @@
 Maintainer: Scheme48 Maintainers Task Force <[EMAIL PROTECTED]>
 Uploaders: Lionel Elie Mamane <[EMAIL PROTECTED]>, Jorgen Schäfer <[EMAIL PROTECTED]>
 Standards-Version: 3.7.2
-Build-Depends: debhelper (>= 4), libelfg0-dev, type-handling
+Build-Depends: debhelper (>= 4), libelfg0-dev, type-handling, libc6-dev-i386 [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64], ia32-libs [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64], gcc-multilib [darwin-amd64 freebsd-amd64 hurd-amd64 kfreebsd-amd64 knetbsd-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64]
 
 Package: scsh-0.6
-Cpu: i386,arm,armel,armeb,hppa,m32r,m68k,mips,mipsel,powerpc,s390,sh3,sh3eb,sh4,sh4eb,sparc
+Cpu: i386,arm,armel,armeb,hppa,m32r,m68k,mips,mipsel,powerpc,s390,sh3,sh3eb,sh4,sh4eb,sparc,amd64
 System: any
 Depends: ${shlibs:Depends}, scsh-common-0.6 (= ${source:Version})
 Replaces: scsh (<= 0.6.6-3)
diff -u scsh-0.6-0.6.7/debian/changelog scsh-0.6-0.6.7/debian/changelog
--- scsh-0.6-0.6.7/debian/changelog
+++ scsh-0.6-0.6.7/debian/changelog
@@ -1,3 +1,9 @@
+scsh-0.6 (0.6.7-5) unstable; urgency=low
+
+  * Add amd64 support via -m32 kludge (Closes: #414931).
+
+ -- Trent W. Buck <[EMAIL PROTECTED]>  Mon, 14 Jan 2008 05:40:05 +1100
+
 scsh-0.6 (0.6.7-4) unstable; urgency=low
 
   * Add armel and armeb to supported CPU ABI list.

Attachment: signature.asc
Description: Digital signature

Reply via email to