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 <ubiz...@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.
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++" } #