[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGfafa48e7b518: [AIX][clang][driver] Check the command string to the linker for exportlist opts (authored by zhijian zhij...@ca.ibm.com). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,17 +596,29 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:-resource-dir=%S/Inputs/resource_dir \ -// RUN:-shared \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:--unwindlib=libunwind \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ // RUN:--target=powerpc-ibm-aix7.1.0.0 \ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:--unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,10 +635,53 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:-resource-dir=%S/Inputs/resource_dir \ -// RUN:-shared \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ // RUN:--target=powerpc64-ibm-aix7.1.0.0 \ // RUN:
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
daltenty accepted this revision. daltenty added a comment. LGTM, thanks Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin updated this revision to Diff 455758. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,17 +596,29 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:-resource-dir=%S/Inputs/resource_dir \ -// RUN:-shared \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:--unwindlib=libunwind \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ // RUN:--target=powerpc-ibm-aix7.1.0.0 \ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:--unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,10 +635,53 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:-resource-dir=%S/Inputs/resource_dir \ -// RUN:-shared \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ // RUN:--target=powerpc64-ibm-aix7.1.0.0 \ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:--unwindlib=libunwind \ @@ -634,6 +689,9 @@ // CHECK-LD64-SHARED: "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0" // CHECK-LD64-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" //
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
daltenty added a comment. Suggest adding the following text to `clang/docs/ReleaseNotes.rst` under the AIX section with this change: * When using `-shared`, the clang driver now invokes llvm-nm to create an export list if the user doesn't specify one via linker flag or pass an alternative export control option. Comment at: clang/test/Driver/aix-ld.c:695-696 // CHECK-LD64-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD64-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +/ /CHECK-LD64-SHARED: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED: "--export-symbols" The comment line is strange here, probably a typo: Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin added a comment. if there is no more comment. Can you help to approve it ?, thanks in advance. @MaskRay @daltenty Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
DiggerLin updated this revision to Diff 427297. DiggerLin marked an inline comment as done. DiggerLin added a comment. address MaskRay's comment Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,17 +596,30 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:-resource-dir=%S/Inputs/resource_dir \ -// RUN:-shared \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:--unwindlib=libunwind \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ // RUN:--target=powerpc-ibm-aix7.1.0.0 \ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ // RUN:--unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,10 +636,56 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir -shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ -// RUN:
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
stevewan added inline comments. Comment at: clang/test/Driver/aix-ld.c:675-676 +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" DiggerLin wrote: > stevewan wrote: > > And please keep this consistent across the tests. > using: > // CHECK-LD32-SHARED-EXPORTS-NOT: "-X" > // CHECK-LD32-SHARED-EXPORTS-NOT: "32" > > will be fail on the -X 64 too. > > using // CHECK-LD32-SHARED-EXPORTS-NOT: "-X" "32" > will be success on the -X 64. > So I am prefer use the > CHECK-LD32-SHARED-EXPORTS-NOT: "-X" > CHECK-LD32-SHARED-EXPORTS-NOT: "32" > If this is meant to check also for `-X 64`. I suggest using proper regex instead of relying solely on the `-X` check. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
DiggerLin marked 8 inline comments as done. DiggerLin added inline comments. Comment at: clang/test/Driver/aix-ld.c:985 +// CHECK-LD64-SHARED-EXPFULL: "-bM:SRE" +// CHECK-LD64-SHARED-EXPFULL: "-bnoentry" +// CHECK-LD64-SHARED-EXPFULL: "-b64" MaskRay wrote: > If these options are actually adjacent, check them on the same line to make > the test more strict: you can catch issues if new options are somehow > inserted in between. yes, the options are actually adjacent now, if we put these option in the same line, there maybe a failure when the driver change the options(for example adding a option) later. and it will have different style on the existing test options Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
DiggerLin marked an inline comment as done. DiggerLin added inline comments. Comment at: clang/test/Driver/aix-ld.c:675-676 +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" stevewan wrote: > And please keep this consistent across the tests. using: // CHECK-LD32-SHARED-EXPORTS-NOT: "-X" // CHECK-LD32-SHARED-EXPORTS-NOT: "32" will be fail on the -X 64 too. using // CHECK-LD32-SHARED-EXPORTS-NOT: "-X" "32" will be success on the -X 64. So I am prefer use the CHECK-LD32-SHARED-EXPORTS-NOT: "-X" CHECK-LD32-SHARED-EXPORTS-NOT: "32" Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
MaskRay added inline comments. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:196 +const char *CreateExportListExec = Args.MakeArgString( +llvm::sys::path::parent_path(ToolChain.getDriver().ClangExecutable) + +"/llvm-nm"); Use sys::path::append Comment at: clang/lib/Driver/ToolChains/AIX.cpp:200 + +auto CreateExportListPath = +C.getDriver().GetTemporaryPath("CreateExportList", "exp"); https://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable Comment at: clang/lib/Driver/ToolChains/AIX.cpp:205 + +for (const auto : Inputs) { + if (II.isFilename()) omit braces Comment at: clang/test/Driver/aix-ld.c:611 +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ You may pack more options on one line. The current style may make the file unnecessarily long. Comment at: clang/test/Driver/aix-ld.c:985 +// CHECK-LD64-SHARED-EXPFULL: "-bM:SRE" +// CHECK-LD64-SHARED-EXPFULL: "-bnoentry" +// CHECK-LD64-SHARED-EXPFULL: "-b64" If these options are actually adjacent, check them on the same line to make the test more strict: you can catch issues if new options are somehow inserted in between. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
stevewan accepted this revision. stevewan added a comment. This revision is now accepted and ready to land. LGTM other than some nits. Comment at: clang/lib/Driver/Job.cpp:361 + + if (!RedirectFiles.empty()) { +std::vector> RedirectFilesOptional; Comment at: clang/test/Driver/aix-ld.c:675-676 +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" And please keep this consistent across the tests. Comment at: clang/test/Driver/aix-ld.c:776-777 +// CHECK-LD64-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD64-SHARED-EXPORTS-NOT: "64" +// CHECK-LD64-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" Ditto. Comment at: clang/test/Driver/aix-ld.c:826-827 +// CHECK-LD64-SHARED-EXPORTS-ALT-NOT: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED-EXPORTS-ALT-NOT: "-X" +// CHECK-LD64-SHARED-EXPORTS-ALT-NOT: "64" +// CHECK-LD64-SHARED-EXPORTS-ALT: "{{.*}}ld{{(.exe)?}}" Ditto. Comment at: clang/test/Driver/aix-ld.c:903-904 +// CHECK-LD64-SHARED-EXPALL-NOT: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED-EXPALL-NOT: "-X" +// CHECK-LD64-SHARED-EXPALL-NOT: "64" +// CHECK-LD64-SHARED-EXPALL: "{{.*}}ld{{(.exe)?}}" Ditto. Comment at: clang/test/Driver/aix-ld.c:981-982 +// CHECK-LD64-SHARED-EXPFULL-NOT: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED-EXPFULL-NOT: "-X" +// CHECK-LD64-SHARED-EXPFULL-NOT: "64" +// CHECK-LD64-SHARED-EXPFULL: "{{.*}}ld{{(.exe)?}}" Ditto. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
DiggerLin added inline comments. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:80 +static bool hasExportListLinkerOpts(const ArgStringList ) { + for (size_t i = 0, Size = CmdArgs.size(); i < Size; ++i) { +llvm::StringRef ArgString(CmdArgs[i]); stevewan wrote: > Since `!=` is preferred, let's switch to that. I do not think there is a benefit "i != Size" over "i < Size" ,https://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop I use the Size = CmdArgs.size() to avoid the evaluating the CmdArgs.size() every time through a loop. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:88 +// If we split -b option, check the next opt. +if (ArgString == "-b" && i + 1 < CmdArgs.size()) { + ++i; stevewan wrote: > thanks Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts and
DiggerLin updated this revision to Diff 423972. DiggerLin marked 2 inline comments as done. DiggerLin added a comment. address comment Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,7 +596,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ // RUN:-resource-dir=%S/Inputs/resource_dir \ // RUN:-shared \ @@ -604,9 +604,24 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:--unwindlib=libunwind \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:--unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,6 +638,56 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:--target=powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared. // RUN: %clangxx -x c++ %s 2>&1 -### \ // RUN:-resource-dir=%S/Inputs/resource_dir \ @@
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
stevewan added a comment. I don't think the redirect files portion of this patch is well-described in the description, could you please add it? Comment at: clang/lib/Driver/ToolChains/AIX.cpp:80 +static bool hasExportListLinkerOpts(const ArgStringList ) { + for (size_t i = 0, Size = CmdArgs.size(); i < Size; ++i) { +llvm::StringRef ArgString(CmdArgs[i]); Since `!=` is preferred, let's switch to that. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:88 +// If we split -b option, check the next opt. +if (ArgString == "-b" && i + 1 < CmdArgs.size()) { + ++i; Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin added inline comments. Comment at: clang/test/Driver/aix-ld.c:609 +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ MaskRay wrote: > DiggerLin wrote: > > MaskRay wrote: > > > If you don't test `clang` in CHECK lines, you can omit > > > `-no-canonical-prefixes` > > > > > > Consider switching to `.cpp` if you always use `-x c++`. > > all the test in the aix-ld.c using "-no-canonical-prefixes", in order to > > keep the same style. I am prefer to keep as it now. and create a NFC patch > > to clean the ""-no-canonical-prefixes" later. And keep the file name as > > aix-ld.c , it maybe better to have another NFC to change the file name. > See D119309 thanks Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin updated this revision to Diff 412516. DiggerLin marked an inline comment as done. Herald added a project: All. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,7 +596,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ // RUN:-resource-dir=%S/Inputs/resource_dir \ // RUN:-shared \ @@ -604,9 +604,24 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-unwindlib=libunwind \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,6 +638,56 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared. // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -###
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin updated this revision to Diff 411172. DiggerLin marked 3 inline comments as done. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -619,10 +619,9 @@ // CHECK-LD32-SHARED: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" -// CHECK-LD32-SHARED: "{{.*}}CreateExportList" -// CHECK-LD32-SHARED: "[[EXPORTLIST:[^"]+]]" -// CHECK-LD32-SHARED: "-X" -// CHECK-LD32-SHARED: "32" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -630,7 +629,6 @@ // CHECK-LD32-SHARED: "-bpT:0x1000" "-bpD:0x2000" // CHECK-LD32-SHARED-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" // CHECK-LD32-SHARED-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" -// CHECK-LD32-SHARED: "-bE:[[EXPORTLIST]]" // CHECK-LD32-SHARED: "-lc++" // CHECK-LD32-SHARED: "-lc++abi" // CHECK-LD32-SHARED: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" @@ -648,7 +646,7 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ // RUN:-Wl,-bE:input.exp \ -// RUN: | FileCheck -DMASS_VRM=%mass_vrm -DOPEN_XL_VRM=%open_xl_vrm --check-prefix=CHECK-LD32-SHARED-EXPORTS %s +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s // Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ @@ -658,7 +656,7 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ // RUN:-bE:input.exp \ -// RUN: | FileCheck -DMASS_VRM=%mass_vrm -DOPEN_XL_VRM=%open_xl_vrm --check-prefix=CHECK-LD32-SHARED-EXPORTS %s +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s // Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ @@ -673,7 +671,7 @@ // CHECK-LD32-SHARED-EXPORTS: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" -// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}CreateExportList" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" // CHECK-LD32-SHARED-EXPORTS-NOT: "-X" // CHECK-LD32-SHARED-EXPORTS-NOT: "32" // CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" @@ -701,10 +699,9 @@ // CHECK-LD64-SHARED: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0" // CHECK-LD64-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD64-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" -// CHECK-LD64-SHARED: "{{.*}}CreateExportList" -// CHECK-LD64-SHARED: "[[EXPORTLIST:[^"]+]]" -// CHECK-LD64-SHARED: "-X" -// CHECK-LD64-SHARED: "64" +/ /CHECK-LD64-SHARED: "{{.*}}llvm-nm" +// CHECK-LD64-SHARED: "--export-symbols" +// CHECK-LD64-SHARED: "-X" "64" // CHECK-LD64-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD64-SHARED: "-bM:SRE" // CHECK-LD64-SHARED: "-bnoentry" @@ -712,7 +709,6 @@ // CHECK-LD64-SHARED: "-bpT:0x1" "-bpD:0x11000" // CHECK-LD64-SHARED-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0_64.o" // CHECK-LD64-SHARED-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti_64.o" -// CHECK-LD64-SHARED: "-bE:[[EXPORTLIST]]" // CHECK-LD64-SHARED: "-lc++" // CHECK-LD64-SHARED: "-lc++abi" // CHECK-LD64-SHARED: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc64.a" @@ -751,7 +747,7 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ // RUN:-Wl,-bE:input.exp \ -// RUN: | FileCheck -DMASS_VRM=%mass_vrm -DOPEN_XL_VRM=%open_xl_vrm --check-prefix=CHECK-LD64-SHARED-EXPORTS %s +// RUN: | FileCheck --check-prefix=CHECK-LD64-SHARED-EXPORTS %s // Check powerpc64-ibm-aix7.1.0.0, 64-bit. -shared with export list (no -Wl, variant). // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ @@ -761,7 +757,7 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-ccc-install-dir
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
MaskRay added inline comments. Comment at: clang/test/Driver/aix-ld.c:609 +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ DiggerLin wrote: > MaskRay wrote: > > If you don't test `clang` in CHECK lines, you can omit > > `-no-canonical-prefixes` > > > > Consider switching to `.cpp` if you always use `-x c++`. > all the test in the aix-ld.c using "-no-canonical-prefixes", in order to keep > the same style. I am prefer to keep as it now. and create a NFC patch to > clean the ""-no-canonical-prefixes" later. And keep the file name as > aix-ld.c , it maybe better to have another NFC to change the file name. See D119309 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin marked 6 inline comments as done. DiggerLin added inline comments. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:80 +static bool hasExportListLinkerOpts(const ArgStringList ) { + for (size_t i = 0; i < CmdArgs.size(); ++i) { +llvm::StringRef ArgString(CmdArgs[i]); MaskRay wrote: > https://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop > > Prefer `!=` thanks Comment at: clang/test/Driver/aix-ld.c:609 +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ MaskRay wrote: > If you don't test `clang` in CHECK lines, you can omit > `-no-canonical-prefixes` > > Consider switching to `.cpp` if you always use `-x c++`. all the test in the aix-ld.c using "-no-canonical-prefixes", in order to keep the same style. I am prefer to keep as it now. and create a NFC patch to clean the ""-no-canonical-prefixes" later. And keep the file name as aix-ld.c , it maybe better to have another NFC to change the file name. Comment at: clang/test/Driver/aix-ld.c:615 +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ MaskRay wrote: > `-u` prefixed long option form is not recommended. `-u` is a short option > taking a value, therefore an option name typo cannot be detected. same comment as above, I am prefer for another NFC patch for it. thanks. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
MaskRay added inline comments. Comment at: clang/lib/Driver/Job.cpp:304 +void Command::setRedirectFiles(std::vector> Redirects) { + RedirectFiles = Redirects; Comment at: clang/lib/Driver/Job.cpp:370 + makeArrayRef(RedirectFilesOptional), + /*secondsToWait*/ 0, /*memoryLimit*/ 0, + ErrMsg, ExecutionFailed, ); Comment at: clang/lib/Driver/ToolChains/AIX.cpp:80 +static bool hasExportListLinkerOpts(const ArgStringList ) { + for (size_t i = 0; i < CmdArgs.size(); ++i) { +llvm::StringRef ArgString(CmdArgs[i]); https://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop Prefer `!=` Comment at: clang/lib/Driver/ToolChains/AIX.cpp:219 + +std::unique_ptr ExpCommand = std::make_unique( +JA, *this, ResponseFileSupport::None(), CreateExportListExec, Comment at: clang/test/Driver/aix-ld.c:609 +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ If you don't test `clang` in CHECK lines, you can omit `-no-canonical-prefixes` Consider switching to `.cpp` if you always use `-x c++`. Comment at: clang/test/Driver/aix-ld.c:615 +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ `-u` prefixed long option form is not recommended. `-u` is a short option taking a value, therefore an option name typo cannot be detected. Comment at: clang/test/Driver/aix-ld.c:624 +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" +// CHECK-LD32-SHARED: "32" Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin updated this revision to Diff 406560. DiggerLin added a comment. run git format Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119147/new/ https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,7 +596,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ // RUN:-resource-dir=%S/Inputs/resource_dir \ // RUN:-shared \ @@ -604,9 +604,25 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-unwindlib=libunwind \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" +// CHECK-LD32-SHARED: "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,6 +639,56 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crt0.o" +// CHECK-LD32-SHARED-EXPORTS-NOT: "[[SYSROOT]]/usr/lib{{/|}}crti.o" +// CHECK-LD32-SHARED-EXPORTS: "-b{{(" ")?}}E:input.exp" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-bE:{{[^"]+}}" +// CHECK-LD32-SHARED-EXPORTS: "-lc++" +// CHECK-LD32-SHARED-EXPORTS: "[[RESOURCE_DIR]]{{/|}}lib{{/|}}aix{{/|}}libclang_rt.builtins-powerpc.a" +// CHECK-LD32-SHARED-EXPORTS: "-lm" +// CHECK-LD32-SHARED-EXPORTS: "-lc" + // Check
[PATCH] D119147: [AIX][clang][driver] Check the command string to the linker for exportlist opts
DiggerLin created this revision. DiggerLin added reviewers: daltenty, hubert.reinterpretcast. DiggerLin requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. We currently only check driver Wl options and don't check for the plain -b, -Xlinker or other options which get passed through to the linker when we decide whether to run llvm-nm --export-symbols, so we may run it in situations where we wouldn't if the user had used the equivalent -Wl, prefixed options. If we run the export list utility when the user has specified an export list, we could export more symbols than they intended. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D119147 Files: clang/include/clang/Driver/Job.h clang/lib/Driver/Job.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -596,7 +596,7 @@ // RUN: | FileCheck --check-prefix=CHECK-LD-LIBSTDCXX %s // CHECK-LD-LIBSTDCXX: LLVM ERROR: linking libstdc++ unimplemented on AIX -// Check powerpc64-ibm-aix7.1.0.0, 32-bit. -shared. +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared. // RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ // RUN:-resource-dir=%S/Inputs/resource_dir \ // RUN:-shared \ @@ -604,9 +604,25 @@ // RUN:--sysroot %S/Inputs/aix_ppc_tree \ // RUN:-unwindlib=libunwind \ // RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared (with exp option strings in other opt). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-unwindlib=libunwind \ +// RUN:-Wl,-Z/expall/expfull/a-bE:/a-bexport:/ \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED %s + // CHECK-LD32-SHARED: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" // CHECK-LD32-SHARED: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" // CHECK-LD32-SHARED: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED: "--export-symbols" +// CHECK-LD32-SHARED: "-X" +// CHECK-LD32-SHARED: "32" // CHECK-LD32-SHARED: "{{.*}}ld{{(.exe)?}}" // CHECK-LD32-SHARED: "-bM:SRE" // CHECK-LD32-SHARED: "-bnoentry" @@ -623,6 +639,56 @@ // CHECK-LD32-SHARED: "-lm" // CHECK-LD32-SHARED: "-lc" +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list. +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Wl,-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (no -Wl, variant). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// Check powerpc-ibm-aix7.1.0.0, 32-bit. -shared with export list (-Xlinker variant). +// RUN: %clangxx -x c++ -no-canonical-prefixes %s 2>&1 -### \ +// RUN:-resource-dir=%S/Inputs/resource_dir \ +// RUN:-shared \ +// RUN:-target powerpc-ibm-aix7.1.0.0 \ +// RUN:--sysroot %S/Inputs/aix_ppc_tree \ +// RUN:-ccc-install-dir %T/open_xl_aix_install/opt/IBM/openxlC/%open_xl_vrm/bin \ +// RUN:-Xlinker -bE:input.exp \ +// RUN: | FileCheck --check-prefix=CHECK-LD32-SHARED-EXPORTS %s + +// CHECK-LD32-SHARED-EXPORTS: {{.*}}clang{{.*}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0" +// CHECK-LD32-SHARED-EXPORTS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS: "-isysroot" "[[SYSROOT:[^"]+]]" +// CHECK-LD32-SHARED-EXPORTS-NOT: "{{.*}}llvm-nm" +// CHECK-LD32-SHARED-EXPORTS-NOT: "-X" +// CHECK-LD32-SHARED-EXPORTS-NOT: "32" +// CHECK-LD32-SHARED-EXPORTS: "{{.*}}ld{{(.exe)?}}" +// CHECK-LD32-SHARED-EXPORTS: "-bM:SRE" +// CHECK-LD32-SHARED-EXPORTS: "-bnoentry" +// CHECK-LD32-SHARED-EXPORTS: "-b32" +// CHECK-LD32-SHARED-EXPORTS: "-bpT:0x1000" "-bpD:0x2000" +// CHECK-LD32-SHARED-EXPORTS-NOT: