[Openmp-dev] Build error

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Thu Jun 17 16:36:12 PDT 2021


Hi Joachim, all,
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.

I’m currently trying to use Clang module for the 2nd stage build the JURECA
admins provide.

On Thu, Jun 17, 2021 at 22:06 Joachim Protze <protze.joachim at gmail.com>
wrote:

> Hi Itaru,
>
> to avoid issues with libstdc++ on systems with environment modules and
> all kind of software built with different compilers, I suggest to use
> libc++ for C++ code compiled with clang. As long as you don't mix
> gcc/clang with a binary or library and also don't pass C++ objects
> across libraries, mixing libc++ and libstdc++ in an application should
> be just fine.
>
> On Claix we compile clang in two steps:
>
> A minimal bootstrap build, compiled with system gcc.
> A full final build, compiled with the bootstrapped clang.
>
> mkdir -p "${BUILD_DIR_BOOTSTRAP}"
> cd "${BUILD_DIR_BOOTSTRAP}"
> cmake -DCMAKE_C_COMPILER=gcc \
>                -DCMAKE_CXX_COMPILER=g++ \
>                -DCMAKE_BUILD_TYPE=Release \
>                -DLLVM_TARGETS_TO_BUILD=Native \
>                "${SRC_DIR}/llvm" || exit 21
> make -j8 || exit 22
>
> export
>
> LD_LIBRARY_PATH="${BUILD_DIR_BOOTSTRAP}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
> export PATH="${BUILD_DIR_BOOTSTRAP}/bin${PATH:+:${PATH}}"
>
> mkdir -p "${BUILD_DIR_FINAL}"
> cd "${BUILD_DIR_FINAL}"
> cmake -DCMAKE_C_COMPILER=clang \
>                 -DCMAKE_CXX_COMPILER=clang++ \
>                 -DCMAKE_BUILD_TYPE=Release \
>                 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
>                 -DLLVM_LIBDIR_SUFFIX=64 \
>                 -DLLVM_INSTALL_UTILS=ON \
>                 -DLLVM_ENABLE_LIBCXX=ON \
>                 -DCLANG_DEFAULT_CXX_STDLIB=libc++ \
>                 -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_60 \
>                 -DLIBOMP_TSAN_SUPPORT=ON \
>                 -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES="35;60;70" \
>                 -DLIBOMPTARGET_NVPTX_AUTODETECT_COMPUTE_CAPABILITY=OFF \
>                 -DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=true \
>                 -DLIBOMPTARGET_ENABLE_DEBUG=on \
>                 -DLLVM_BUILD_DOCS=ON \
>                 -DLLVM_ENABLE_SPHINX=ON \
>                 -DLLVM_ENABLE_PROJECTS=${LLVM_PROJECTS} \
>                 -DLLVM_ENABLE_RUNTIMES=${LLVM_RUNTIMES} \
>                 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
>                 -DSPHINX_OUTPUT_HTML=OFF \
>                 -DSPHINX_OUTPUT_MAN=ON \
>                 "${SRC_DIR}/llvm" || exit 31
> make -j8 || exit 32
> make -j8 install || exit 33
>
> Best
> Joachim
>
>
> Am 17.06.21 um 07:00 schrieb Itaru Kitayama via Openmp-dev:
> > Following up on myself's post; as of today's main again fails to
> > build; do you guys prefer the logs posted at bugzilla rather than the
> > list?
> >
> > On Thu, Jun 17, 2021 at 12:04 PM Itaru Kitayama
> > <itaru.kitayama at gmail.com> wrote:
> >>
> >> Hi Jon,
> >> Thanks for taking a look at the logs. By adding the
> >>
> `-DGCC_INSTALL_PREFIX=/p/software/jurecadc/stages/2020/software/GCCcore/9.3.0/`
> >> ,
> >> I was able to (CMake) configure and do a Ninja build using
> >> `-DLLVM_ENABLE_RUNTIMES="openmp"`. And yes, while I'm on JSC's JURECA
> >> I use
> >> Environmental Modules.
> >>
> >> On Wed, Jun 16, 2021 at 9:14 PM Jon Chesterfield via Openmp-dev
> >> <openmp-dev at lists.llvm.org> wrote:
> >>>>
> >>>> Hi,
> >>>> I am configuring a openmp runtime build this way:
> >>>>
> >>>>  cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
> >>>>         -DCMAKE_INSTALL_PREFIX=$PROJECT/kitayama1/dev/clang \
> >>>>         -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_80 \
> >>>>         -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=80 \
> >>>>         -DCMAKE_C_COMPILER=clang \
> >>>>         -DCMAKE_CXX_COMPILER=clang++ \
> >>>>         -DLLVM_ENABLE_RUNTIMES="openmp" \
> >>>>         $SCRATCH/kitayama1/projects/llvm-project/llvm
> >>>>
> >>>>
> >>>>
> >>>> ... however I see a build error:
> >>>>
> >>>> ... CCcore-9.3.0/bin/ld:
> >>>> undefined reference to `std::_Sp_make_shared_tag::_S_eq(std::type_info
> >>>> const&)
> >>>
> >>>
> >>> 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.
> >>>
> >>> 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.
> >>>
> >>> 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.
> >>>
> >>> Jon
> >>>
> >>> _______________________________________________
> >>> Openmp-dev mailing list
> >>> Openmp-dev at lists.llvm.org
> >>> https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
> > _______________________________________________
> > Openmp-dev mailing list
> > Openmp-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20210618/262c19bc/attachment.html>


More information about the Openmp-dev mailing list