forked from Lainports/opnsense-ports
112 lines
3.4 KiB
Text
112 lines
3.4 KiB
Text
# Clang doesn't like the -Wno-psabi argument that we want to pass to GCC.
|
|
# Since clang is detected as GCC via __GNUC__, use ax_cv_c_compiler_vendor.
|
|
# https://github.com/atgreen/libffi/commit/b5ade2fb5d9ba06519484677a5474e5dad48c2e3
|
|
|
|
diff --git a/testsuite/lib/libffi.exp b/testsuite/lib/libffi.exp
|
|
index 5051d31..0e92bb0 100644
|
|
--- testsuite/lib/libffi.exp
|
|
+++ testsuite/lib/libffi.exp
|
|
@@ -100,46 +100,39 @@ proc libffi-init { args } {
|
|
global libffi_link_flags
|
|
global tool_root_dir
|
|
global ld_library_path
|
|
-
|
|
- global using_gcc
|
|
+ global compiler_vendor
|
|
|
|
set blddirffi [pwd]/..
|
|
verbose "libffi $blddirffi"
|
|
|
|
- # Are we building with GCC?
|
|
- set tmp [grep ../config.status "GCC='yes'"]
|
|
- if { [string match $tmp "GCC='yes'"] } {
|
|
-
|
|
- set using_gcc "yes"
|
|
+ # Which compiler are we building with?
|
|
+ set tmp [grep ../config.log "^ax_cv_c_compiler_vendor.*$"]
|
|
+ regexp -- {^[^=]*=(.*)$} $tmp nil compiler_vendor
|
|
|
|
- set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
|
|
- if {$gccdir != ""} {
|
|
- set gccdir [file dirname $gccdir]
|
|
- }
|
|
- verbose "gccdir $gccdir"
|
|
-
|
|
- set ld_library_path "."
|
|
- append ld_library_path ":${gccdir}"
|
|
-
|
|
- set compiler "${gccdir}/xgcc"
|
|
- if { [is_remote host] == 0 && [which $compiler] != 0 } {
|
|
- foreach i "[exec $compiler --print-multi-lib]" {
|
|
- set mldir ""
|
|
- regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir
|
|
- set mldir [string trimright $mldir "\;@"]
|
|
- if { "$mldir" == "." } {
|
|
- continue
|
|
- }
|
|
- if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
|
|
- append ld_library_path ":${gccdir}/${mldir}"
|
|
+ if { [string match $compiler_vendor "gnu"] } {
|
|
+ set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
|
|
+ if {$gccdir != ""} {
|
|
+ set gccdir [file dirname $gccdir]
|
|
+ }
|
|
+ verbose "gccdir $gccdir"
|
|
+
|
|
+ set ld_library_path "."
|
|
+ append ld_library_path ":${gccdir}"
|
|
+
|
|
+ set compiler "${gccdir}/xgcc"
|
|
+ if { [is_remote host] == 0 && [which $compiler] != 0 } {
|
|
+ foreach i "[exec $compiler --print-multi-lib]" {
|
|
+ set mldir ""
|
|
+ regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir
|
|
+ set mldir [string trimright $mldir "\;@"]
|
|
+ if { "$mldir" == "." } {
|
|
+ continue
|
|
+ }
|
|
+ if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
|
|
+ append ld_library_path ":${gccdir}/${mldir}"
|
|
+ }
|
|
}
|
|
- }
|
|
- }
|
|
-
|
|
- } else {
|
|
-
|
|
- set using_gcc "no"
|
|
-
|
|
+ }
|
|
}
|
|
|
|
# add the library path for libffi.
|
|
@@ -278,18 +271,25 @@ proc libffi-dg-runtest { testcases default-extra-flags } {
|
|
}
|
|
|
|
proc run-many-tests { testcases extra_flags } {
|
|
- global using_gcc
|
|
- if { [string match $using_gcc "yes"] } {
|
|
+ global compiler_vendor
|
|
+ switch $compiler_vendor {
|
|
+ "clang" {
|
|
+ set common "-W -Wall"
|
|
+ set optimizations { "-O0" "-O1" "-O2" "-O3" "-Os" }
|
|
+ }
|
|
+ "gnu" {
|
|
set common "-W -Wall -Wno-psabi"
|
|
set optimizations { "-O0" "-O2" "-O3" "-Os" "-O2 -fomit-frame-pointer" }
|
|
- } else {
|
|
+ }
|
|
+ default {
|
|
# Assume we are using the vendor compiler.
|
|
set common ""
|
|
set optimizations { "" }
|
|
+ }
|
|
}
|
|
|
|
set targetabis { "" }
|
|
- if [string match $using_gcc "yes"] {
|
|
+ if [string match $compiler_vendor "gnu"] {
|
|
if [istarget "i?86-*-*"] {
|
|
set targetabis {
|
|
""
|