[COPY] --- T2-COPYRIGHT-BEGIN --- [COPY] t2/package/*/clang/clang.desc [COPY] Copyright (C) 2008 - 2025 The T2 SDE Project [COPY] SPDX-License-Identifier: GPL-2.0 [COPY] --- T2-COPYRIGHT-END --- [I] C language family frontend for LLVM [T] The Clang project provides a language front-end and tooling infrastructure [T] for languages in the C language family (C, C++, Objective C/C++, OpenCL, [T] CUDA, and RenderScript) for the LLVM project. [U] https://clang.llvm.org/ [A] University of Illinois/NCSA [A] Chris Lattner [M] Rene Rebe [C] base/system [F] OBJDIR CROSS CC CXX KCC NO-LTO.gcc LATOMIC.arch32 # sparc(32) (Threading.cpp.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1' [R] - alpha arc avr32 blackfin ia64 m68k microblaze nios2 openrisc sparc [L] BSD [S] Stable [V] 20.1.7 [P] X 01---5---9 105.000 [CV-GROUP] llvmorg [D] 2cbef6ccb36a3bc539b89eb52e9428cbe7a634cdd4f4560daa32faec clang-20.1.7.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.7/ [D] a6be301875d229bd52cbfe137a4da6b0ddffc148c81a3e72afcd8bc3 clang-tools-extra-20.1.7.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.7/ [D] 5f9e30ade9be1bec7bb9f71d8e284332a8d4f459e477580dec4c109b llvm-cmake-20.1.7.src.tar.xz !https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.7/cmake-20.1.7.src.tar.xz #var_append cmakeopt -DPACKAGE_VENDOR=T2SDE #var_append cmakeopt -DCLANG_VENDOR=T2SDE cmake_mod() { tar $taropt `match_source_file -p cmake` mv -vf cmake-*src ../cmake } hook_add prepatch 5 cmake_mod extra_tools() { tar $taropt `match_source_file -p extra` ln -s clang-tools-extra{-*,} } hook_add prepatch 5 extra_tools [ $arch = powerpc -o "$SDECFG_POWERPC64_32" = 1 ] && var_append patchfiles ' ' $confdir/no-clang-tidy.diff # currently clang uses the default target from llvm #var_append cmakeopt ' ' -DCLANG_DEFAULT_TARGET_TRIPLE=$arch_target [ $SDECFG_DEFAULT_CC = 'clang' ] && ! pkginstalled gcc && var_append cmakeopt ' ' \ "-DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind" clang_postmake() { # force a tools rebuild rm -fv $base/build/$SDECFG_ID/TOOLCHAIN/$toolsdir/.lastupdate # create various symlinks for cc, c++, cpp and f77 if atstage toolchain; then # TODO: or probably better program name transform? ln -sfv clang $root/$prefix/bin/${arch_target}-clang ln -sfv clang++ $root/$prefix/bin/${arch_target}-clang++ for x in $([ "$SDECFG_DEFAULT_CC" = clang ] && echo cc [ "$SDECFG_DEFAULT_CXX" = clang ] && echo c++ [ "$SDECFG_DEFAULT_KCC" = clang ] && echo kcc); do [ $x != c++ ] && ln -svf ${arch_target}-clang $root/$prefix/bin/${arch_target}-$x || ln -svf ${arch_target}-clang++ $root/$prefix/bin/${arch_target}-$x done # install some internal helper tools for cross bootstrap [ -e bin/clang-tidy-confusable-chars-gen ] && install bin/clang-tidy-confusable-chars-gen $root$bindir/ install bin/clang-tblgen $root$bindir/ return fi # TODO: cpp? for x in $([ "$SDECFG_DEFAULT_CC" = clang ] && echo cc [ "$SDECFG_DEFAULT_CXX" = clang ] && echo c++ [ "$SDECFG_DEFAULT_KCC" = clang ] && echo kcc); do [ $x != c++ ] && ln -svf clang $root/$prefix/bin/$x || ln -svf clang++ $root/$prefix/bin/$x done } hook_add postmake 5 "clang_postmake" if atstage toolchain; then var_append cmakeopt ' ' -DDEFAULT_SYSROOT=$sysroot elif atstage cross; then var_append cmakeopt ' ' -DCLANG_TABLEGEN=$root/TOOLCHAIN/$toolsdir/bin/clang-tblgen var_append cmakeopt ' ' -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=$root/TOOLCHAIN/$toolsdir/bin/clang-tidy-confusable-chars-gen var_append cmakeopt ' ' -DCLANG_PSEUDO_GEN=$root/TOOLCHAIN/$toolsdir/bin/clang-pseudo-gen var_append cmakeopt ' ' -DLLVM_MAIN_INCLUDE_DIR=$root$includedir #var_append cmakeopt ' ' -DLLVM_LIBRARY_DIR=$root$libdir var_append GCC_WRAPPER_REMOVE ' ' -L$sysroot/TOOLCHAIN/cross/lib var_append GCC_WRAPPER_FILTER '|' "sed 's,$root/TOOLCHAIN.*libLLVM\(.*\)\.[as].*,-lLLVM\1,g'" var_append GCC_WRAPPER_FILTER '|' "sed 's,^/lib64/libcurses.so,-lcurses,'" var_append GCC_WRAPPER_FILTER '|' "sed 's,$root/lib64/libcurses.so,-lcurses,'" fi # rencent clang uses llvm-config suffix, but we need it for cross builds anyway [ "${libdir##*/lib}" ] && var_append cmakeopt ' ' "-DLLVM_LIBDIR_SUFFIX=${libdir##*/lib}" var_append cmakeopt ' ' "-DLIBCLANG_BUILD_STATIC=OFF -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=OFF"