summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2021-03-24 23:19:54 +0000
committerGitHub <noreply@github.com>2021-03-24 19:19:54 -0400
commit58dfdf6a84b98296ceb2b8b4237d37aa75bb2cd4 (patch)
treefc944076bdfa1ba515ab9c5dca2ba86133a146e8
parenteafab2356e8dcf5f01d2bcfa311cafba3b395a7e (diff)
downloadlibffi-58dfdf6a84b98296ceb2b8b4237d37aa75bb2cd4.tar.gz
testsuite: fix compiler vendor detection on dash as /bin/sh (#594)
In https://bugs.gentoo.org/753299 Paolo Pedroni reported a single test failure out of all libffi. Here is the minimal reproducer: ``` $ ./autogen $ CONFIG_SHELL=/bin/dash ./configure --host=x86_64-pc-linux-gnu $ make check RUNTESTFLAGS='complex.exp' ... FAIL: libffi.complex/cls_align_complex_float.c (test for excess errors) ``` This happens because under 'dash' shell autoconf generates slightly different style of string quotation in `config.log`: - on bash: `ax_cv_c_compiler_vendor=gnu` - on dash: `ax_cv_c_compiler_vendor='gnu'` To avoid shell quotation parsing the change just embeds `compiler_vendor` into `local.exp` at configure time. Reported-by: Paolo Pedroni Bug: https://bugs.gentoo.org/753299 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r--configure.ac1
-rw-r--r--testsuite/lib/libffi.exp3
2 files changed, 1 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index 0f141f4..a9b7bf6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -59,6 +59,7 @@ fi
cat > local.exp <<EOF
set CC_FOR_TARGET "$CC"
set CXX_FOR_TARGET "$CXX"
+set compiler_vendor "$ax_cv_c_compiler_vendor"
EOF
AM_MAINTAINER_MODE
diff --git a/testsuite/lib/libffi.exp b/testsuite/lib/libffi.exp
index d3c17db..4f4dd48 100644
--- a/testsuite/lib/libffi.exp
+++ b/testsuite/lib/libffi.exp
@@ -292,9 +292,6 @@ proc libffi-init { args } {
verbose "libffi $blddirffi"
# Which compiler are we building with?
- set tmp [grep "$blddirffi/config.log" "^ax_cv_c_compiler_vendor.*$"]
- regexp -- {^[^=]*=(.*)$} $tmp nil compiler_vendor
-
if { [string match $compiler_vendor "gnu"] } {
set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
if {$gccdir != ""} {