--- Begin Message ---
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
--- End Message ---