diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2021-03-24 23:19:54 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-24 19:19:54 -0400 |
commit | 58dfdf6a84b98296ceb2b8b4237d37aa75bb2cd4 (patch) | |
tree | fc944076bdfa1ba515ab9c5dca2ba86133a146e8 | |
parent | eafab2356e8dcf5f01d2bcfa311cafba3b395a7e (diff) | |
download | libffi-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.ac | 1 | ||||
-rw-r--r-- | testsuite/lib/libffi.exp | 3 |
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 != ""} { |