Hi,
I've noticed that testing libphobos fails for multi-lib configs:
$ make check-target-libphobos RUNTESTFLAGS="--target_board=unix\{-m32,\}"
fails for every 32bit execution, because the host libgcc_s.so is used which
is not the correct version:
spawn [open ...]
./test_aa.exe: /lib/i386-linux-gnu/libgcc_s.so.1: version `GCC_7.0.0' not found
(required by ./test_aa.exe)
FAIL: libphobos.aa/test_aa.d execution test
This can be fixed by adding a few lines from
libstdc++/testsuite/lib/libstdc++.exp
to libphobos/testsuite/lib/libphobos.exp, see attached patch.
Bootstrapped and reg-tested on x86_64-pc-linux-gnu.
Is it OK for trunk?
Thanks
Bernd.
2019-09-02 Bernd Edlinger <[email protected]>
* testsuite/lib/libphobos.exp (libphobos_init): Add multi-lib libgcc dirs
to the ld_library_path var.
Index: libphobos/testsuite/lib/libphobos.exp
===================================================================
--- libphobos/testsuite/lib/libphobos.exp (revision 275320)
+++ libphobos/testsuite/lib/libphobos.exp (working copy)
@@ -170,6 +170,25 @@ proc libphobos_init { args } {
append ld_library_path ":${blddir}/src/.libs"
}
+ # Compute what needs to be added to the existing LD_LIBRARY_PATH.
+ if {$gccdir != ""} {
+ set compiler ${gccdir}/gdc
+
+ 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}"
+ }
+ }
+ }
+ }
+
set_ld_library_path_env_vars
libphobos_maybe_build_wrapper "${objdir}/testglue.o"