public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Fix gdc testsuite failures on Solaris
@ 2019-01-29 14:44 Rainer Orth
  0 siblings, 0 replies; only message in thread
From: Rainer Orth @ 2019-01-29 14:44 UTC (permalink / raw)
  To: gcc-patches; +Cc: Iain Buclaw

[-- Attachment #1: Type: text/plain, Size: 2982 bytes --]

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  <ro@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.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sol2-testsuite-gdc.patch --]
[-- Type: text/x-patch, Size: 1601 bytes --]

# 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++"

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-01-29 14:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-29 14:44 Fix gdc testsuite failures on Solaris Rainer Orth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).