Bug#481628: libffi-bug
Andreas Barth wrote:
> * Matthias Klose (doko@cs.tu-berlin.de) [080521 12:13]:
> > that looks ok for now, we can work on the unification of the headers
> > later.
>
> In case Thiemo agrees (or doesn't disagree) - do you plan to upload it?
> Should I NMU it? ...?
I disagree, because I was confused about the long double size. :-)
(The current version is correct on that.)
The appended patch makes the headers for all three ABIs identical,
but still keeps them in separate locations. This keeps the MIPS
specialcases in the rules file under control, retains the header
unification which upstream might like, and is the lowest risk approach
for other architectures.
Thiemo
diff -urpN libffi-3.0.5.old/configure libffi-3.0.5/configure
--- libffi-3.0.5.old/configure 2008-04-03 16:52:16.000000000 +0100
+++ libffi-3.0.5/configure 2008-05-21 01:45:58.000000000 +0100
@@ -20426,6 +20426,8 @@ case "$host" in
TARGET=MIPS; TARGETDIR=mips
;;
mips*-*-linux*)
+ # Support 128-bit long double for NewABI.
+ HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS; TARGETDIR=mips
;;
diff -urpN libffi-3.0.5.old/configure.ac libffi-3.0.5/configure.ac
--- libffi-3.0.5.old/configure.ac 2008-04-03 16:44:00.000000000 +0100
+++ libffi-3.0.5/configure.ac 2008-05-21 00:02:02.000000000 +0100
@@ -103,6 +103,8 @@ case "$host" in
TARGET=MIPS; TARGETDIR=mips
;;
mips*-*-linux*)
+ # Support 128-bit long double for NewABI.
+ HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS; TARGETDIR=mips
;;
diff -urpN libffi-3.0.5.old/debian/rules libffi-3.0.5/debian/rules
--- libffi-3.0.5.old/debian/rules 2008-05-21 03:19:25.000000000 +0100
+++ libffi-3.0.5/debian/rules 2008-05-21 03:23:25.000000000 +0100
@@ -29,6 +29,8 @@ ifneq (,$(filter $(DEB_HOST_ARCH), mips
multiarch += biarchn32
m64 = -mabi=64
mn32 = -mabi=n32
+ abin32 = -gnuabin32
+ abi64 = -gnuabi64
endif
biarch_map := i486=x86_64 powerpc=powerpc64 sparc=sparc64 s390=s390x \
@@ -80,7 +82,7 @@ stamp-configure-biarch64:
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
- --includedir=\$${prefix}/include/$(biarch_gnu_type) \
+ --includedir=\$${prefix}/include/$(biarch_gnu_type)$(abi64) \
--libdir=\$${prefix}/lib64 \
CC="gcc $(m64)" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)"
touch $@
@@ -95,7 +97,7 @@ stamp-configure-biarchn32:
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
- --includedir=\$${prefix}/include/$(biarch_gnu_type) \
+ --includedir=\$${prefix}/include/$(biarch_gnu_type)$(abin32) \
--libdir=\$${prefix}/lib32 \
CC="gcc $(mn32)" CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs $(LDFLAGS)"
touch $@
@@ -198,13 +200,13 @@ ifneq (,$(filter biarch32, $(multiarch))
debian/lib32ffi-dev/usr/include/
endif
ifneq (,$(filter biarch64, $(multiarch)))
- mkdir -p debian/lib64ffi-dev/usr/include/$(biarch_gnu_type)
- mv debian/libffi-dev/usr/include/$(biarch_gnu_type) \
+ mkdir -p debian/lib64ffi-dev/usr/include/$(biarch_gnu_type)$(abi64)
+ mv debian/libffi-dev/usr/include/$(biarch_gnu_type)$(abi64) \
debian/lib64ffi-dev/usr/include/
endif
ifneq (,$(filter biarchn32, $(multiarch)))
- mkdir -p debian/lib32nffi-dev/usr/include/$(biarch_gnu_type)
- mv debian/libffi-dev/usr/include/$(biarch_gnu_type) \
+ mkdir -p debian/libn32ffi-dev/usr/include/$(biarch_gnu_type)$(abin32)
+ mv debian/libffi-dev/usr/include/$(biarch_gnu_type)$(abin32) \
debian/libn32ffi-dev/usr/include/
endif
Reply to: