[gcc(refs/vendors/ARM/heads/arm-struct-reorg-wip)] libffi/test: Fix compilation for build sysroot

Tamar Christina tnfchris@gcc.gnu.org
Fri Jul 17 14:45:23 GMT 2020


https://gcc.gnu.org/g:a0b48358cb1e70e161a87ec5deb7a4b25defba6b

commit a0b48358cb1e70e161a87ec5deb7a4b25defba6b
Author: Maciej W. Rozycki <macro@wdc.com>
Date:   Sat Apr 25 21:27:14 2020 +0100

    libffi/test: Fix compilation for build sysroot
    
    Fix a problem with the libffi testsuite using a method to determine the
    compiler to use resulting in the tool being different from one the
    library has been built with, and causing a catastrophic failure from the
    inability to actually choose any compiler at all in a cross-compilation
    configuration.
    
    Address this problem by providing a DejaGNU configuration file defining
    the compiler to use, via the CC_FOR_TARGET TCL variable, set from $CC by
    autoconf, which will have all the required options set for the target
    compiler to build executables in the environment configured, removing
    failures like:
    
    FAIL: libffi.call/closure_fn0.c -W -Wall -Wno-psabi -O0 (test for excess errors)
    Excess errors:
    default_target_compile: No compiler to compile with
    UNRESOLVED: libffi.call/closure_fn0.c -W -Wall -Wno-psabi -O0 compilation failed to produce executable
    
    and bringing overall test results for the `riscv64-linux-gnu' target
    (here with the `x86_64-linux-gnu' host and RISC-V QEMU in the Linux user
    emulation mode as the target board) from:
    
                    === libffi Summary ===
    
    # of unexpected failures        708
    # of unresolved testcases       708
    # of unsupported tests          30
    
    to:
    
                    === libffi Summary ===
    
    # of expected passes            1934
    # of unsupported tests          28
    
    This is a combined backport of the relevant parts of upstream libffi
    changes as follows:
    
    - commit 8308984e479e ("[PATCH] Make sure we're running dejagnu tests
      with the right compiler."),
    
    - commit 2d9b3939751b ("[PATCH] Fix for closures with sunpro compiler"),
    
    - commit 0c3824702d3d ("[PATCH] Always set CC_FOR_TARGET for dejagnu, to
      make the testsuite respect $CC"),
    
    - commit 7d698125b1f0 ("[PATCH] Use the proper C++ compiler to run C++
      tests"),
    
    - commit 6b6df1a7bb37 ("[PATCH] Adds `local.exp` to CLEANFILES"),
    
    - commit 6cf0dea78a5a ("[PATCH] Change CLEANFILES to DISTCLEANFILES")
    
            libffi/
            * Makefile.am (DISTCLEANFILES): New variable.
            * configure.ac: Produce `local.exp'.
            * Makefile.in: Regenerate.
            * configure: Regenerate.
            * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): New
            variable.
            * testsuite/Makefile.in: Regenerate.

Diff:
---
 libffi/ChangeLog             | 10 ++++++++++
 libffi/Makefile.am           |  3 +++
 libffi/Makefile.in           |  4 ++++
 libffi/configure             |  5 +++++
 libffi/configure.ac          |  5 +++++
 libffi/testsuite/Makefile.am |  2 ++
 libffi/testsuite/Makefile.in |  1 +
 7 files changed, 30 insertions(+)

diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 47648d31abd..7ad4b70eb00 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,13 @@
+2020-04-25  Maciej W. Rozycki  <macro@wdc.com>
+
+	* Makefile.am (DISTCLEANFILES): New variable.
+	* configure.ac: Produce `local.exp'.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+	* testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): New
+	variable.
+	* testsuite/Makefile.in: Regenerate.
+
 2020-01-24  Maciej W. Rozycki  <macro@wdc.com>
 
 	* configure.ac: Handle `--with-toolexeclibdir='.
diff --git a/libffi/Makefile.am b/libffi/Makefile.am
index 86e22496152..203b7d10a42 100644
--- a/libffi/Makefile.am
+++ b/libffi/Makefile.am
@@ -15,6 +15,9 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj			\
 	libffi.xcodeproj/project.pbxproj				\
 	libtool-ldflags
 
+# local.exp is generated by configure
+DISTCLEANFILES = local.exp
+
 # Automake Documentation:
 # If your package has Texinfo files in many directories, you can use the
 # variable TEXINFO_TEX to tell Automake where to find the canonical
diff --git a/libffi/Makefile.in b/libffi/Makefile.in
index f7786ff3fd1..745bdd80777 100644
--- a/libffi/Makefile.in
+++ b/libffi/Makefile.in
@@ -454,6 +454,9 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj			\
 	libtool-ldflags
 
 
+# local.exp is generated by configure
+DISTCLEANFILES = local.exp
+
 # Automake Documentation:
 # If your package has Texinfo files in many directories, you can use the
 # variable TEXINFO_TEX to tell Automake where to find the canonical
@@ -1674,6 +1677,7 @@ distclean-generic:
 	-rm -f src/x86/$(am__dirstamp)
 	-rm -f src/xtensa/$(DEPDIR)/$(am__dirstamp)
 	-rm -f src/xtensa/$(am__dirstamp)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
diff --git a/libffi/configure b/libffi/configure
index ca0a2965c7a..f0051505d10 100755
--- a/libffi/configure
+++ b/libffi/configure
@@ -14961,6 +14961,11 @@ _ACEOF
 
 
 
+cat > local.exp <<EOF
+set CC_FOR_TARGET "$CC"
+set CXX_FOR_TARGET "$CXX"
+EOF
+
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
diff --git a/libffi/configure.ac b/libffi/configure.ac
index 93e655803e7..0bf4af410d3 100644
--- a/libffi/configure.ac
+++ b/libffi/configure.ac
@@ -61,6 +61,11 @@ AC_PROG_LIBTOOL
 # Test for 64-bit build.
 AC_CHECK_SIZEOF([size_t])
 
+cat > local.exp <<EOF
+set CC_FOR_TARGET "$CC"
+set CXX_FOR_TARGET "$CXX"
+EOF
+
 AM_MAINTAINER_MODE
 
 AC_CHECK_HEADERS(sys/mman.h)
diff --git a/libffi/testsuite/Makefile.am b/libffi/testsuite/Makefile.am
index 209e8976635..88509fc35d6 100644
--- a/libffi/testsuite/Makefile.am
+++ b/libffi/testsuite/Makefile.am
@@ -13,6 +13,8 @@ RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
 
 AM_RUNTESTFLAGS =
 
+EXTRA_DEJAGNU_SITE_CONFIG=../local.exp
+
 CLEANFILES = *.exe core* *.log *.sum
 
 EXTRA_DIST = config/default.exp libffi.call/cls_19byte.c		\
diff --git a/libffi/testsuite/Makefile.in b/libffi/testsuite/Makefile.in
index 31e9cf520b8..8b574dad5d7 100644
--- a/libffi/testsuite/Makefile.in
+++ b/libffi/testsuite/Makefile.in
@@ -279,6 +279,7 @@ RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
 	       echo $(top_srcdir)/../dejagnu/runtest ; \
 	    else echo runtest; fi`
 
+EXTRA_DEJAGNU_SITE_CONFIG = ../local.exp
 CLEANFILES = *.exe core* *.log *.sum
 EXTRA_DIST = config/default.exp libffi.call/cls_19byte.c		\
 libffi.call/cls_align_longdouble_split.c				\


More information about the Gcc-cvs mailing list