From dd480e5be58f4c0740c9331e7e1f099cd326ea8c Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 13 Dec 2023 10:36:25 -0500 Subject: LinkerId: Fix detection of linker tool for XL compilers These compilers print an explicit `export XL_LINKER=` line. Parse it separately. --- Modules/CMakeParseImplicitLinkInfo.cmake | 2 ++ Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output | 2 +- .../ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output | 2 +- Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output | 2 +- .../ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output | 2 +- Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output | 2 +- Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output | 2 +- Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output | 2 +- .../RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output | 2 +- .../ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output | 2 +- .../ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output | 2 +- .../ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output | 2 +- .../ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output | 2 +- 13 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Modules/CMakeParseImplicitLinkInfo.cmake b/Modules/CMakeParseImplicitLinkInfo.cmake index db39249..5234411 100644 --- a/Modules/CMakeParseImplicitLinkInfo.cmake +++ b/Modules/CMakeParseImplicitLinkInfo.cmake @@ -88,6 +88,8 @@ function(cmake_parse_implicit_link_info2 text log_var obj_regex) NOT linker_tool AND NOT "${line}" MATCHES "${linker_tool_exclude_regex}") if("${line}" MATCHES "exec: ([^()]*/(${linker}))") # IBM XL as nvcc host compiler set(linker_tool "${CMAKE_MATCH_1}") + elseif("${line}" MATCHES "^export XL_LINKER=(.*/${linker})[ \t]*$") # IBM XL + set(linker_tool "${CMAKE_MATCH_1}") elseif("${line}" MATCHES "${linker_tool_regex}") set(linker_tool "${CMAKE_MATCH_2}") endif() diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output index 5b06c04..17e6308 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output @@ -1,3 +1,3 @@ libs=xlopt;xlipa;xl;c dirs=/opt/IBM/xlmass/8.1.3/lib/aix61;/opt/IBM/xlc/13.1.3/lib -linker_tool=.*/bin/ld +linker_tool=/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output index 4841152..462d852 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output @@ -1,3 +1,3 @@ libs=xlopt;xlipa;xl;c;pthreads dirs=/opt/IBM/xlmass/9.1.0/lib/aix61;/opt/IBM/xlc/16.1.0/lib -linker_tool=.*/bin/ld +linker_tool=/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output index b2c7644..33a2f44 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output @@ -1,3 +1,3 @@ libs=xlopt;xlipa;xl;C;m;c dirs=/opt/IBM/xlmass/8.1.3/lib/aix61;/opt/IBM/xlc/13.1.3/lib;/opt/IBM/xlC/13.1.3/lib -linker_tool=.*/bin/ld +linker_tool=/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output index 8b60d1f..3599785 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output @@ -1,3 +1,3 @@ libs=xlopt;xlipa;xl;c\+\+;Ccore;pthreads;m;c dirs=/opt/IBM/xlmass/9.1.0/lib/aix61;/opt/IBM/xlc/16.1.0/lib;/opt/IBM/xlC/16.1.0/lib -linker_tool=.*/bin/ld +linker_tool=/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output index 2169d2d..46ed2d9 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output index b387576..ab0db93 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;dl;gcc_s;pthread;gcc;m;c;gcc_s;gcc dirs=/opt/ibm/xlsmp/5.1.0/lib;/opt/ibm/xlmass/9.1.0/lib;/opt/ibm/xlC/16.1.0/lib;/usr/lib/gcc/ppc64le-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output index 7dc1b19..9e69183 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;ibmc\+\+;xlopt;xl;stdc\+\+;m;dl;gcc_s;gcc;m;c;gcc_s;gcc;dl;gcc_s;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output index f3909bb..30e16c9 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;ibmc\+\+;stdc\+\+;m;dl;gcc_s;gcc;pthread;m;c;gcc_s;gcc dirs=/opt/ibm/xlsmp/5.1.0/lib;/opt/ibm/xlmass/9.1.0/lib;/opt/ibm/xlC/16.1.0/lib;/usr/lib/gcc/ppc64le-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output index a3e3763..526914b 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output @@ -1,4 +1,4 @@ libs=xlf90;xlopt;xlomp_ser;xl;xlfmath;gcc_s;dl;rt;pthread;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/xlf/bg/14.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output index 2169d2d..46ed2d9 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output index 7dc1b19..9e69183 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;ibmc\+\+;xlopt;xl;stdc\+\+;m;dl;gcc_s;gcc;m;c;gcc_s;gcc;dl;gcc_s;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output index 2169d2d..46ed2d9 100644 --- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output +++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output @@ -1,4 +1,4 @@ libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib library_arch= -linker_tool=.*/usr/bin/ld +linker_tool=/usr/bin/ld -- cgit v0.12