https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109816
Bug ID: 109816 Summary: [14 Regression] r14-321 fix for PR108969 breaks NVPTX offloading due to __asm (".globl _ZSt21ios_base_library_initv") Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Commit r14-321-g9a41d2cdbcd2af77a3a91a840a3a13f0eb39971b "libstdc++: Another attempt to ensure g++ 13+ compiled programs enforce gcc 13.2+ libstdc++.so.6 [PR108969]" breaks some offload compiling with nvptx. For instance, https://github.com/TApplencourt/OvO/blob/master/test_src/cpp/hierarchical_parallelism/reduction_add-complex_double/target__teams__parallel_for_simd.cpp fails to assemble with ptxas (either at compile time or at runtime) with: ptxas a.xnvptx-none.mkoffload.s, line 8; fatal : Parsing error near '.globl': syntax error The problem is the code: // #APP .globl _ZSt21ios_base_library_initv // #NO_APP Which the commit added to the header file as: #if !__has_attribute(__init_priority__) static ios_base::Init __ioinit; +#elif defined(_GLIBCXX_SYMVER_GNU) + __extension__ __asm (".globl _ZSt21ios_base_library_initv"); #endif * * * NOTE: With GCN offloading the program runs, presumably because the LLVM assembler (mc) does not choke on ".globl".