Ensure the linker supports @unwind sections in libffi.
This commit is contained in:
@@ -1,8 +1,16 @@
|
|||||||
|
2014-03-14 Anthony Green <green@moxielogic.com>
|
||||||
|
|
||||||
|
* configure, Makefile.in: Rebuilt.
|
||||||
|
|
||||||
2014-03-10 Mike Hommey <mh+mozilla@glandium.org>
|
2014-03-10 Mike Hommey <mh+mozilla@glandium.org>
|
||||||
|
|
||||||
* configure.ac: Allow building for mipsel with Android NDK r8.
|
* configure.ac: Allow building for mipsel with Android NDK r8.
|
||||||
* Makefile.am (AM_MAKEFLAGS): Replace double quotes with single quotes.
|
* Makefile.am (AM_MAKEFLAGS): Replace double quotes with single quotes.
|
||||||
|
|
||||||
|
2014-03-10 Landry Breuil <landry@openbsd.org>
|
||||||
|
|
||||||
|
* configure.ac: Ensure the linker supports @unwind sections in libffi.
|
||||||
|
|
||||||
2014-03-01 Anthony Green <green@moxielogic.com>
|
2014-03-01 Anthony Green <green@moxielogic.com>
|
||||||
|
|
||||||
* Makefile.am (EXTRA_DIST): Replace old scripts with
|
* Makefile.am (EXTRA_DIST): Replace old scripts with
|
||||||
|
|||||||
66
Makefile.in
66
Makefile.in
@@ -646,39 +646,39 @@ info_TEXINFOS = doc/libffi.texi
|
|||||||
# values defined in terms of make variables, as is the case for CC and
|
# values defined in terms of make variables, as is the case for CC and
|
||||||
# friends when we are called from the top level Makefile.
|
# friends when we are called from the top level Makefile.
|
||||||
AM_MAKEFLAGS = \
|
AM_MAKEFLAGS = \
|
||||||
'AR_FLAGS=$(AR_FLAGS)' \
|
"AR_FLAGS=$(AR_FLAGS)" \
|
||||||
'CC_FOR_BUILD=$(CC_FOR_BUILD)' \
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||||
'CFLAGS=$(CFLAGS)' \
|
"CFLAGS=$(CFLAGS)" \
|
||||||
'CXXFLAGS=$(CXXFLAGS)' \
|
"CXXFLAGS=$(CXXFLAGS)" \
|
||||||
'CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)' \
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||||
'CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)' \
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||||
'INSTALL=$(INSTALL)' \
|
"INSTALL=$(INSTALL)" \
|
||||||
'INSTALL_DATA=$(INSTALL_DATA)' \
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||||
'INSTALL_PROGRAM=$(INSTALL_PROGRAM)' \
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||||
'INSTALL_SCRIPT=$(INSTALL_SCRIPT)' \
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||||
'JC1FLAGS=$(JC1FLAGS)' \
|
"JC1FLAGS=$(JC1FLAGS)" \
|
||||||
'LDFLAGS=$(LDFLAGS)' \
|
"LDFLAGS=$(LDFLAGS)" \
|
||||||
'LIBCFLAGS=$(LIBCFLAGS)' \
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
'LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)' \
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||||
'MAKE=$(MAKE)' \
|
"MAKE=$(MAKE)" \
|
||||||
'MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)' \
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||||
'PICFLAG=$(PICFLAG)' \
|
"PICFLAG=$(PICFLAG)" \
|
||||||
'PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)' \
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||||
'RUNTESTFLAGS=$(RUNTESTFLAGS)' \
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||||
'SHELL=$(SHELL)' \
|
"SHELL=$(SHELL)" \
|
||||||
'exec_prefix=$(exec_prefix)' \
|
"exec_prefix=$(exec_prefix)" \
|
||||||
'infodir=$(infodir)' \
|
"infodir=$(infodir)" \
|
||||||
'libdir=$(libdir)' \
|
"libdir=$(libdir)" \
|
||||||
'mandir=$(mandir)' \
|
"mandir=$(mandir)" \
|
||||||
'prefix=$(prefix)' \
|
"prefix=$(prefix)" \
|
||||||
'AR=$(AR)' \
|
"AR=$(AR)" \
|
||||||
'AS=$(AS)' \
|
"AS=$(AS)" \
|
||||||
'CC=$(CC)' \
|
"CC=$(CC)" \
|
||||||
'CXX=$(CXX)' \
|
"CXX=$(CXX)" \
|
||||||
'LD=$(LD)' \
|
"LD=$(LD)" \
|
||||||
'NM=$(NM)' \
|
"NM=$(NM)" \
|
||||||
'RANLIB=$(RANLIB)' \
|
"RANLIB=$(RANLIB)" \
|
||||||
'DESTDIR=$(DESTDIR)'
|
"DESTDIR=$(DESTDIR)"
|
||||||
|
|
||||||
|
|
||||||
# Subdir rules rely on $(FLAGS_TO_PASS)
|
# Subdir rules rely on $(FLAGS_TO_PASS)
|
||||||
|
|||||||
30
configure
vendored
30
configure
vendored
@@ -13584,7 +13584,7 @@ case "$host" in
|
|||||||
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
|
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
|
||||||
TARGET=MIPS; TARGETDIR=mips
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
;;
|
;;
|
||||||
mips*-*-linux* | mips*-*-openbsd*)
|
mips*-*linux* | mips*-*-openbsd*)
|
||||||
# Support 128-bit long double for NewABI.
|
# Support 128-bit long double for NewABI.
|
||||||
HAVE_LONG_DOUBLE='defined(__mips64)'
|
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||||
TARGET=MIPS; TARGETDIR=mips
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
@@ -14884,16 +14884,32 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
if test x$TARGET = xX86_64; then
|
if test x$TARGET = xX86_64; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports unwind section type" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking toolchain supports unwind section type" >&5
|
||||||
$as_echo_n "checking assembler supports unwind section type... " >&6; }
|
$as_echo_n "checking toolchain supports unwind section type... " >&6; }
|
||||||
if ${libffi_cv_as_x86_64_unwind_section_type+:} false; then :
|
if ${libffi_cv_as_x86_64_unwind_section_type+:} false; then :
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
|
|
||||||
libffi_cv_as_x86_64_unwind_section_type=yes
|
cat > conftest1.s << EOF
|
||||||
echo '.section .eh_frame,"a",@unwind' > conftest.s
|
.text
|
||||||
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
.globl foo
|
||||||
libffi_cv_as_x86_64_unwind_section_type=no
|
foo:
|
||||||
|
jmp bar
|
||||||
|
.section .eh_frame,"a",@unwind
|
||||||
|
bar:
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > conftest2.c << EOF
|
||||||
|
extern void foo();
|
||||||
|
int main(){foo();}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=no
|
||||||
|
# we ensure that we can compile _and_ link an assembly file containing an @unwind section
|
||||||
|
# since the compiler can support it and not the linker (ie old binutils)
|
||||||
|
if $CC -Wa,--fatal-warnings $CFLAGS -c conftest1.s > /dev/null 2>&1 && \
|
||||||
|
$CC conftest2.c conftest1.o > /dev/null 2>&1 ; then
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
26
configure.ac
26
configure.ac
@@ -460,12 +460,28 @@ AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
|
|||||||
AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
|
AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
|
||||||
|
|
||||||
if test x$TARGET = xX86_64; then
|
if test x$TARGET = xX86_64; then
|
||||||
AC_CACHE_CHECK([assembler supports unwind section type],
|
AC_CACHE_CHECK([toolchain supports unwind section type],
|
||||||
libffi_cv_as_x86_64_unwind_section_type, [
|
libffi_cv_as_x86_64_unwind_section_type, [
|
||||||
libffi_cv_as_x86_64_unwind_section_type=yes
|
cat > conftest1.s << EOF
|
||||||
echo '.section .eh_frame,"a",@unwind' > conftest.s
|
.text
|
||||||
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
.globl foo
|
||||||
libffi_cv_as_x86_64_unwind_section_type=no
|
foo:
|
||||||
|
jmp bar
|
||||||
|
.section .eh_frame,"a",@unwind
|
||||||
|
bar:
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > conftest2.c << EOF
|
||||||
|
extern void foo();
|
||||||
|
int main(){foo();}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=no
|
||||||
|
# we ensure that we can compile _and_ link an assembly file containing an @unwind section
|
||||||
|
# since the compiler can support it and not the linker (ie old binutils)
|
||||||
|
if $CC -Wa,--fatal-warnings $CFLAGS -c conftest1.s > /dev/null 2>&1 && \
|
||||||
|
$CC conftest2.c conftest1.o > /dev/null 2>&1 ; then
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=yes
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
||||||
|
|||||||
Reference in New Issue
Block a user