Package: libffi Version: 3.0.4-2 Severity: wishlist Tags: patch
This patch adds biarchn32 support, and adds mips/mipsel to biarch64 and biarchn32 archs. Also Updates gcc-multilib Build-Depends for mips/mipsel. Thanks, Arthur.
From acbaf5d46eebb9cf5c172294e783660301a4fc2b Mon Sep 17 00:00:00 2001 From: Arthur Loiret <[EMAIL PROTECTED]> Date: Thu, 3 Apr 2008 01:19:13 +0200 Subject: [PATCH] Support MIPS triarch. --- debian/control | 27 +++++++++++++++++++++-- debian/rules | 62 ++++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 78 insertions(+), 11 deletions(-) diff --git a/debian/control b/debian/control index 39ea093..2b49cb0 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: libffi Priority: extra Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org> Uploaders: Matthias Klose <[EMAIL PROTECTED]> -Build-Depends: debhelper (>= 5), gcc-multilib [amd64 i386 powerpc ppc64 s390 sparc kfreebsd-amd64], dejagnu, lsb-release, texinfo +Build-Depends: debhelper (>= 5), gcc-multilib [amd64 i386 mips mipsel powerpc ppc64 s390 sparc kfreebsd-amd64], dejagnu, lsb-release, texinfo Standards-Version: 3.7.3 Section: libs @@ -32,7 +32,7 @@ Description: Foreign Function Interface library (development files, 32bit) Package: lib64ffi-dev Section: libdevel -Architecture: i386 powerpc sparc s390 +Architecture: i386 mips mipsel powerpc sparc s390 Depends: libffi-dev (= ${binary:Version}), lib64ffi5 (= ${binary:Version}) Description: Foreign Function Interface library (development files, 64bit) This package contains the headers and static library files necessary for @@ -42,6 +42,18 @@ Description: Foreign Function Interface library (development files, 64bit) allows code written in one language to call code written in another language. +Package: libn32ffi-dev +Section: libdevel +Architecture: mips mipsel +Depends: libffi-dev (= ${binary:Version}), libn32ffi5 (= ${binary:Version}) +Description: Foreign Function Interface library (development files, n32) + This package contains the headers and static library files necessary for + building programs which use libffi. + . + A foreign function interface is the popular name for the interface that + allows code written in one language to call code written in another + language. + Package: libffi5 Section: libs Architecture: any @@ -62,13 +74,22 @@ Description: Foreign Function Interface library runtime (32bit) Package: lib64ffi5 Section: libs -Architecture: i386 powerpc sparc s390 +Architecture: i386 mips mipsel powerpc sparc s390 Depends: ${shlibs:Depends}, ${misc:Depends} Description: Foreign Function Interface library runtime (64bit) A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language. +Package: libn32ffi5 +Section: libs +Architecture: mips mipsel +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Foreign Function Interface library runtime (n32) + A foreign function interface is the popular name for the interface that + allows code written in one language to call code written in another + language. + Package: libffi5-dbg Section: libdevel Architecture: any diff --git a/debian/rules b/debian/rules index 0aa443e..a60abe6 100755 --- a/debian/rules +++ b/debian/rules @@ -15,16 +15,24 @@ ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) with_check = yes endif -ifneq (,$(filter $(DEB_HOST_ARCH), i386 powerpc s390 sparc)) +ifneq (,$(filter $(DEB_HOST_ARCH), i386 mips mipsel powerpc s390 sparc)) multiarch += biarch64 + m64 = -m64 endif ifneq (,$(filter $(DEB_HOST_ARCH), amd64 kfreebsd-amd64 ppc64)) multiarch += biarch32 + m32 = -m32 +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel)) + multiarch += biarchn32 + m64 = -mabi=64 + mn32 = -mabi=n32 endif biarch_map := i486=x86_64 powerpc=powerpc64 sparc=sparc64 s390=s390x \ - x86_64=i486 powerpc64=powerpc + x86_64=i486 powerpc64=powerpc mips=mips64 mipsel=mips64el biarch_cpu := $(patsubst $(DEB_HOST_GNU_CPU)=%,%, \ $(filter $(DEB_HOST_GNU_CPU)=%,$(biarch_map))) biarch_gnu_type := $(subst $(DEB_HOST_GNU_CPU),$(biarch_cpu),$(DEB_HOST_GNU_TYPE)) @@ -57,7 +65,7 @@ stamp-configure-biarch32: --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ - CC="gcc -m32" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)" + CC="gcc $(m32)" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)" touch $@ stamp-configure-biarch64: @@ -70,7 +78,20 @@ stamp-configure-biarch64: --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ - CC="gcc -m64" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)" + CC="gcc $(m64)" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)" + touch $@ + +stamp-configure-biarchn32: + dh_testdir + rm -rf buildn32 + mkdir -p buildn32 + cd buildn32 && ../configure \ + --host=$(biarch_gnu_type) \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + CC="gcc $(mn32)" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)" touch $@ build: stamp-build \ @@ -92,6 +113,11 @@ stamp-build-biarch64: stamp-configure-biarch64 $(MAKE) -C build64 touch $@ +stamp-build-biarchn32: stamp-configure-biarchn32 + dh_testdir + $(MAKE) -C buildn32 + touch $@ + check: stamp-check $(foreach a, $(multiarch), stamp-check-$(a)) stamp-check: stamp-build dh_testdir @@ -101,17 +127,25 @@ stamp-check: stamp-build stamp-check-biarch32: stamp-build-biarch32 dh_testdir mkdir -p build32/bin - echo '/usr/bin/gcc -m32 "$$@"' > build32/bin/gcc + echo '/usr/bin/gcc $(m32) "$$@"' > build32/bin/gcc chmod 755 build32/bin/gcc - -PATH=$(CURDIR)/build32/bin:$$PATH $(MAKE) -C build32 check CC="gcc -m32" 2>&1 | tee build32/check.log + -PATH=$(CURDIR)/build32/bin:$$PATH $(MAKE) -C build32 check CC="gcc $(m32)" 2>&1 | tee build32/check.log touch $@ stamp-check-biarch64: stamp-build-biarch64 dh_testdir mkdir -p build64/bin - echo '/usr/bin/gcc -m64 "$$@"' > build64/bin/gcc + echo '/usr/bin/gcc $(m64) "$$@"' > build64/bin/gcc chmod 755 build64/bin/gcc - -PATH=$(CURDIR)/build64/bin:$$PATH $(MAKE) -C build64 check 2>&1 | tee build64/check.log + -PATH=$(CURDIR)/build64/bin:$$PATH $(MAKE) -C build64 check CC="gcc $(m64)" 2>&1 | tee build64/check.log + touch $@ + +stamp-check-biarchn32: stamp-build-biarchn32 + dh_testdir + mkdir -p buildn32/bin + echo '/usr/bin/gcc $(mn32) "$$@"' > buildn32/bin/gcc + chmod 755 buildn32/bin/gcc + -PATH=$(CURDIR)/buildn32/bin:$$PATH $(MAKE) -C buildn32 check CC="gcc $(mn32)" 2>&1 | tee buildn32/check.log touch $@ clean: @@ -141,6 +175,11 @@ ifneq (,$(filter biarch64, $(multiarch))) cp -p build64/.libs/libffi_convenience.a \ debian/tmp/usr/lib64/libffi_pic.a endif +ifneq (,$(filter biarchn32, $(multiarch))) + $(MAKE) -C buildn32 DESTDIR=$(CURDIR)/debian/tmp libdir=/usr/lib32 install + cp -p buildn32/.libs/libffi_convenience.a \ + debian/tmp/usr/lib32/libffi_pic.a +endif dh_install -s --sourcedir=debian/tmp ifneq (,$(filter biarch32, $(multiarch))) @@ -190,6 +229,13 @@ ifneq (,$(filter biarch64, $(multiarch))) cat build64/check.log >> debian/libffi-dev/usr/share/doc/libffi$(major)/test_results.txt endif endif +ifneq (,$(filter biarchn32, $(multiarch))) + rm -rf debian/libn32ffi-dev/usr/share/doc/libn32ffi-dev + ln -s libffi-dev debian/libn32ffi-dev/usr/share/doc/libn32ffi-dev + ifeq ($(with_check),yes) + cat buildn32/check.log >> debian/libffi-dev/usr/share/doc/libffi$(major)/test_results.txt + endif +endif dh_strip -s --dbg-package=libffi$(major)-dbg dh_compress -s dh_fixperms -s -- 1.5.4.2
signature.asc
Description: Digital signature