No libstdc++ for GCN (was: No libstdc++ for nvptx)

2023-12-20 Thread Thomas Schwinge
Hi!

On 2015-03-11T22:44:27+0100, I wrote:
> I committed the following in r221362:

>     No libstdc++ for nvptx.
>
> The C++ front end insists to link against libstdc++ -- which we don't 
> build:
>
> $ < build-gcc/gcc/testsuite/g++/g++.log grep -o 'error opening 
> [^[:cntrl:]]*' | sort | uniq -c
>   2 error opening libasan.a
>   2 error opening libssp.a
>   12075 error opening libstdc++.a
>
> Based on GCC trunk r220892:
>
> === g++ Summary ===
>
> # of expected passes[-63221-]{+68841+}
> # of unexpected failures[-11751-]{+8764+}
> # of unexpected successes   6
> # of expected failures  [-246-]{+249+}
> # of unresolved testcases   [-5950-]{+3353+}
> # of unsupported tests  [-4160-]{+4143+}

> --- gcc/config/nvptx/nvptx.h
> +++ gcc/config/nvptx/nvptx.h

> +/* The C++ front end insists to link against libstdc++ -- which we don't 
> build.
> +   Tell it to instead link against the innocuous libgcc.  */
> +#define LIBSTDCXX "gcc"

Pushed to master branch commit 4d9d015cf4054f5f9df14a2c11ce81379b6caf0f
"No libstdc++ for GCN", see attached.

(Both these commit are going to get reverted once I've got libstdc++-v3
enabled for GCN, nvptx, but until then, this further harmonizes my GCN
vs. nvptx test results.)


Grüße
 Thomas


-
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955
>From 4d9d015cf4054f5f9df14a2c11ce81379b6caf0f Mon Sep 17 00:00:00 2001
From: Thomas Schwinge 
Date: Thu, 13 Apr 2023 08:54:47 +0200
Subject: [PATCH] No libstdc++ for GCN

Like commit d94fae044da071381b73a2ee8afa874b14fa3820 "No libstdc++ for nvptx"
(2015) and elsewhere.

Based on commit 5f1bed2a7af828103ca23a3546466a23e8dd2f30 (2023-12-16), there
are a ton of progressions (for test cases not actually depending on libstdc++
symbols, obviously):

=== g++ Summary ===

# of expected passes[-178369-]{+189226+}
# of unexpected failures[-19880-]{+14089+}
# of unexpected successes   14
# of expected failures  [-1684-]{+1685+}
# of unresolved testcases   [-9820-]{+4837+}
# of unsupported tests  [-11971-]{+11968+}

..., and only two benign "regressions":

[-UNSUPPORTED:-]{+FAIL:+} g++.dg/init/array54.C  -std=c++14 {+(test for excess errors)+}
{+UNRESOLVED: g++.dg/init/array54.C  -std=c++14 compilation failed to produce executable+}
[Etc.]

[...]/g++.dg/init/array54.C:5:10: fatal error: atomic: No such file or directory

That's similar to a lof of other test cases intending to '#include' standard
C++/libstdc++ headers; to be addressed in due time.

PASS: g++.old-deja/g++.pt/const2.C  -std=c++98  at line 5 (test for warnings, line )
[-PASS:-]{+FAIL:+} g++.old-deja/g++.pt/const2.C  -std=c++98 (test for excess errors)
[Etc.]

ld: error: undefined symbol: A::i
>>> referenced by /tmp/ccqXWCSh.o:(p)

The 'error: undefined symbol' is expected here; maybe should simply in the test
case 'dg-prune-output "referenced by"'?  (This PASSed before, as the
'dg-message "i"' was satisfied by 'ld: error: unable to find library -lstdc++',
eh...)

	gcc/
	* config/gcn/gcn.h (LIBSTDCXX): Define to "gcc".
---
 gcc/config/gcn/gcn.h | 4 
 1 file changed, 4 insertions(+)

diff --git a/gcc/config/gcn/gcn.h b/gcc/config/gcn/gcn.h
index cb52be7a3a1..b8f2854d497 100644
--- a/gcc/config/gcn/gcn.h
+++ b/gcc/config/gcn/gcn.h
@@ -836,3 +836,7 @@ enum gcn_builtin_codes
   || M == V2SFmode || M == V2DImode || M == V2DFmode) \
? 2 \
: 1)
+
+/* The C++ front end insists to link against libstdc++ -- which we don't build.
+   Tell it to instead link against the innocuous libgcc.  */
+#define LIBSTDCXX "gcc"
-- 
2.34.1



No libstdc++ for nvptx

2015-03-11 Thread Thomas Schwinge
Hi!

I committed the following in r221362:

commit 5121139d0e8b22290fc9e752b07752d8a1b70182
Author: tschwinge tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Wed Mar 11 21:42:50 2015 +

No libstdc++ for nvptx.

The C++ front end insists to link against libstdc++ -- which we don't build:

$  build-gcc/gcc/testsuite/g++/g++.log grep -o 'error opening 
[^[:cntrl:]]*' | sort | uniq -c
  2 error opening libasan.a
  2 error opening libssp.a
  12075 error opening libstdc++.a

Based on GCC trunk r220892:

=== g++ Summary ===

# of expected passes[-63221-]{+68841+}
# of unexpected failures[-11751-]{+8764+}
# of unexpected successes   6
# of expected failures  [-246-]{+249+}
# of unresolved testcases   [-5950-]{+3353+}
# of unsupported tests  [-4160-]{+4143+}

gcc/
* config/nvptx/nvptx.h (LIBSTDCXX): Define to gcc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221362 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog|4 
 gcc/config/nvptx/nvptx.h |4 
 2 files changed, 8 insertions(+)

diff --git gcc/ChangeLog gcc/ChangeLog
index 28979d5..e474fc8 100644
--- gcc/ChangeLog
+++ gcc/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-11  Thomas Schwinge  tho...@codesourcery.com
+
+   * config/nvptx/nvptx.h (LIBSTDCXX): Define to gcc.
+
 2015-03-11  Marek Polacek  pola...@redhat.com
 
PR tree-optimization/65388
diff --git gcc/config/nvptx/nvptx.h gcc/config/nvptx/nvptx.h
index e74d16f..e4e58dd 100644
--- gcc/config/nvptx/nvptx.h
+++ gcc/config/nvptx/nvptx.h
@@ -366,4 +366,8 @@ struct GTY(()) machine_function
 #define FUNCTION_MODE QImode
 #define HAS_INIT_SECTION 1
 
+/* The C++ front end insists to link against libstdc++ -- which we don't build.
+   Tell it to instead link against the innocuous libgcc.  */
+#define LIBSTDCXX gcc
+
 #endif /* GCC_NVPTX_H */


Grüße,
 Thomas


pgpnA1eL3zWv7.pgp
Description: PGP signature