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 <tho...@codesourcery.com> 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<int>::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