Message ID | 1375967074-17438-1-git-send-email-jezz@sysmic.org |
---|---|
State | Superseded |
Headers | show |
Hi Jérôme, On Thu, Aug 8, 2013 at 3:04 PM, Jérôme Pouiller <jezz@sysmic.org> wrote: > Fix compilation on Mips. Resolve issues detected here: > http://autobuild.buildroot.net/results/f0c9db496233f53c26e92294d7305aa4511ec7b3/ > http://autobuild.buildroot.net/results/8968690c248df86b040218867f92b573721e872c/ > http://autobuild.buildroot.net/results/a35db8e6a49d022133b486b12f6a8e40b3c95b6e/ > > Also remove previous special case handling defined in libffi.mk. > > Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> > --- > ...-002-Fix-use-of-compact-eh-frames-on-MIPS.patch | 25 ++++++++++++++++++++ > package/libffi/libffi.mk | 6 ----- > 2 files changed, 25 insertions(+), 6 deletions(-) > create mode 100644 package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch > > diff --git a/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch b/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch > new file mode 100644 > index 0000000..027e3d3 > --- /dev/null > +++ b/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch > @@ -0,0 +1,25 @@ > +Newer MIPS toolchains use a different (compact) eh_frame format. > +libffi don't like them, so we have to switch to the older format. > + > +This patch add -mno-compact-eh to CFLAGS when compiling for > +Mips and compiler support it. > + > +--- a/configure.ac 2013-08-08 14:53:11.884267155 +0200 > ++++ b/configure.ac 2013-08-08 14:54:14.437493244 +0200 > +@@ -430,6 +430,16 @@ > + AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1) > + AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE) > + > ++if test x$TARGET = xMIPS; then > ++ save_CFLAGS="$CFLAGS" > ++ CFLAGS=-mno-compact-eh > ++ AC_MSG_CHECKING([whether CC need -mno-compact-eh]) > ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], > ++ [AC_MSG_RESULT([yes])]; [AM_CFLAGS="-mno-compact-eh"], > ++ [AC_MSG_RESULT([no])]) > ++ CFLAGS="$save_CFLAGS" > ++fi > ++ > + if test x$TARGET = xX86_64; then > + AC_CACHE_CHECK([assembler supports unwind section type], > + libffi_cv_as_x86_64_unwind_section_type, [ > diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk > index 51cbbce..0ad5c84 100644 > --- a/package/libffi/libffi.mk > +++ b/package/libffi/libffi.mk > @@ -11,12 +11,6 @@ LIBFFI_LICENSE_FILES = LICENSE > LIBFFI_INSTALL_STAGING = YES > LIBFFI_AUTORECONF = YES > > -# Newer CS MIPS toolchains use a different (compact) eh_frame format > -# libffi don't like them, just switch to the older format > -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209)$(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203),y) > -LIBFFI_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh" > -endif > - > # Move the headers to the usual location, and adjust the .pc file > # accordingly. > define LIBFFI_MOVE_STAGING_HEADERS I tried this patch on the last autobuild you mentioned above, but it still fails. The patch is applied though. I posted the output at: http://pastebin.com/PpByvCER Could you have a look? Thanks, Thomas
diff --git a/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch b/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch new file mode 100644 index 0000000..027e3d3 --- /dev/null +++ b/package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch @@ -0,0 +1,25 @@ +Newer MIPS toolchains use a different (compact) eh_frame format. +libffi don't like them, so we have to switch to the older format. + +This patch add -mno-compact-eh to CFLAGS when compiling for +Mips and compiler support it. + +--- a/configure.ac 2013-08-08 14:53:11.884267155 +0200 ++++ b/configure.ac 2013-08-08 14:54:14.437493244 +0200 +@@ -430,6 +430,16 @@ + AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1) + AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE) + ++if test x$TARGET = xMIPS; then ++ save_CFLAGS="$CFLAGS" ++ CFLAGS=-mno-compact-eh ++ AC_MSG_CHECKING([whether CC need -mno-compact-eh]) ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], ++ [AC_MSG_RESULT([yes])]; [AM_CFLAGS="-mno-compact-eh"], ++ [AC_MSG_RESULT([no])]) ++ CFLAGS="$save_CFLAGS" ++fi ++ + if test x$TARGET = xX86_64; then + AC_CACHE_CHECK([assembler supports unwind section type], + libffi_cv_as_x86_64_unwind_section_type, [ diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk index 51cbbce..0ad5c84 100644 --- a/package/libffi/libffi.mk +++ b/package/libffi/libffi.mk @@ -11,12 +11,6 @@ LIBFFI_LICENSE_FILES = LICENSE LIBFFI_INSTALL_STAGING = YES LIBFFI_AUTORECONF = YES -# Newer CS MIPS toolchains use a different (compact) eh_frame format -# libffi don't like them, just switch to the older format -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209)$(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203),y) -LIBFFI_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh" -endif - # Move the headers to the usual location, and adjust the .pc file # accordingly. define LIBFFI_MOVE_STAGING_HEADERS
Fix compilation on Mips. Resolve issues detected here: http://autobuild.buildroot.net/results/f0c9db496233f53c26e92294d7305aa4511ec7b3/ http://autobuild.buildroot.net/results/8968690c248df86b040218867f92b573721e872c/ http://autobuild.buildroot.net/results/a35db8e6a49d022133b486b12f6a8e40b3c95b6e/ Also remove previous special case handling defined in libffi.mk. Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> --- ...-002-Fix-use-of-compact-eh-frames-on-MIPS.patch | 25 ++++++++++++++++++++ package/libffi/libffi.mk | 6 ----- 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 package/libffi/libffi-002-Fix-use-of-compact-eh-frames-on-MIPS.patch