[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#425011: gcc-4.1: FTBFS on m68k and arm, multiple definitions of ffi_prep_closure



On Fri, May 18, 2007 at 06:01:03PM +0200, Aurelien Jarno wrote:
> Matthias Klose a écrit :
> > Peter Green writes:
> >> package:gcc-4.1
> >> version:4.1.2-7
> >> severity:serious
> >>
> >> from the relavent buildd logs:
> > 
> > Note, that the severity is not RC for 68k; I do not intend to fix
> > that.  Same for arm, and arm porters don't seem to care that much, so
> > maybe we should drop arm as a release architecture?
> > 
> > 
> You can find a preliminary patch here:
> 
> http://temp.aurel32.net/libffi-arm-closure.diff
> 
> With it gcc-4.1 builds well, I am restarting a full build with the testsuite
> 

The patch is correct, at least the testsuite shows the exact same
results, though not very good.

Please find attached a patch against the current debian package.

Bye,
Aurelien

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net
diff -u gcc-4.1-4.1.2/debian/patches/libjava-backport-updates2.dpatch gcc-4.1-4.1.2/debian/patches/libjava-backport-updates2.dpatch
--- gcc-4.1-4.1.2/debian/patches/libjava-backport-updates2.dpatch
+++ gcc-4.1-4.1.2/debian/patches/libjava-backport-updates2.dpatch
@@ -32564,0 +32565,27 @@
+Index: libffi/src/arm/ffi.c
+===================================================================
+--- libffi/src/arm/ffi.c	2007-05-18 17:49:21.000000000 +0200
++++ libffi/src/arm/ffi.c	2007-05-18 17:51:59.000000000 +0200
+@@ -269,16 +269,17 @@
+ /* the cif must already be prep'ed */
+ 
+ ffi_status
+-ffi_prep_closure (ffi_closure* closure,
+-		  ffi_cif* cif,
+-		  void (*fun)(ffi_cif*,void*,void**,void*),
+-		  void *user_data)
++ffi_prep_closure_loc (ffi_closure* closure,
++		      ffi_cif* cif,
++		      void (*fun)(ffi_cif*,void*,void**,void*),
++		      void *user_data,
++		      void *codeloc)
+ {
+   FFI_ASSERT (cif->abi == FFI_SYSV);
+ 
+   FFI_INIT_TRAMPOLINE (&closure->tramp[0], \
+ 		       &ffi_closure_SYSV,  \
+-		       (void*)closure);
++		       codeloc);
+     
+   closure->cif  = cif;
+   closure->user_data = user_data;

Reply to: