<div dir="auto">Hi Joachim, all,</div><div dir="auto">Thanks for the complete invocation options that help a lot; while I was thinking can’t we do this in one go? Even we start a clang build with GCC.</div><div dir="auto"><br></div><div dir="auto">I’m currently trying to use Clang module for the 2nd stage build the JURECA admins provide.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 17, 2021 at 22:06 Joachim Protze <<a href="mailto:protze.joachim@gmail.com">protze.joachim@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Itaru,<br>
<br>
to avoid issues with libstdc++ on systems with environment modules and<br>
all kind of software built with different compilers, I suggest to use<br>
libc++ for C++ code compiled with clang. As long as you don't mix<br>
gcc/clang with a binary or library and also don't pass C++ objects<br>
across libraries, mixing libc++ and libstdc++ in an application should<br>
be just fine.<br>
<br>
On Claix we compile clang in two steps:<br>
<br>
A minimal bootstrap build, compiled with system gcc.<br>
A full final build, compiled with the bootstrapped clang.<br>
<br>
mkdir -p "${BUILD_DIR_BOOTSTRAP}"<br>
cd "${BUILD_DIR_BOOTSTRAP}"<br>
cmake -DCMAKE_C_COMPILER=gcc \<br>
               -DCMAKE_CXX_COMPILER=g++ \<br>
               -DCMAKE_BUILD_TYPE=Release \<br>
               -DLLVM_TARGETS_TO_BUILD=Native \<br>
               "${SRC_DIR}/llvm" || exit 21<br>
make -j8 || exit 22<br>
<br>
export<br>
LD_LIBRARY_PATH="${BUILD_DIR_BOOTSTRAP}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"<br>
export PATH="${BUILD_DIR_BOOTSTRAP}/bin${PATH:+:${PATH}}"<br>
<br>
mkdir -p "${BUILD_DIR_FINAL}"<br>
cd "${BUILD_DIR_FINAL}"<br>
cmake -DCMAKE_C_COMPILER=clang \<br>
                -DCMAKE_CXX_COMPILER=clang++ \<br>
                -DCMAKE_BUILD_TYPE=Release \<br>
                -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \<br>
                -DLLVM_LIBDIR_SUFFIX=64 \<br>
                -DLLVM_INSTALL_UTILS=ON \<br>
                -DLLVM_ENABLE_LIBCXX=ON \<br>
                -DCLANG_DEFAULT_CXX_STDLIB=libc++ \<br>
                -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_60 \<br>
                -DLIBOMP_TSAN_SUPPORT=ON \<br>
                -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES="35;60;70" \<br>
                -DLIBOMPTARGET_NVPTX_AUTODETECT_COMPUTE_CAPABILITY=OFF \<br>
                -DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=true \<br>
                -DLIBOMPTARGET_ENABLE_DEBUG=on \<br>
                -DLLVM_BUILD_DOCS=ON \<br>
                -DLLVM_ENABLE_SPHINX=ON \<br>
                -DLLVM_ENABLE_PROJECTS=${LLVM_PROJECTS} \<br>
                -DLLVM_ENABLE_RUNTIMES=${LLVM_RUNTIMES} \<br>
                -DSPHINX_WARNINGS_AS_ERRORS=OFF \<br>
                -DSPHINX_OUTPUT_HTML=OFF \<br>
                -DSPHINX_OUTPUT_MAN=ON \<br>
                "${SRC_DIR}/llvm" || exit 31<br>
make -j8 || exit 32<br>
make -j8 install || exit 33<br>
<br>
Best<br>
Joachim<br>
<br>
<br>
Am 17.06.21 um 07:00 schrieb Itaru Kitayama via Openmp-dev:<br>
> Following up on myself's post; as of today's main again fails to<br>
> build; do you guys prefer the logs posted at bugzilla rather than the<br>
> list?<br>
> <br>
> On Thu, Jun 17, 2021 at 12:04 PM Itaru Kitayama<br>
> <<a href="mailto:itaru.kitayama@gmail.com" target="_blank">itaru.kitayama@gmail.com</a>> wrote:<br>
>><br>
>> Hi Jon,<br>
>> Thanks for taking a look at the logs. By adding the<br>
>> `-DGCC_INSTALL_PREFIX=/p/software/jurecadc/stages/2020/software/GCCcore/9.3.0/`<br>
>> ,<br>
>> I was able to (CMake) configure and do a Ninja build using<br>
>> `-DLLVM_ENABLE_RUNTIMES="openmp"`. And yes, while I'm on JSC's JURECA<br>
>> I use<br>
>> Environmental Modules.<br>
>><br>
>> On Wed, Jun 16, 2021 at 9:14 PM Jon Chesterfield via Openmp-dev<br>
>> <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> wrote:<br>
>>>><br>
>>>> Hi,<br>
>>>> I am configuring a openmp runtime build this way:<br>
>>>><br>
>>>>  cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \<br>
>>>>         -DCMAKE_INSTALL_PREFIX=$PROJECT/kitayama1/dev/clang \<br>
>>>>         -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_80 \<br>
>>>>         -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=80 \<br>
>>>>         -DCMAKE_C_COMPILER=clang \<br>
>>>>         -DCMAKE_CXX_COMPILER=clang++ \<br>
>>>>         -DLLVM_ENABLE_RUNTIMES="openmp" \<br>
>>>>         $SCRATCH/kitayama1/projects/llvm-project/llvm<br>
>>>><br>
>>>><br>
>>>><br>
>>>> ... however I see a build error:<br>
>>>><br>
>>>> ... CCcore-9.3.0/bin/ld:<br>
>>>> undefined reference to `std::_Sp_make_shared_tag::_S_eq(std::type_info<br>
>>>> const&)<br>
>>><br>
>>><br>
>>> Cmake invocation looks fine. It appears the static llvm libraries linked have been built with incompatible c++ flags to the other libraries found on your system.<br>
>>><br>
>>> A few options come to mind. You could pass the flags to disable zlib et al, search for what compiler flag (or maybe libc++ version) corresponds to that symbol and pass the options to the llvm build, or look up how the other libraries were built and change that.<br>
>>><br>
>>> Clang builds are probably tested against the libraries that ship with Linux distributions. The paths in your error message suggest you're using some other source for them. Maybe a HPC module system of some sort? Can't see how to debug that from the outside. Maybe contact whoever set up the zlib etc builds.<br>
>>><br>
>>> Jon<br>
>>><br>
>>> _______________________________________________<br>
>>> Openmp-dev mailing list<br>
>>> <a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>
>>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br>
> _______________________________________________<br>
> Openmp-dev mailing list<br>
> <a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br>
> <br>
<br>
</blockquote></div></div>