[PATCH] D157013: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG43dfe0f08eca: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC (authored by ro). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157013/new/ https://reviews.llvm.org/D157013 Files: clang/lib/Driver/ToolChains/Gnu.cpp clang/test/Driver/Inputs/solaris_sparc32_tree/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0/32/crtbegin.o clang/test/Driver/Inputs/solaris_sparc32_tree/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0/crtbegin.o clang/test/Driver/Inputs/solaris_sparcv8+_tree/usr/gcc/11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0/crtbegin.o clang/test/Driver/Inputs/solaris_sparcv8+_tree/usr/gcc/11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0/sparcv8plus/crtbegin.o clang/test/Driver/lit.local.cfg clang/test/Driver/solaris-sparc-gcc-search.test Index: clang/test/Driver/solaris-sparc-gcc-search.test === --- /dev/null +++ clang/test/Driver/solaris-sparc-gcc-search.test @@ -0,0 +1,56 @@ +/// Check that clang can handle both old-style (32) and new-style (sparcv8plus) +/// 32-bit sparc multilib subdirs. + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 4.8 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc_tree/usr/gcc/4.8 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC48 %s +// CHECK-SPARC32-GCC48: Selected GCC installation: {{.*}}4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2 +// CHECK-SPARC32-GCC48-NEXT: Candidate multilib: .;@m32 +// CHECK-SPARC32-GCC48-NEXT: Candidate multilib: sparcv9;@m64 +// CHECK-SPARC32-GCC48-NEXT: Selected multilib: .;@m32 + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 10 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc32_tree/usr/gcc/10 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC10 %s +// CHECK-SPARC32-GCC10: Selected GCC installation: {{.*}}10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0 +// CHECK-SPARC32-GCC10-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC32-GCC10-NEXT: Candidate multilib: 32;@m32 +// CHECK-SPARC32-GCC10-NEXT: Selected multilib: 32;@m32 + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 11 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparcv8+_tree/usr/gcc/11 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC11 %s +// CHECK-SPARC32-GCC11: Selected GCC installation: {{.*}}11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0 +// CHECK-SPARC32-GCC11-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC32-GCC11-NEXT: Candidate multilib: sparcv8plus;@m32 +// CHECK-SPARC32-GCC11-NEXT: Selected multilib: sparcv8plus;@m32 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 4.8 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc_tree/usr/gcc/4.8 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC48 %s +// CHECK-SPARC64-GCC48: Selected GCC installation: {{.*}}gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2 +// CHECK-SPARC64-GCC48-NEXT: Candidate multilib: .;@m32 +// CHECK-SPARC64-GCC48-NEXT: Candidate multilib: sparcv9;@m64 +// CHECK-SPARC64-GCC48-NEXT: Selected multilib: sparcv9;@m64 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 10 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc32_tree/usr/gcc/10 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC10 %s +// CHECK-SPARC64-GCC10: Selected GCC installation: {{.*}}10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0 +// CHECK-SPARC64-GCC10-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC64-GCC10-NEXT: Candidate multilib: 32;@m32 +// CHECK-SPARC64-GCC10-NEXT: Selected multilib: .;@m64 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 11 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparcv8+_tree/usr/gcc/11 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC11 %s +// CHECK-SPARC64-GCC11: Selected GCC installation: {{.*}}11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0 +// CHECK-SPARC64-GCC11-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC64-GCC11-NEXT: Candidate multilib: sparcv8plus;@m32 +// CHECK-SPARC64-GCC11-NEXT: Selected multilib: .;@m64 Index: clang/test/Driver/lit.local.cfg === --- clang/test/Driver/lit.local.cfg +++ clang/test/Driver/lit.local.cfg @@ -20,6 +20,7 @@ ".hipi", ".hlsl", ".yaml", +".test", ] config.substitutions = list(config.substitutions) config.substitutions.insert( Index: clang/lib/Driver/ToolChains/Gnu.cpp === --- clang/lib/Driver/ToolChains/Gnu.cpp +++ clang/lib/Driver/ToolChains/Gnu.cpp @@
[PATCH] D157013: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC
MaskRay added inline comments. Comment at: clang/test/Driver/lit.local.cfg:23 ".yaml", +".test", ] ro wrote: > MaskRay wrote: > > Instead of adding a new extension, you can just name your test `.c`? > I could, but went for `.test` instead because the `clang` invocations don't > need input. > > Besides, there's still the issue of the existing `crash-report-null.test` > that's currently ignored. OK, sounds good since many other directories accept `.test` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157013/new/ https://reviews.llvm.org/D157013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157013: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC
ro added inline comments. Comment at: clang/test/Driver/lit.local.cfg:23 ".yaml", +".test", ] MaskRay wrote: > Instead of adding a new extension, you can just name your test `.c`? I could, but went for `.test` instead because the `clang` invocations don't need input. Besides, there's still the issue of the existing `crash-report-null.test` that's currently ignored. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157013/new/ https://reviews.llvm.org/D157013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157013: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC
MaskRay accepted this revision. MaskRay added inline comments. This revision is now accepted and ready to land. Comment at: clang/test/Driver/lit.local.cfg:23 ".yaml", +".test", ] Instead of adding a new extension, you can just name your test `.c`? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157013/new/ https://reviews.llvm.org/D157013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157013: [Driver] Allow for sparcv8plus subdir with Solaris/SPARC GCC
ro created this revision. ro added a reviewer: MaskRay. ro added a project: clang. Herald added subscribers: pengfei, jrtc27, fedor.sergeev, jyknight. Herald added a project: All. ro requested review of this revision. Since GCC 11, the bundled Solaris/SPARC GCC uses the `sparcv8plus` subdirectory for 32-bit objects, just like upstream GCC. Before that, it used `32` instead from a local patch. Since `clang` doesn't know about that `sparcv8plus` subdirectory, it wouldn't properly use GCC 11+ installations. The new `solaris-sparc-gcc-search.test` testcase wasn't run initially (like the existing `crash-report-null.test`) because the `.test` suffix wasn't handled. Tested on `sparcv9-sun-solaris2.11`, `amd64-pc-solaris2.11`, and `x86_64-pc-linux-gnu`. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D157013 Files: clang/lib/Driver/ToolChains/Gnu.cpp clang/test/Driver/Inputs/solaris_sparc32_tree/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0/32/crtbegin.o clang/test/Driver/Inputs/solaris_sparc32_tree/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0/crtbegin.o clang/test/Driver/Inputs/solaris_sparcv8+_tree/usr/gcc/11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0/crtbegin.o clang/test/Driver/Inputs/solaris_sparcv8+_tree/usr/gcc/11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0/sparcv8plus/crtbegin.o clang/test/Driver/lit.local.cfg clang/test/Driver/solaris-sparc-gcc-search.test Index: clang/test/Driver/solaris-sparc-gcc-search.test === --- /dev/null +++ clang/test/Driver/solaris-sparc-gcc-search.test @@ -0,0 +1,56 @@ +/// Check that clang can handle both old-style (32) and new-style (sparcv8plus) +/// 32-bit sparc multilib subdirs. + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 4.8 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc_tree/usr/gcc/4.8 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC48 %s +// CHECK-SPARC32-GCC48: Selected GCC installation: {{.*}}4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2 +// CHECK-SPARC32-GCC48-NEXT: Candidate multilib: .;@m32 +// CHECK-SPARC32-GCC48-NEXT: Candidate multilib: sparcv9;@m64 +// CHECK-SPARC32-GCC48-NEXT: Selected multilib: .;@m32 + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 10 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc32_tree/usr/gcc/10 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC10 %s +// CHECK-SPARC32-GCC10: Selected GCC installation: {{.*}}10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0 +// CHECK-SPARC32-GCC10-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC32-GCC10-NEXT: Candidate multilib: 32;@m32 +// CHECK-SPARC32-GCC10-NEXT: Selected multilib: 32;@m32 + +/// Check sparc-sun-solaris2.11, 32-bit, GCC 11 tree +// RUN: %clang -v 2>&1 --target=sparc-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparcv8+_tree/usr/gcc/11 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC32-GCC11 %s +// CHECK-SPARC32-GCC11: Selected GCC installation: {{.*}}11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0 +// CHECK-SPARC32-GCC11-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC32-GCC11-NEXT: Candidate multilib: sparcv8plus;@m32 +// CHECK-SPARC32-GCC11-NEXT: Selected multilib: sparcv8plus;@m32 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 4.8 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc_tree/usr/gcc/4.8 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC48 %s +// CHECK-SPARC64-GCC48: Selected GCC installation: {{.*}}gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2 +// CHECK-SPARC64-GCC48-NEXT: Candidate multilib: .;@m32 +// CHECK-SPARC64-GCC48-NEXT: Candidate multilib: sparcv9;@m64 +// CHECK-SPARC64-GCC48-NEXT: Selected multilib: sparcv9;@m64 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 10 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparc32_tree/usr/gcc/10 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC10 %s +// CHECK-SPARC64-GCC10: Selected GCC installation: {{.*}}10/lib/gcc/sparcv9-sun-solaris2.11/10.4.0 +// CHECK-SPARC64-GCC10-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC64-GCC10-NEXT: Candidate multilib: 32;@m32 +// CHECK-SPARC64-GCC10-NEXT: Selected multilib: .;@m64 + +/// Check sparcv9-sun-solaris2.11, 64-bit, GCC 11 tree +// RUN: %clang -v 2>&1 --target=sparcv9-sun-solaris2.11 \ +// RUN: --gcc-toolchain=%S/Inputs/solaris_sparcv8+_tree/usr/gcc/11 \ +// RUN: | FileCheck --check-prefix=CHECK-SPARC64-GCC11 %s +// CHECK-SPARC64-GCC11: Selected GCC installation: {{.*}}11/lib/gcc/sparcv9-sun-solaris2.11/11.3.0 +// CHECK-SPARC64-GCC11-NEXT: Candidate multilib: .;@m64 +// CHECK-SPARC64-GCC11-NEXT: Candidate multilib: sparcv8plus;@m32 +// CHECK-SPARC64-GCC11-NEXT: Selected multilib: .;@m64 Index: clang/test/Driver/lit.local.cfg