================ @@ -7,35 +7,100 @@ !! LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON, use !! resource_dir_with_per_target_subdir as inputs. -! Check powerpc64-ibm-aix 64-bit linking to static flang-rt -! RUN: %flang %s -### 2>&1 \ +! Check powerpc64-ibm-aix 64-bit linking to static flang-rt by default +! RUN: %flang -Werror %s -### 2>&1 \ ! RUN: --target=powerpc64-ibm-aix \ ! RUN: -resource-dir=%S/../../../clang/test/Driver/Inputs/resource_dir_with_per_target_subdir \ -! RUN: | FileCheck %s --check-prefix=AIX64-LD-PER-TARGET +! RUN: | FileCheck %s --check-prefix=AIX64-LD-PER-TARGET-DEFAULT -! AIX64-LD-PER-TARGET-NOT: warning: -! AIX64-LD-PER-TARGET: "-fc1" "-triple" "powerpc64-ibm-aix" -! AIX64-LD-PER-TARGET-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" -! AIX64-LD-PER-TARGET: "{{.*}}ld{{(.exe)?}}" -! AIX64-LD-PER-TARGET-NOT: "-bnso" -! AIX64-LD-PER-TARGET-SAME: "-b64" -! AIX64-LD-PER-TARGET-SAME: "-bpT:0x100000000" "-bpD:0x110000000" -! AIX64-LD-PER-TARGET-SAME: "-lc" -! AIX64-LD-PER-TARGET-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix{{/|\\\\}}libflang_rt.runtime.a" -! AIX64-LD-PER-TARGET-SAME: "-lm" -! AIX64-LD-PER-TARGET-SAME: "-lpthread" - -! Check powerpc64le-unknown-linux-gnu 64-bit linking to static flang-rt -! RUN: %flang %s -### 2>&1 \ +! AIX64-LD-PER-TARGET-DEFAULT: "-fc1" "-triple" "powerpc64-ibm-aix" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +! AIX64-LD-PER-TARGET-DEFAULT: "{{.*}}ld{{(.exe)?}}" +! AIX64-LD-PER-TARGET-DEFAULT-NOT: "-bnso" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-b64" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-bpT:0x100000000" "-bpD:0x110000000" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-lc" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix{{/|\\\\}}libflang_rt.runtime.a" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-lm" +! AIX64-LD-PER-TARGET-DEFAULT-SAME: "-lpthread" + + +! Check powerpc64-ibm-aix 64-bit linking to static flang-rt by option +! RUN: %flang -static-libflangrt -Werror %s -### 2>&1 \ +! RUN: --target=powerpc64-ibm-aix \ +! RUN: -resource-dir=%S/../../../clang/test/Driver/Inputs/resource_dir_with_per_target_subdir \ +! RUN: | FileCheck %s --check-prefix=AIX64-LD-PER-TARGET-STATIC + +! AIX64-LD-PER-TARGET-STATIC: "-fc1" "-triple" "powerpc64-ibm-aix" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +! AIX64-LD-PER-TARGET-STATIC: "{{.*}}ld{{(.exe)?}}" +! AIX64-LD-PER-TARGET-STATIC-NOT: "-bnso" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-b64" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-bpT:0x100000000" "-bpD:0x110000000" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-lc" +! AIX64-LD-PER-TARGET-STATIC-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix{{/|\\\\}}libflang_rt.runtime.a" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-lm" +! AIX64-LD-PER-TARGET-STATIC-SAME: "-lpthread" + + +! Check powerpc64-ibm-aix 64-bit linking to shared flang-rt by option +! RUN: %flang -shared-libflangrt -Werror %s -### 2>&1 \ +! RUN: --target=powerpc64-ibm-aix \ +! RUN: -resource-dir=%S/../../../clang/test/Driver/Inputs/resource_dir_with_per_target_subdir \ +! RUN: | FileCheck %s --check-prefix=AIX64-LD-PER-TARGET-SHARED + +! AIX64-LD-PER-TARGET-SHARED: "-fc1" "-triple" "powerpc64-ibm-aix" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +! AIX64-LD-PER-TARGET-SHARED: "{{.*}}ld{{(.exe)?}}" +! AIX64-LD-PER-TARGET-SHARED-NOT: "-bnso" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-b64" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-bpT:0x100000000" "-bpD:0x110000000" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-lc" +! AIX64-LD-PER-TARGET-SHARED-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix{{/|\\\\}}libflang_rt.runtime.a" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-lm" +! AIX64-LD-PER-TARGET-SHARED-SAME: "-lpthread" + + +! Check powerpc64le-unknown-linux-gnu 64-bit linking to shared flang-rt by default +! RUN: %flang -Werror %s -### 2>&1 \ ! RUN: --target=powerpc64le-unknown-linux-gnu \ ! RUN: -resource-dir=%S/../../../clang/test/Driver/Inputs/resource_dir_with_per_target_subdir \ -! RUN: | FileCheck %s --check-prefixes=LOP64-LD-PER-TARGET - -! LOP64-LD-PER-TARGET-NOT: warning: -! LOP64-LD-PER-TARGET: "-fc1" "-triple" "powerpc64le-unknown-linux-gnu" -! LOP64-LD-PER-TARGET-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" -! LOP64-LD-PER-TARGET: "{{.*}}ld{{(.exe)?}}" -! LOP64-LD-PER-TARGET-NOT: "-bnso" -! LOP64-LD-PER-TARGET-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64le-unknown-linux-gnu{{/|\\\\}}libflang_rt.runtime.a" -! LOP64-LD-PER-TARGET-SAME: "-lm" -! LOP64-LD-PER-TARGET-SAME: "-lc" +! RUN: | FileCheck %s --check-prefixes=LOP64-LD-PER-TARGET-DEFAULT + +! LOP64-LD-PER-TARGET-DEFAULT: "-fc1" "-triple" "powerpc64le-unknown-linux-gnu" +! LOP64-LD-PER-TARGET-DEFAULT-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +! LOP64-LD-PER-TARGET-DEFAULT: "{{.*}}ld{{(.exe)?}}" +! LOP64-LD-PER-TARGET-DEFAULT-NOT: "-bnso" +! LOP64-LD-PER-TARGET-DEFAULT-SAME: "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64le-unknown-linux-gnu{{/|\\\\}}libflang_rt.runtime.so" ---------------- DanielCChen wrote:
Hmm, this is interesting. I couldn't reproduce the same behavior with the full path to `libflang_rt.runtime.so` on LoP. ``` > flang a.f > ldd a.out linux-vdso64.so.1 (0x00007fff89e40000) libflang_rt.runtime.so => not found libm.so.6 => /lib64/libm.so.6 (0x00007fff89cc0000) libc.so.6 => /lib64/libc.so.6 (0x00007fff89aa0000) /lib64/ld64.so.2 (0x00007fff89e60000) ``` I had to do ``` > flang a.f -frtlib-add-rpath > ldd a.out linux-vdso64.so.1 (0x00007fff9f780000) libflang_rt.runtime.so => ../build/lib/clang/21/lib/powerpc64le-unknown-linux-gnu/libflang_rt.runtime.so (0x00007fff9e510000) libm.so.6 => /lib64/libm.so.6 (0x00007fff9e3c0000) libc.so.6 => /lib64/libc.so.6 (0x00007fff9e1a0000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fff9e150000) /lib64/ld64.so.2 (0x00007fff9f7a0000) ``` I tried using either `clang` or `flang` as linking command for both the Fortran and C code, but the result is consistent. I.E. `libmy.so` always has full path in `a.out`, but not `libflang_rt.runtime.so`. That being said, I observed passing the full path to the `.so` doesn't make any difference as it requires the `-rpath` option at loading time anyway. So I will change it back. https://github.com/llvm/llvm-project/pull/134362 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits