[gcc r14-6749] No libstdc++ for GCN

Thomas Schwinge tschwinge@gcc.gnu.org
Wed Dec 20 14:09:24 GMT 2023


https://gcc.gnu.org/g:4d9d015cf4054f5f9df14a2c11ce81379b6caf0f

commit r14-6749-g4d9d015cf4054f5f9df14a2c11ce81379b6caf0f
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Apr 13 08:54:47 2023 +0200

    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".

Diff:
---
 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"


More information about the Gcc-cvs mailing list