This updates the build to use the common gcc build infrastructure. Additionally the package is renamed from gcc436 to gcc43 to match tgcwarev2.
91 lines
3.4 KiB
Diff
91 lines
3.4 KiB
Diff
http://gcc.gnu.org/ml/java-patches/2010-q1/msg00058.html
|
|
|
|
diff -up gcc-4.3.6/libffi/configure.ac.unwind gcc-4.3.6/libffi/configure.ac
|
|
--- gcc-4.3.6/libffi/configure.ac.unwind 2010-05-06 19:19:46.000000000 +0200
|
|
+++ gcc-4.3.6/libffi/configure.ac 2012-07-08 22:32:03.657151000 +0200
|
|
@@ -243,6 +243,21 @@ if test x$TARGET = xSPARC; then
|
|
fi
|
|
fi
|
|
|
|
+if test x$TARGET = xX86_64; then
|
|
+ AC_CACHE_CHECK([assembler supports unwind section type],
|
|
+ libffi_cv_as_x86_64_unwind_section_type, [
|
|
+ libffi_cv_as_x86_64_unwind_section_type=yes
|
|
+ echo '.section .eh_frame,"a",@unwind' > conftest.s
|
|
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
|
+ libffi_cv_as_x86_64_unwind_section_type=no
|
|
+ fi
|
|
+ ])
|
|
+ if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
|
+ AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
|
|
+ [Define if your assembler supports unwind section type.])
|
|
+ fi
|
|
+fi
|
|
+
|
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
|
libffi_cv_ro_eh_frame, [
|
|
libffi_cv_ro_eh_frame=no
|
|
diff -up gcc-4.3.6/libffi/configure.unwind gcc-4.3.6/libffi/configure
|
|
--- gcc-4.3.6/libffi/configure.unwind 2011-06-27 13:28:31.000000000 +0200
|
|
+++ gcc-4.3.6/libffi/configure 2012-07-08 22:41:02.689711000 +0200
|
|
@@ -12522,6 +12522,31 @@ _ACEOF
|
|
fi
|
|
fi
|
|
|
|
+if test x$TARGET = xX86_64; then
|
|
+ echo "$as_me:$LINENO: checking assembler supports unwind section type" >&5
|
|
+echo $ECHO_N "checking assembler supports unwind section type... $ECHO_C" >&6
|
|
+if test "${libffi_cv_as_x86_64_unwind_section_type+set}" = set; then
|
|
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
|
+else
|
|
+
|
|
+ libffi_cv_as_x86_64_unwind_section_type=yes
|
|
+ echo '.section .eh_frame,"a",@unwind' > conftest.s
|
|
+ if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
|
+ libffi_cv_as_x86_64_unwind_section_type=no
|
|
+ fi
|
|
+
|
|
+fi
|
|
+echo "$as_me:$LINENO: result: $libffi_cv_as_x86_64_unwind_section_type" >&5
|
|
+echo "${ECHO_T}$libffi_cv_as_x86_64_unwind_section_type" >&6
|
|
+ if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
|
+
|
|
+cat >>confdefs.h <<\_ACEOF
|
|
+#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1
|
|
+_ACEOF
|
|
+
|
|
+ fi
|
|
+fi
|
|
+
|
|
echo "$as_me:$LINENO: checking whether .eh_frame section should be read-only" >&5
|
|
echo $ECHO_N "checking whether .eh_frame section should be read-only... $ECHO_C" >&6
|
|
if test "${libffi_cv_ro_eh_frame+set}" = set; then
|
|
diff -up gcc-4.3.6/libffi/fficonfig.h.in.unwind gcc-4.3.6/libffi/fficonfig.h.in
|
|
--- gcc-4.3.6/libffi/fficonfig.h.in.unwind 2011-06-27 13:28:31.000000000 +0200
|
|
+++ gcc-4.3.6/libffi/fficonfig.h.in 2012-07-08 22:40:32.000000000 +0200
|
|
@@ -37,6 +37,9 @@
|
|
*/
|
|
#undef HAVE_AS_SPARC_UA_PCREL
|
|
|
|
+/* Define if your assembler supports unwind section type. */
|
|
+#undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
|
|
+
|
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
#undef HAVE_DLFCN_H
|
|
|
|
diff -up gcc-4.3.6/libffi/src/x86/unix64.S.unwind gcc-4.3.6/libffi/src/x86/unix64.S
|
|
--- gcc-4.3.6/libffi/src/x86/unix64.S.unwind 2005-05-05 06:06:38.000000000 +0200
|
|
+++ gcc-4.3.6/libffi/src/x86/unix64.S 2012-07-08 22:33:05.996220000 +0200
|
|
@@ -326,7 +326,11 @@ ffi_closure_unix64:
|
|
.LUW9:
|
|
.size ffi_closure_unix64,.-ffi_closure_unix64
|
|
|
|
+#ifdef HAVE_AS_X86_64_UNWIND_SECTION_TYPE
|
|
+ .section .eh_frame,"a",@unwind
|
|
+#else
|
|
.section .eh_frame,"a",@progbits
|
|
+#endif
|
|
.Lframe1:
|
|
.long .LECIE1-.LSCIE1 /* CIE Length */
|
|
.LSCIE1:
|