Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix installing of Clang with RPATH linking #2799

Merged
merged 14 commits into from
Nov 7, 2022

Conversation

casparvl
Copy link
Contributor

@casparvl casparvl commented Oct 6, 2022

This is a first attempt at fixing easybuilders/easybuild-easyconfigs#15106

It requires this small framework change easybuilders/easybuild-framework#4088

Caspar van Leeuwen and others added 6 commits September 23, 2022 18:42
…t is printed in the warning. It now shows the amount of failures per test suite, as well as the total number of tests in those failing test suite. This should help interpret if 'a lot' of tests are failing, or if it is a neglible amount
@casparvl
Copy link
Contributor Author

casparvl commented Oct 6, 2022

With this change, wrappers are correctly created for clang in stage 2, and added to the PATH, as intended:

== 2022-10-05 19:11:41,580 filetools.py:525 INFO Command clang found at /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang
== 2022-10-05 19:11:41,642 filetools.py:1913 INFO Creating directory /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper (parents: True, set_gid: True, sticky: False)
== 2022-10-05 19:11:41,642 filetools.py:1765 INFO Adjusting permissions recursively for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers
== 2022-10-05 19:11:41,642 filetools.py:1795 DEBUG Current permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers: 0o40755
== 2022-10-05 19:11:41,643 filetools.py:1800 DEBUG Adding permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers: 0o2000
== 2022-10-05 19:11:41,643 filetools.py:1815 DEBUG Changing permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers to 0o42755
== 2022-10-05 19:11:41,643 filetools.py:1795 DEBUG Current permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper: 0o40755
== 2022-10-05 19:11:41,643 filetools.py:1800 DEBUG Adding permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper: 0o2000
== 2022-10-05 19:11:41,643 filetools.py:1815 DEBUG Changing permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper to 0o42755
== 2022-10-05 19:11:41,643 filetools.py:1765 INFO Adjusting permissions recursively for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang
== 2022-10-05 19:11:41,643 filetools.py:1795 DEBUG Current permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang: 0o100644
== 2022-10-05 19:11:41,643 filetools.py:1800 DEBUG Adding permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang: 0o100
== 2022-10-05 19:11:41,643 filetools.py:1815 DEBUG Changing permissions for /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang to 0o100744
== 2022-10-05 19:11:41,644 environment.py:91 INFO Environment variable PATH set to /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.bfd_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.gold_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/gfortran_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/gxx_wrapper:/scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/gcc_wrapper:...
== 2022-10-05 19:11:41,708 filetools.py:525 INFO Command clang++ found at /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clangxx_wrapper/clang++
== 2022-10-05 19:11:41,708 toolchain.py:1038 INFO RPATH wrapper script for /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang++: /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clangxx_wrapper/clang++ (log: /scratch-shared/casparl/eb-3yxjpped/rpath_wrapper_clang++.log)
== 2022-10-05 19:11:41,708 filetools.py:525 INFO Command ld found at /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld_wrapper/ld
== 2022-10-05 19:11:41,731 toolchain.py:1000 INFO /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld_wrapper/ld already seems to be an RPATH wrapper script, not wrapping it again!
== 2022-10-05 19:11:41,731 filetools.py:525 INFO Command ld.gold found at /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.gold_wrapper/ld.gold
== 2022-10-05 19:11:41,731 toolchain.py:1000 INFO /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.gold_wrapper/ld.gold already seems to be an RPATH wrapper script, not wrapping it again!
== 2022-10-05 19:11:41,732 filetools.py:525 INFO Command ld.bfd found at /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.bfd_wrapper/ld.bfd
== 2022-10-05 19:11:41,772 toolchain.py:1000 INFO /scratch-shared/casparl/eb-3yxjpped/tmpj8r43lvc/rpath_wrappers/ld.bfd_wrapper/ld.bfd already seems to be an RPATH wrapper script, not wrapping it again!
== 2022-10-05 19:11:41,772 clang.py:422 INFO Prepared clang rpath wrappers

Compiler identification by Cmake correctly points to the wrappers now:

-- The C compiler identification is Clang 12.0.1
-- The CXX compiler identification is Clang 12.0.1
-- The ASM compiler identification is GNU
-- Found assembler: /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clangxx_wrapper/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

However, I also see:

-- Performing Test C_SUPPORTS_FPIC
-- Performing Test C_SUPPORTS_FPIC - Failed
-- Performing Test CXX_SUPPORTS_FPIC
-- Performing Test CXX_SUPPORTS_FPIC - Failed
CMake Warning at cmake/modules/HandleLLVMOptions.cmake:261 (message):
  -fPIC is not supported.
Call Stack (most recent call first):
  cmake/modules/HandleLLVMOptions.cmake:297 (add_flag_or_print_warning)
  CMakeLists.txt:698 (include)

That seems weird... and indeed, this build resulted in an error:

[ 28%] Building CXX object lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o
cd /gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/lib/Testing/Support && /scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clangxx_wrapper/clang++ -DGTEST_HAS_
TR1_TUPLE=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/lib/Testing/Suppor
t -I/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm-12.0.1.src/lib/Testing/Support -I/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/include -I/gpfs/scratch1/
shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm-12.0.1.src/include -I/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm-12.0.1.src/utils/unittest/googletest/include -I/gpfs/scratch1/
shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm-12.0.1.src/utils/unittest/googlemock/include -isystem /sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/include -O2 -ftree-v
ectorize -O2 -mavx2 -fno-math-errno -fvisibility-inlines-hidden -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wno-noexcep
t-type -Wnon-virtual-dtor -Wsuggest-override -Wno-comment -O3  -UNDEBUG -Wno-suggest-override -std=c++14 -MD -MT lib/Testing/Support/CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o -MF CMakeFiles/
LLVMTestingSupport.dir/Error.cpp.o.d -o CMakeFiles/LLVMTestingSupport.dir/Error.cpp.o -c /gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm-12.0.1.src/lib/Testing/Support/Error.cpp
-- Performing Test LIBCXXABI_HAS_NODEFAULTLIBS_FLAG
make[2]: Leaving directory '/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2'
make[2]: Leaving directory '/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2'
make[2]: Leaving directory '/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2'
/sw/arch/Centos8/EB_production/2021/software/binutils/2.36.1-GCCcore-10.3.0/bin/ld: ../../../../lib/libLLVMSupport.a(Error.cpp.o): relocation R_X86_64_32 against symbol `_ZN4llvm9ErrorList2IDE'
can not be used when making a shared object; recompile with -fPIC
/sw/arch/Centos8/EB_production/2021/software/binutils/2.36.1-GCCcore-10.3.0/bin/ld: ../../../../lib/libLLVMSupport.a(ErrorHandling.cpp.o): relocation R_X86_64_32 against symbol `__pthread_key_cr
eate@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/sw/arch/Centos8/EB_production/2021/software/binutils/2.36.1-GCCcore-10.3.0/bin/ld: ../../../../lib/libLLVMSupport.a(ManagedStatic.cpp.o): relocation R_X86_64_32S against `.text' can not be used
 when making a shared object; recompile with -fPIC
...

As we can see, Error.cpp.o isn't compiled with -fPIC and that causes the relocation error.

Looking at the same configure (of stage 2) for a build that did not use the rpath wrappers:

-- The C compiler identification is Clang 12.0.1
-- The CXX compiler identification is Clang 12.0.1
-- The ASM compiler identification is GNU
-- Found assembler: /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
...
-- Performing Test C_SUPPORTS_FPIC
-- Performing Test C_SUPPORTS_FPIC - Success
-- Performing Test CXX_SUPPORTS_FPIC
-- Performing Test CXX_SUPPORTS_FPIC - Success
-- Building with -fPIC

This build succesfully completes (but then errors out in the RPATH sanity check, of course).

So... why does insertion of the rpath wrappers cause Cmake to think that -fPIC isn't supported?

@casparvl
Copy link
Contributor Author

casparvl commented Oct 6, 2022

Ah, clang gives a warning about unused arguments (for the linker) when 'just' compiling. For some reason, during the -fPIC test in the configure, this results in / is interpreted as an error:

# /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/CMakeFiles/CMakeError.log
...
Performing C SOURCE FILE Test C_SUPPORTS_FPIC failed with the following output:
Change Dir: /gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_0ab9f/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_0ab9f.dir/build.make CMakeFiles/cmTC_0ab9f.dir/build
gmake[1]: Entering directory '/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_0ab9f.dir/src.c.o
/scratch-shared/casparl/eb-3yxjpped/tmp27kqup02/rpath_wrappers/clang_wrapper/clang -DC_SUPPORTS_FPIC  -O2 -ftree-vectorize -O2 -mavx2 -fno-math-errno  -Werror=unguarded-availability-new   -Werror -fPIC -MD -MT CMakeFiles/cmTC_0ab9f.dir/src.c.o -MF CMakeFiles/cmTC_0ab9f.dir/src.c.o.d -o CMakeFiles/cmTC_0ab9f.dir/src.c.o -c /gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/CMakeFiles/CMakeTmp/src.c
clang-12: error: -Wl,--disable-new-dtags: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/CUDA/11.3.1/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/Z3/4.8.11-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/GMP/6.2.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/ncurses/6.2-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libxml2/2.9.10-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/hwloc/2.4.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libpciaccess/0.16-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/numactl/2.0.14-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/binutils/2.36.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/elfutils/0.185-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/zstd/1.4.9-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/lz4/1.9.3-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/Perl/5.32.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/DB/18.1.40-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/expat/2.2.9-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/Python/3.9.5-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libffi/3.3-GCCcore-10.3.0/lib64: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libffi/3.3-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/SQLite/3.35.4-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/Tcl/8.6.11-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libreadline/8.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/libarchive/3.5.1-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/XZ/5.2.5-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/cURL/7.76.0-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/OpenSSL/1.1/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/bzip2/1.0.8-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
clang-12: error: -Wl,-rpath=/sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/lib: 'linker' input unused [-Werror,-Wunused-command-line-argument]
gmake[1]: *** [CMakeFiles/cmTC_0ab9f.dir/build.make:79: CMakeFiles/cmTC_0ab9f.dir/src.c.o] Error 1
gmake[1]: Leaving directory '/gpfs/scratch1/shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:127: cmTC_0ab9f/fast] Error 2

I'm not sure why, but for some reason Cmake runs some configure tests with -Werror, which turns all warnings into errors. That's the thing that makes this fail. One possibility would be to make sure -Wno-unused-command-line-argument get's passed (and hopefully we can make that take priority over the -Wunused-command-line-argument).

Question is: who sets the -Wunused-command-line-argument? Is that default for all CMake builds? (I don't think so, or we would have seen it with normal gnu compilers + rpath too). Is it specific to the clang installation? (maybe...)

And then a follow up question: how should we prevent that? Can we prevent -Wunused-command-line-argument from being set in the first place, or should we set -Wno-unused-command-line-argument somewhere?

…us cmake configure tests to fail. The unused command line arguments are the -Wl,-rpath commands added by the RPATH wrapper. We suppress those by adding -Wnounused-command-line-argument
@casparvl
Copy link
Contributor Author

casparvl commented Oct 6, 2022

Adding -Wno-unused-command-line-argument to CFLAGS and CXXFLAGS resolves the configure issues that caused the -fPIC configure test to fail.

Now, however, we still hit a few issues at the end of the sanity check: one RPATH error, and several missing lib/libomptarget-nvptx-cuda_XX-sm_XX.bc files.

== 2022-10-07 01:12:37,633 easyblock.py:3464 WARNING RPATH sanity check failed!
== 2022-10-07 01:12:37,713 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/RHEL8/2022/software/EasyBuild/4.6.1/lib/python3.6/site-packages/easybuild/base/exceptions.py:124 in __init__): Sanity check failed: no file found at 'lib/libomptarget-nvptx-cuda_80-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_90-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_91-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_92-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_100-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_101-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_102-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_110-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_111-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
no file found at 'lib/libomptarget-nvptx-cuda_112-sm_80.bc' in /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0
One or more required libraries not found for /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0/lib/libomptarget.rtl.cuda.so:       linux-vdso.so.1 (0x00007ffe3f576000)
        libcuda.so.1 => not found
        libelf.so.1 => /sw/arch/Centos8/EB_production/2021/software/elfutils/0.185-GCCcore-10.3.0/lib64/libelf.so.1 (0x000014b65359d000)
        libstdc++.so.6 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libstdc++.so.6 (0x000014b6531d2000)
        libm.so.6 => /lib64/libm.so.6 (0x000014b652e50000)
        libgcc_s.so.1 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libgcc_s.so.1 (0x000014b653581000)
        libc.so.6 => /lib64/libc.so.6 (0x000014b652a8b000)
        /lib64/ld-linux-x86-64.so.2 (0x000014b6533b9000)
        libz.so.1 => /sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/lib/../lib64/libz.so.1 (0x000014b65355d000)

One or more required libraries not found for /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0/lib64/libomptarget.rtl.cuda.so:     linux-vdso.so.1 (0x000014864b8db000)
        libcuda.so.1 => not found
        libelf.so.1 => /sw/arch/Centos8/EB_production/2021/software/elfutils/0.185-GCCcore-10.3.0/lib64/libelf.so.1 (0x000014864b88f000)
        libstdc++.so.6 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libstdc++.so.6 (0x000014864b4ca000)
        libm.so.6 => /lib64/libm.so.6 (0x000014864b148000)
        libgcc_s.so.1 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libgcc_s.so.1 (0x000014864b873000)
        libc.so.6 => /lib64/libc.so.6 (0x000014864ad83000)
        /lib64/ld-linux-x86-64.so.2 (0x000014864b6b1000)
        libz.so.1 => /sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/lib/../lib64/libz.so.1 (0x000014864b84f000)
 (at easybuild/RHEL8/2022/software/EasyBuild/4.6.1/lib/python3.6/site-packages/easybuild/framework/easyblock.py:3471 in _sanity_check_step)

Clearly, libcuda should not be RPATH-ed, that would be wrong. The RPATH sanity check should have an exception for that. Not sure yet what causes the missing files though... Note that this build was done on a node without GPUs.

@boegel boegel added the bug fix label Oct 12, 2022
@boegel boegel added this to the 4.x milestone Oct 12, 2022
@boegel boegel changed the title Fix clang rpath [WIP] fix installing of Clang with RPATH linking [WIP] Oct 12, 2022
@casparvl
Copy link
Contributor Author

casparvl commented Oct 12, 2022

The missing files seem to be because llvm-link somehow isn't found:

-- LIBOMPTARGET: Not building NVPTX deviceRTL: llvm-link not found

which comes from here

It's a bit odd, because checking the PATH in the easybuild log file, it does contain

/scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/bin

Which in turn does contain llvm-link

ls /scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/bin/llvm-link
/scratch-shared/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.2/bin/llvm-link

Is something wrong with the Cmake logic in finding llvm-link on the PATH? But then why does no one else seem to be bothered by that? The problem might be here as it seems it is looking for llvm-link in a directory relative to the compiler_dir. My guess is that compiler_dir refers to the rpath wrapper now, instead of the real compiler, and that's why llvm-link isn't found. If that's the case, I have two options to resolve it:

  1. Specify -DLIBOMPTARGET_NVPTX_BC_LINKER to be the full path of the (stage 2) llvm-link
  2. Create a patch that inserts some extra logic after this to find llvm-link on the PATH. Then, add an additional ifelse here to use that resolved llvm-link.

The advantage of option 1 is that it is just a change to the configure line, and doesn't require messing with the source code. Probably, that makes it easier to maintain, so I'll try that first.

@casparvl
Copy link
Contributor Author

casparvl commented Oct 12, 2022

I can confirm that adding

        if build_option('rpath'):
            llvm_link = which('llvm-link')
            options += "-DLIBOMPTARGET_NVPTX_BC_LINKER=%s" % llvm_link

Resolves the issue of the missing *.bc files. I also see now in the configure:

-- LIBOMPTARGET: Building CUDA LLVM bitcode offloading device RTL.

As expected. The only remaining issue is

== 2022-10-12 13:53:54,035 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/RHEL8/2022/software/EasyBuild/4.6.1/lib/python3.6/site-packages/easybuild/base/exceptions.py:124 in __init__): Sanity check failed: One or more required libraries not found for /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0/lib/libomptarget.rtl.cuda.so:   linux-vdso.so.1 (0x00007fffb959f000)
        libcuda.so.1 => not found
        libelf.so.1 => /sw/arch/Centos8/EB_production/2021/software/elfutils/0.185-GCCcore-10.3.0/lib64/libelf.so.1 (0x0000152603766000)
        libstdc++.so.6 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libstdc++.so.6 (0x000015260339b000)
        libm.so.6 => /lib64/libm.so.6 (0x0000152603019000)
        libgcc_s.so.1 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libgcc_s.so.1 (0x000015260374a000)
        libc.so.6 => /lib64/libc.so.6 (0x0000152602c54000)
        /lib64/ld-linux-x86-64.so.2 (0x0000152603582000)
        libz.so.1 => /sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/lib/../lib64/libz.so.1 (0x0000152603726000)

One or more required libraries not found for /home/casparl/.local/easybuild/RHEL8/2022/software/Clang/12.0.1-GCCcore-10.3.0/lib64/libomptarget.rtl.cuda.so:     linux-vdso.so.1 (0x000014f10ef12000)
        libcuda.so.1 => not found
        libelf.so.1 => /sw/arch/Centos8/EB_production/2021/software/elfutils/0.185-GCCcore-10.3.0/lib64/libelf.so.1 (0x000014f10eec6000)
        libstdc++.so.6 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libstdc++.so.6 (0x000014f10eb01000)
        libm.so.6 => /lib64/libm.so.6 (0x000014f10e77f000)
        libgcc_s.so.1 => /home/casparl/.local/easybuild/Centos8/2021/software/GCCcore/10.3.0/lib64/libgcc_s.so.1 (0x000014f10eeaa000)
        libc.so.6 => /lib64/libc.so.6 (0x000014f10e3ba000)
        /lib64/ld-linux-x86-64.so.2 (0x000014f10ece8000)
        libz.so.1 => /sw/arch/Centos8/EB_production/2021/software/zlib/1.2.11-GCCcore-10.3.0/lib/../lib64/libz.so.1 (0x000014f10ee86000)
 (at easybuild/RHEL8/2022/software/EasyBuild/4.6.1/lib/python3.6/site-packages/easybuild/framework/easyblock.py:3471 in _sanity_check_step)

However, libcuda.so.1 is not supposed to be RPATH-ed by design: it's supposed to link to a stubs version of libcuda.so.1 at compile time, but run with the actual libcuda.so.1 provided by the driver at runtime. I'm surprised that this isn't yet an exception in the RPATH sanity check, but it should be...

…hen --rpath is used. Also, put more clear comments
@casparvl
Copy link
Contributor Author

casparvl commented Oct 13, 2022

snap

Removed test report failure because I forgot to include the framework change from easybuilders/easybuild-framework#4088

1 similar comment
@casparvl
Copy link
Contributor Author

casparvl commented Oct 13, 2022

snap

Removed test report failure because I forgot to include the framework change from easybuilders/easybuild-framework#4088

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-12.0.1-GCCcore-10.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
gcn2 - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/2326cd00dbd216e2836df85827724d3d for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
gcn2 - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/582c2b65de3e7d1bd43c4be9bc85868d for a full test report.

@casparvl casparvl changed the title fix installing of Clang with RPATH linking [WIP] fix installing of Clang with RPATH linking Oct 14, 2022
@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
software2.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz, 4 x NVIDIA NVIDIA TITAN V, 470.103.01, Python 3.7.3
See https://gist.github.com/4f864d82ca98e88ef6789d6f63c21605 for a full test report.

@casparvl
Copy link
Contributor Author

Hm, that error on software2 is not related to this EasyBlock change, it's another issue. Seems to have trouble with the fact that this is a multiarch linux and from some reason it isn't properly searching in /usr/include/x86_64-linux-gnu (where the 'missing' header is actually present). The only thing is, I'm not sure why it doesn't search there. Running the stage 1 build on a test file, it does seem to be included in the default search path:

/scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang -c file.cc -v
clang version 12.0.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin
Found candidate GCC installation: /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0
Selected GCC installation: /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
 (in-process)
 "/scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/bin/clang-12" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -main-file-name file.cc -mrelocation-model static -mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/lib/clang/12.0.1 -internal-isystem /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0 -internal-isystem /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0/x86_64-pc-linux-gnu -internal-isystem /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0/backward -internal-isystem /usr/local/include -internal-isystem /scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/lib/clang/12.0.1/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/casparl -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -o file.o -x c++ file.cc
clang -cc1 version 12.0.1 based upon LLVM 12.0.1 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0
 /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0/x86_64-pc-linux-gnu
 /sw/arch/Debian10/EB_production/2021/software/GCCcore/10.3.0/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0/backward
 /usr/local/include
 /scratch/casparl/Clang/12.0.1/GCCcore-10.3.0/llvm.obj.1/lib/clang/12.0.1/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list

Anyway, not something to resolve in this PR...

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
software2.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz, 4 x NVIDIA NVIDIA TITAN V, 470.103.01, Python 3.7.3
See https://gist.github.com/730b6951da46dc35084faf5909cb1298 for a full test report.

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

requested changes done in casparvl#3

easybuild/easyblocks/c/clang.py Outdated Show resolved Hide resolved
easybuild/easyblocks/c/clang.py Outdated Show resolved Hide resolved
easybuild/easyblocks/c/clang.py Outdated Show resolved Hide resolved
boegel and others added 2 commits October 26, 2022 10:58
always use full path to clang/clang++ in staged build, only restore $PATH, import Clang on top
@boegel
Copy link
Member

boegel commented Oct 27, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-9.0.1-GCCcore-9.3.0.eb
  • SUCCESS Clang-11.0.1-GCCcore-10.2.0.eb
  • SUCCESS Clang-12.0.1-GCCcore-11.2.0.eb
  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
node3145.skitty.os - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (skylake_avx512), Python 3.6.8
See https://gist.github.com/632ac1ec49544f037d6a203e108da438 for a full test report.

@boegel
Copy link
Member

boegel commented Oct 27, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb
  • SUCCESS Clang-12.0.1-GCCcore-10.3.0-CUDA-11.3.1.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
node3306.joltik.os - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz (cascadelake), 1 x NVIDIA Tesla V100-SXM2-32GB, 520.61.05, Python 3.6.8
See https://gist.github.com/784f963720d10fc4ae6850d0dd5a4425 for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
gcn3.local.snellius.surf.nl - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/90d3de3a7b4faa1d8143acd88f6f04a4 for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
r32n1.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz, 4 x NVIDIA NVIDIA GeForce GTX 1080 Ti, 470.103.01, Python 3.7.3
See https://gist.github.com/917a820d41ee2bbeade5b3e4835ae82f for a full test report.

@casparvl
Copy link
Contributor Author

casparvl commented Oct 31, 2022

@boegel you did not get failures, because you're actually not building with -rpath (at least, that's what I get from the test report)

Actually, you're PR casparvl#3 broke things again. To recap:

My original approach

  • Copy the original environment
  • Add the bin folder from the previous stage to the PATH
  • Call prepare_rpath_wrappers on a Clang toolchain instance (from easybuild.toolchains.compiler.clang)
  • Build the next stage
  • Restore the original PATH

*Your approach from casparvl#3 *

  • Store the original PATH
  • Call prepare_rpath_wrappers
  • Build next stage. This should pickup on the rpath wrapper, since that is added to the PATH by prepare_rpath_wrappers
  • Restore the PATH

The issue is that the call to prepare_rpath_wrappers will not put the wrappers in place if the original command is not found. From the logs of one of the two failing runs above:

== 2022-10-28 19:07:04,928 filetools.py:540 WARNING Could not find command 'clang' (with permissions to read/execute it) in $PATH (['/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/ld.bfd_wrapper', '/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/ld.gold_wrapper', '/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/ld_wrapper', '/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/gfortran_wrapper', '/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/gxx_wrapper', '/scratch-shared/casparl/eb-dgg7lo9f/tmp6lk6zlpi/rpath_wrappers/gcc_wrapper', '/sw/arch/RHEL8/EB_production/2022/software/elfutils/0.187-GCCcore-11.3.0/bin',  ...,  '/sw/arch/RHEL8/EB_production/2022/software/cURL/7.83.0-GCCcore-11.3.0/bin', '/sw/arch/RHEL8/EB_production/2022/software/OpenSSL/1.1/bin', '/sw/arch/RHEL8/EB_production/2022/software/bzip2/1.0.8-GCCcore-11.3.0/bin', '/sw/arch/RHEL8/EB_production/2022/software/GCCcore/11.3.0/bin', '/sw/noarch/RHEL8/2022/software/EasyBuild/4.6.2/bin', '/gpfs/admin/hpc/usertools', '/usr/hpc/bin', '/usr/lpp/mmfs/bin', '/home/casparl/bin', '/home/casparl/.local/bin', '/gpfs/admin/hpc/sw/hpc/bin', '/gpfs/admin/hpc/sw/hpc/sbin', '/usr/local/bin', '/usr/bin', '/usr/local/sbin', '/usr/sbin', '/sw/noarch/RHEL8/2022/software/eb/4.6.2/bin', '/usr/share/lmod/lmod/libexec'])

I'll revert your change, go back to my general approach as outlined above, but cherry pick some of the nice features of your change (e.g. selectively restore PATH instead of the full environment, pass options as a list).

Caspar van Leeuwen added 2 commits October 31, 2022 16:01
@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • **FAIL (unhandled exception: string indices must be integers)Traceback (most recent call last):
    File "/sw/noarch/RHEL8/2022/software/EasyBuild/4.6.2/lib/python3.6/site-packages/easybuild/main.py", line 127, in build_and_install_software
    (ec_res['success'], app_log, err) = build_and_install_one(ec, init_env)
    File "/sw/noarch/RHEL8/2022/software/EasyBuild/4.6.2/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 4076, in build_and_install_one
    result = app.run_all_steps(run_test_cases=run_test_cases)
    File "/sw/noarch/RHEL8/2022/software/EasyBuild/4.6.2/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 3959, in run_all_steps
    self.run_step(step_name, step_methods)
    File "/sw/noarch/RHEL8/2022/software/EasyBuild/4.6.2/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 3794, in run_step
    step_method(self)()
    File "/scratch-shared/casparl/included-easyblocks-4t7hajgn/easybuild/easyblocks/clang.py", line 485, in build_step
    self.build_with_prev_stage(self.llvm_obj_dir_stage1, self.llvm_obj_dir_stage2)
    File "/scratch-shared/casparl/included-easyblocks-4t7hajgn/easybuild/easyblocks/clang.py", line 414, in build_with_prev_stage
    setvar('PATH', prev_obj_path + ":" + orig_path['path'])
    TypeError: string indices must be integers
    ** Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 0 out of 1 (1 easyconfigs in total)
gcn1.local.snellius.surf.nl - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/b61cc570a1812589cd6c5f37419388f7 for a full test report.

…y-paste mistake from when I still used the full environment instead of just the PATH
@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
gcn1.local.snellius.surf.nl - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/25f984ed6880b6259e7fc3e4f08326ba for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
software2.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz, 4 x NVIDIA NVIDIA TITAN V, 470.103.01, Python 3.7.3
See https://gist.github.com/b76d9d59ef7a89904fd462a737feff85 for a full test report.

@boegel
Copy link
Member

boegel commented Nov 4, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-9.0.1-GCCcore-9.3.0.eb
  • SUCCESS Clang-11.0.1-GCCcore-10.2.0.eb
  • SUCCESS Clang-12.0.1-GCCcore-11.2.0.eb
  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
node3121.skitty.os - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (skylake_avx512), Python 3.6.8
See https://gist.github.com/0139bd8065a81f0d1696914f2625cfbe for a full test report.

edit: without --rpath

@boegel
Copy link
Member

boegel commented Nov 4, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-9.0.1-GCCcore-9.3.0.eb
  • SUCCESS Clang-11.0.1-GCCcore-10.2.0.eb
  • SUCCESS Clang-12.0.1-GCCcore-11.2.0.eb
  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
node3121.skitty.os - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (skylake_avx512), Python 3.6.8
See https://gist.github.com/fec2c1db0fce32e46b715ce5074bf651 for a full test report.

edit: with --rpath

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants