libffi: Integrate testsuite with GCC testsuite
* testsuite/lib/libffi.exp (load_gcc_lib): Load library from GCC testsuite. Load target-supports.exp and target-supports-dg.exp. (libffi-init): Use libraries in GCC build tree. (libffi_target_compile): Link with -shared-libgcc -lstdc++ for C++ sources.
This commit is contained in:
parent
5be7b66998
commit
4824ed41ba
1 changed files with 15 additions and 9 deletions
|
@ -15,12 +15,15 @@
|
|||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
proc load_gcc_lib { filename } {
|
||||
global srcdir
|
||||
load_file $srcdir/lib/$filename
|
||||
global srcdir loaded_libs
|
||||
load_file $srcdir/../../gcc/testsuite/lib/$filename
|
||||
set loaded_libs($filename) ""
|
||||
}
|
||||
|
||||
load_lib dg.exp
|
||||
load_lib libgloss.exp
|
||||
load_gcc_lib target-supports.exp
|
||||
load_gcc_lib target-supports-dg.exp
|
||||
load_gcc_lib target-libpath.exp
|
||||
load_gcc_lib wrapper.exp
|
||||
|
||||
|
@ -277,6 +280,7 @@ proc libffi-init { args } {
|
|||
global srcdir
|
||||
global blddirffi
|
||||
global objdir
|
||||
global blddircxx
|
||||
global TOOL_OPTIONS
|
||||
global tool
|
||||
global libffi_include
|
||||
|
@ -285,13 +289,13 @@ proc libffi-init { args } {
|
|||
global ld_library_path
|
||||
global compiler_vendor
|
||||
|
||||
if ![info exists blddirffi] {
|
||||
set blddirffi [pwd]/..
|
||||
}
|
||||
|
||||
set blddirffi [lookfor_file [get_multilibs] libffi]
|
||||
verbose "libffi $blddirffi"
|
||||
set blddircxx [lookfor_file [get_multilibs] libstdc++-v3]
|
||||
verbose "libstdc++ $blddircxx"
|
||||
|
||||
set compiler_vendor "gnu"
|
||||
|
||||
# Which compiler are we building with?
|
||||
if { [string match $compiler_vendor "gnu"] } {
|
||||
set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
|
||||
if {$gccdir != ""} {
|
||||
|
@ -320,6 +324,8 @@ proc libffi-init { args } {
|
|||
|
||||
# add the library path for libffi.
|
||||
append ld_library_path ":${blddirffi}/.libs"
|
||||
# add the library path for libstdc++ as well.
|
||||
append ld_library_path ":${blddircxx}/src/.libs"
|
||||
|
||||
verbose "ld_library_path: $ld_library_path"
|
||||
|
||||
|
@ -332,6 +338,7 @@ proc libffi-init { args } {
|
|||
if { $libffi_dir != "" } {
|
||||
set libffi_dir [file dirname ${libffi_dir}]
|
||||
set libffi_link_flags "-L${libffi_dir}/.libs"
|
||||
lappend libffi_link_flags "-L${blddircxx}/src/.libs"
|
||||
}
|
||||
|
||||
set_ld_library_path_env_vars
|
||||
|
@ -398,9 +405,8 @@ proc libffi_target_compile { source dest type options } {
|
|||
lappend options "libs= -lpthread"
|
||||
}
|
||||
|
||||
# this may be required for g++, but just confused clang.
|
||||
if { [string match "*.cc" $source] } {
|
||||
lappend options "c++"
|
||||
lappend options "ldflags=-shared-libgcc -lstdc++"
|
||||
}
|
||||
|
||||
if { [string match "arc*-*-linux*" $target_triplet] } {
|
||||
|
|
Loading…
Add table
Reference in a new issue