diff mbox series

[d/87824] : x86_64-linux multilib issues

Message ID CAFULd4b5evbTvD3mSZuFG00FsoRyTNX4HxXHomuhVWiT5aVvgg@mail.gmail.com
State New
Headers show
Series [d/87824] : x86_64-linux multilib issues | expand

Commit Message

Uros Bizjak March 12, 2019, 5:27 p.m. UTC
Attached patch fixes libstdc++ includes for multilib d testsuite and
fixes runnable/cppa.d testsuite failure with 32bit multilib on
x86_64-linux-gnu.


2019-03-12  Uroš Bizjak  <ubizjak@gmail.com>

    PR d/87824
    * lib/gdc.exp (gdc_include_flags): Find C++ headers by calling
    libstdc++v3/scripts/testsuite_flags.  Filter out unsupported
    -nostdinc++ flag.

Tested on x86_64-linux-gnu {,-m32}.

OK for mainline?

Uros.

Comments

Iain Buclaw March 12, 2019, 6:22 p.m. UTC | #1
On Tue, 12 Mar 2019 at 18:27, Uros Bizjak <ubizjak@gmail.com> wrote:
>
> Attached patch fixes libstdc++ includes for multilib d testsuite and
> fixes runnable/cppa.d testsuite failure with 32bit multilib on
> x86_64-linux-gnu.
>
>
> 2019-03-12  Uroš Bizjak  <ubizjak@gmail.com>
>
>     PR d/87824
>     * lib/gdc.exp (gdc_include_flags): Find C++ headers by calling
>     libstdc++v3/scripts/testsuite_flags.  Filter out unsupported
>     -nostdinc++ flag.
>
> Tested on x86_64-linux-gnu {,-m32}.
>
> OK for mainline?
>

OK, thanks.
Rainer Orth March 12, 2019, 7:56 p.m. UTC | #2
Hi Iain,

> On Tue, 12 Mar 2019 at 18:27, Uros Bizjak <ubizjak@gmail.com> wrote:
>>
>> Attached patch fixes libstdc++ includes for multilib d testsuite and
>> fixes runnable/cppa.d testsuite failure with 32bit multilib on
>> x86_64-linux-gnu.
>>
>>
>> 2019-03-12  Uroš Bizjak  <ubizjak@gmail.com>
>>
>>     PR d/87824
>>     * lib/gdc.exp (gdc_include_flags): Find C++ headers by calling
>>     libstdc++v3/scripts/testsuite_flags.  Filter out unsupported
>>     -nostdinc++ flag.
>>
>> Tested on x86_64-linux-gnu {,-m32}.
>>
>> OK for mainline?
>>
>
> OK, thanks.

I just noticed that the `set target' in gdc_include_flags is now unused
and can be removed.

	Rainer
Iain Buclaw March 13, 2019, 12:09 a.m. UTC | #3
On Tue, 12 Mar 2019 at 20:57, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>
> Hi Iain,
>
> > On Tue, 12 Mar 2019 at 18:27, Uros Bizjak <ubizjak@gmail.com> wrote:
> >>
> >> Attached patch fixes libstdc++ includes for multilib d testsuite and
> >> fixes runnable/cppa.d testsuite failure with 32bit multilib on
> >> x86_64-linux-gnu.
> >>
> >>
> >> 2019-03-12  Uroš Bizjak  <ubizjak@gmail.com>
> >>
> >>     PR d/87824
> >>     * lib/gdc.exp (gdc_include_flags): Find C++ headers by calling
> >>     libstdc++v3/scripts/testsuite_flags.  Filter out unsupported
> >>     -nostdinc++ flag.
> >>
> >> Tested on x86_64-linux-gnu {,-m32}.
> >>
> >> OK for mainline?
> >>
> >
> > OK, thanks.
>
> I just noticed that the `set target' in gdc_include_flags is now unused
> and can be removed.
>

And now that you point it out, I see that gdc_include_flags doesn't
return anything either, and yet the testsuite passes.

I'll ignore whatever chicanery is going on in tcl here, and have fixed up both.
diff mbox series

Patch

Index: lib/gdc.exp
===================================================================
--- lib/gdc.exp	(revision 269617)
+++ lib/gdc.exp	(working copy)
@@ -88,14 +88,13 @@ 
     append flags "-I${srcdir}/../../libphobos/libdruntime "
     append flags "-I${srcdir}/../../libphobos/src "
 
-    # For the tests that mix C++ and D, we should try and handle this better.
-    if { $gccpath != "" } {
-	if [file exists "${gccpath}/libstdc++-v3/include"] {
-	    append flags "-I${gccpath}/libstdc++-v3/include "
-	    append flags "-I${gccpath}/libstdc++-v3/include/$target "
-	}
+    # For the tests that mix C++ and D, need to know where headers are located.
+    set odir [lookfor_file ${gccpath} libstdc++-v3]
+    if { ${odir} != "" } {
+	set cxxflags [exec sh ${odir}/scripts/testsuite_flags --build-includes]
+	set idx [lsearch $cxxflags "-nostdinc++"]
+	append flags [lreplace $cxxflags $idx $idx]
     }
-    append flags "-I${srcdir}/../../libstdc++-v3/libsupc++"
 }
 
 #