| https://bugs.gentoo.org/417179 |
| https://github.com/atgreen/libffi/issues/21 |
| |
| From bff052d9cd5be41ba9e47c76114054af487d3c30 Mon Sep 17 00:00:00 2001 |
| From: Anthony Green <green@moxielogic.com> |
| Date: Fri, 11 Jan 2013 10:24:32 -0500 |
| Subject: [PATCH] 32-bit x86 fix and more |
| |
| --- |
| ChangeLog | 8 ++++++++ |
| README | 2 ++ |
| configure | 43 +++++-------------------------------------- |
| configure.ac | 6 +++--- |
| m4/ax_cc_maxopt.m4 | 3 ++- |
| 5 files changed, 20 insertions(+), 42 deletions(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index 5ca32fd..32ec7c5 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -334,10 +334,10 @@ fi |
| if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then |
| AC_CACHE_CHECK([assembler supports pc related relocs], |
| libffi_cv_as_x86_pcrel, [ |
| - libffi_cv_as_x86_pcrel=yes |
| + libffi_cv_as_x86_pcrel=no |
| echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s |
| - if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then |
| - libffi_cv_as_x86_pcrel=no |
| + if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then |
| + libffi_cv_as_x86_pcrel=yes |
| fi |
| ]) |
| if test "x$libffi_cv_as_x86_pcrel" = xyes; then |
| diff --git a/m4/ax_cc_maxopt.m4 b/m4/ax_cc_maxopt.m4 |
| index f5f7517..62e3b53 100644 |
| --- a/m4/ax_cc_maxopt.m4 |
| +++ b/m4/ax_cc_maxopt.m4 |
| @@ -141,7 +141,8 @@ if test "$ac_test_CFLAGS" != "set"; then |
| CFLAGS="-O3 -fomit-frame-pointer" |
| |
| # -malign-double for x86 systems |
| - AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") |
| + # LIBFFI -- DON'T DO THIS - CHANGES ABI |
| + # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") |
| |
| # -fstrict-aliasing for gcc-2.95+ |
| AX_CHECK_COMPILE_FLAG(-fstrict-aliasing, |
| diff --git a/configure b/configure |
| index 95d950b..41bde69 100755 |
| --- a/configure |
| +++ b/configure |
| @@ -12426,41 +12426,8 @@ $as_echo "$icc_archflag" >&6; } |
| CFLAGS="-O3 -fomit-frame-pointer" |
| |
| # -malign-double for x86 systems |
| - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 |
| -$as_echo_n "checking whether C compiler accepts -malign-double... " >&6; } |
| -if ${ax_cv_check_cflags___malign_double+:} false; then : |
| - $as_echo_n "(cached) " >&6 |
| -else |
| - |
| - ax_check_save_flags=$CFLAGS |
| - CFLAGS="$CFLAGS -malign-double" |
| - cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| -/* end confdefs.h. */ |
| - |
| -int |
| -main () |
| -{ |
| - |
| - ; |
| - return 0; |
| -} |
| -_ACEOF |
| -if ac_fn_c_try_compile "$LINENO"; then : |
| - ax_cv_check_cflags___malign_double=yes |
| -else |
| - ax_cv_check_cflags___malign_double=no |
| -fi |
| -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| - CFLAGS=$ax_check_save_flags |
| -fi |
| -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___malign_double" >&5 |
| -$as_echo "$ax_cv_check_cflags___malign_double" >&6; } |
| -if test x"$ax_cv_check_cflags___malign_double" = xyes; then : |
| - CFLAGS="$CFLAGS -malign-double" |
| -else |
| - : |
| -fi |
| - |
| + # LIBFFI -- DON'T DO THIS - CHANGES ABI |
| + # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") |
| |
| # -fstrict-aliasing for gcc-2.95+ |
| { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5 |
| @@ -14480,10 +14447,10 @@ if ${libffi_cv_as_x86_pcrel+:} false; then : |
| $as_echo_n "(cached) " >&6 |
| else |
| |
| - libffi_cv_as_x86_pcrel=yes |
| + libffi_cv_as_x86_pcrel=no |
| echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s |
| - if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then |
| - libffi_cv_as_x86_pcrel=no |
| + if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then |
| + libffi_cv_as_x86_pcrel=yes |
| fi |
| |
| fi |
| -- |
| 1.7.10 |
| |