Hi!

Just for posterity.

On 2019-04-20T23:22:31+0200, Iain Buclaw <ibuc...@gdcproject.org> wrote:
> On Sat, 20 Apr 2019 at 22:30, Thomas Schwinge <tho...@codesourcery.com> wrote:
>> On Tue, 18 Sep 2018 02:39:46 +0200, Iain Buclaw <ibuc...@gdcproject.org> 
>> wrote:
>> > This patch adds the configure and make files used for building D
>> > runtime and Phobos.  As well as running all unittests and the
>> > testsuite.
>>
>> With a x86_64-pc-linux-gnu build, I've noticed breakage in '-m32'
>> multilib testing, made apparent by message: "[...]:
>> /lib/i386-linux-gnu/libgcc_s.so.1: version `GCC_7.0.0' not found
>> (required by [...])".  (That is, the system 'libgcc_s.so.1' being
>> dynamically linked instead of the just built one.)  This is because of
>> incomplete 'gccdir' setup in the '*.exp' file.  In such a multilibbed
>> configuration, there are 'build-gcc/gcc/libgcc.*' and
>> 'build-gcc/gcc/32/libgcc.*' (for example); for '-m32' multilib testing,
>> paths need to be set up to point to the latter instead of the former.  It
>> seems as if some of this '*.exp' stuff has been copied from libffi (?);
>> the attached patch copies the missing pieces from there, too.  I've been
>> tempted to commit this "as obvious", but then thought I'll still get some
>> review/approval first.  If approving this patch, please respond with
>> "Reviewed-by: NAME <EMAIL>" so that your effort will be recorded in the
>> commit log, see <https://gcc.gnu.org/wiki/Reviewed-by>.
>
> Seems reasonable to me.

I didn't get this committed promptly -- and in the mean time (what's half
a year, eh?), Bernd addressed the same issue:
<http://mid.mail-archive.com/AM6PR10MB2566B6AD3CAA9BEF6CA99C9DE4B90@AM6PR10MB2566.EURPRD10.PROD.OUTLOOK.COM>.

There remain a few incremental changes from his committed to my
originally proposed version (see attached), but I'm not committing that
now, as it's not affecting test results, and refactoring all the '*.exp'
files, unifying what has been copied from elsewhere, is a (big) task for
another day (weeks...).


Grüße
 Thomas


From 0bd05a08a98a95d56b4b469dd6e68d485e70ab69 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tschw...@mentor.com>
Date: Fri, 4 Oct 2019 13:06:08 +0200
Subject: [PATCH] Fix libphobos testsuite libgcc multilib search path
 (remaining pieces)

Changes similar to my original ones have already been committed in r275332.
---
 libphobos/testsuite/lib/libphobos.exp | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/libphobos/testsuite/lib/libphobos.exp b/libphobos/testsuite/lib/libphobos.exp
index 056e8f1d444..866090656c6 100644
--- a/libphobos/testsuite/lib/libphobos.exp
+++ b/libphobos/testsuite/lib/libphobos.exp
@@ -106,6 +106,15 @@ proc libphobos_init { args } {
     global gluefile wrap_flags
     global ld_library_path
     global DEFAULT_DFLAGS
+    global GCC_UNDER_TEST
+
+    if ![info exists GCC_UNDER_TEST] then {
+	if [info exists TOOL_EXECUTABLE] {
+	    set GCC_UNDER_TEST $TOOL_EXECUTABLE
+	} else {
+	    set GCC_UNDER_TEST "[find_gcc]"
+	}
+    }
 
     # If a testcase doesn't have special options, use these.
     if ![info exists DEFAULT_DFLAGS] then {
@@ -153,13 +162,14 @@ proc libphobos_init { args } {
 	set exeext $env(EXEEXT)
     }
 
-    # Compute what needs to be added to the existing LD_LIBRARY_PATH.
+    # Compute what needs to be put into LD_LIBRARY_PATH
     set ld_library_path "."
 
+    # Locate libgcc.a so we don't need to account for different values of
+    # SHLIB_EXT on different platforms
     set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
     if {$gccdir != ""} {
 	set gccdir [file dirname $gccdir]
-	append ld_library_path ":${gccdir}"
     }
 
     if { [file exists "${blddir}/libdruntime/.libs/libgdruntime.${shlib_ext}"] } {
@@ -172,7 +182,12 @@ proc libphobos_init { args } {
 
     # Compute what needs to be added to the existing LD_LIBRARY_PATH.
     if {$gccdir != ""} {
-	set compiler ${gccdir}/gdc
+	# Add AIX pthread directory first.
+	if { [llength [glob -nocomplain ${gccdir}/pthread/libgcc_s*.a]] >= 1 } {
+	    append ld_library_path ":${gccdir}/pthread"
+	}
+	append ld_library_path ":${gccdir}"
+	set compiler [lindex $GCC_UNDER_TEST 0]
 
 	if { [is_remote host] == 0 && [which $compiler] != 0 } {
 	  foreach i "[exec $compiler --print-multi-lib]" {
-- 
2.17.1

Attachment: signature.asc
Description: PGP signature

Reply via email to