This patch fixes two gdc testsuite failures on Solaris: UNRESOLVED: gdc.test/runnable/dhry.d compilation failed to produce executable UNRESOLVED: gdc.test/runnable/dhry.d -shared-libphobos compilation failed to produce executable
gdc.test/runnable/dhry.d:489:16: error: undefined identifier 'dtime' gdc.test/runnable/dhry.d:543:14: error: undefined identifier 'dtime' In line with the existing code, I've added yet another (identical) implementation of dtime. However, to avoid further duplication, it's probably way better to introduce (say) version (Have_Gettimeofday) instead. The other failures is UNRESOLVED: gdc.test/runnable/cppa.d compilation failed to produce executable UNRESOLVED: gdc.test/runnable/cppa.d -g compilation failed to produce executable UNRESOLVED: gdc.test/runnable/cppa.d -g -shared-libphobos compilation failed to produce executable UNRESOLVED: gdc.test/runnable/cppa.d -shared-libphobos compilation failed to produce executable In file included from gdc.test/runnable/extra-files/cppb.cpp:36: /vol/gcc/src/hg/trunk/local/gcc/testsuite/../../libstdc++-v3/libsupc++/exception:37:10: fatal error: bits/c++config.h: No such file or directory compilation terminated. It turns out that one the -I flags added by is wrong for the non-default multilib: $objdir/gcc/testsuite/gdc1/../../gdc -B$objdir/gcc/testsuite/gdc1/../../ gdc.test/runnable/cppa.d -m64 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -I$objdir/i386-pc-solaris2.11/amd64/libphobos/libdruntime -I$srcdir/gcc/testsuite/../../libphobos/libdruntime -I$srcdir/gcc/testsuite/../../libphobos/src -I$objdir/i386-pc-solaris2.11/amd64/libstdc++-v3/include -I$objdir/i386-pc-solaris2.11/amd64/libstdc++-v3/include/amd64 -I$srcdir/gcc/testsuite/../../libstdc++-v3/libsupc++ -I$srcdir/gcc/testsuite/gdc.test/runnable gdc.test/runnable/extra-files/cppb.cpp -B$objdir/i386-pc-solaris2.11/amd64/libphobos/src -L$objdir/i386-pc-solaris2.11/amd64/libphobos/src/.libs -L$objdir/i386-pc-solaris2.11/amd64/libphobos/libdruntime/.libs -L$objdir/i386-pc-solaris2.11/amd64/libstdc++-v3/src/.libs -lm -o ./cppa.exe While bits/c++config.h is in i386-pc-solaris2.11/amd64/libstdc++-v3/include/i386-pc-solaris2.11 gdc searches .../libstdc++-v3/include/amd64 instead which doesn't exist. This needs to be $target_triplet instead, which lets the test PASS for both the default and the 64-bit multilib. The same issue exists with multilib testing on Linux, btw. Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu. Ok for mainline? Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2018-12-12 Rainer Orth <r...@cebitec.uni-bielefeld.de> * gdc.test/runnable/dhry.d [Solaris]: Import core.sys.posix.sys.time. (dtime): Define. * lib/gdc.exp (gdc_include_flags): Declare target_triplet. Remove target. Use $target_triplet in C++ include path.
# HG changeset patch # Parent c9fb71dd0383141099bbe01ff36128303e774f7a Fix gdc testsuite failures on Solaris diff --git a/gcc/testsuite/gdc.test/runnable/dhry.d b/gcc/testsuite/gdc.test/runnable/dhry.d --- a/gcc/testsuite/gdc.test/runnable/dhry.d +++ b/gcc/testsuite/gdc.test/runnable/dhry.d @@ -925,3 +925,19 @@ version (NetBSD) return q; } } + +version (Solaris) +{ + import core.sys.posix.sys.time; + + double dtime() + { + double q; + timeval tv; + + gettimeofday(&tv,null); + q = cast(double)tv.tv_sec + cast(double)tv.tv_usec * 1.0e-6; + + return q; + } +} diff --git a/gcc/testsuite/lib/gdc.exp b/gcc/testsuite/lib/gdc.exp --- a/gcc/testsuite/lib/gdc.exp +++ b/gcc/testsuite/lib/gdc.exp @@ -68,7 +68,7 @@ proc gdc_version { } { # proc gdc_include_flags { paths } { - global srcdir + global srcdir target_triplet global TESTING_IN_BUILD_TREE set flags "" @@ -78,7 +78,6 @@ proc gdc_include_flags { paths } { } set gccpath ${paths} - set target [file tail [file normalize ${paths}]] if { $gccpath != "" } { if [file exists "${gccpath}/libphobos/libdruntime"] { @@ -92,7 +91,7 @@ proc gdc_include_flags { paths } { if { $gccpath != "" } { if [file exists "${gccpath}/libstdc++-v3/include"] { append flags "-I${gccpath}/libstdc++-v3/include " - append flags "-I${gccpath}/libstdc++-v3/include/$target " + append flags "-I${gccpath}/libstdc++-v3/include/$target_triplet " } } append flags "-I${srcdir}/../../libstdc++-v3/libsupc++"