| From 31b6b6bc14197cd4183bdbd311fddeb36b5ae100 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> |
| Date: Sat, 19 Sep 2015 22:53:29 +0200 |
| Subject: [PATCH] Fix use of compact eh frames on MIPS |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| 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. |
| |
| Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> |
| [unfuzz for 3.2.1] |
| Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> |
| [rebased for 3.4.6] |
| Signed-off-by: Bernd Kuhls <bernd@kuhls.net> |
| --- |
| configure.ac | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| diff --git a/configure.ac b/configure.ac |
| index a7bf5ee..36cd0d4 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -238,6 +238,16 @@ esac |
| 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 the C compiler needs -mno-compact-eh]) |
| + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], |
| + [AC_MSG_RESULT([yes])]; [save_CFLAGS="$save_CFLAGS -mno-compact-eh"], |
| + [AC_MSG_RESULT([no])]) |
| + CFLAGS="$save_CFLAGS" |
| +fi |
| + |
| if test x$TARGET = xX86_64; then |
| AC_CACHE_CHECK([toolchain supports unwind section type], |
| libffi_cv_as_x86_64_unwind_section_type, [ |
| -- |
| 2.5.3 |
| |