From 7cdc230154c504379f0da304901ce2795bf3de46 Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Fri, 9 Feb 2024 09:20:48 -0500 Subject: [PATCH] llvm17: fixup and refactor --- srcpkgs/clang17-headers | 1 + srcpkgs/llvm17-cross-tools | 1 + srcpkgs/llvm17/template | 93 +++++++++++++++++++++----------------- 3 files changed, 54 insertions(+), 41 deletions(-) create mode 120000 srcpkgs/clang17-headers create mode 120000 srcpkgs/llvm17-cross-tools diff --git a/srcpkgs/clang17-headers b/srcpkgs/clang17-headers new file mode 120000 index 0000000000000..96970d5c02c13 --- /dev/null +++ b/srcpkgs/clang17-headers @@ -0,0 +1 @@ +llvm17 \ No newline at end of file diff --git a/srcpkgs/llvm17-cross-tools b/srcpkgs/llvm17-cross-tools new file mode 120000 index 0000000000000..96970d5c02c13 --- /dev/null +++ b/srcpkgs/llvm17-cross-tools @@ -0,0 +1 @@ +llvm17 \ No newline at end of file diff --git a/srcpkgs/llvm17/template b/srcpkgs/llvm17/template index 7bc22ec50272e..a14f6302f9c04 100644 --- a/srcpkgs/llvm17/template +++ b/srcpkgs/llvm17/template @@ -1,7 +1,7 @@ # Template file for 'llvm17' pkgname=llvm17 version=17.0.6 -revision=1 +revision=2 build_wrksrc=llvm build_style=cmake _ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so" @@ -64,7 +64,7 @@ fi if [ "$build_option_clang" ]; then _enabled_projects+="clang;" - subpackages+=" clang17 clang17-devel libclang17 libclang-cpp17 clang-analyzer17 " + subpackages+=" clang17 clang17-headers clang17-devel libclang17 libclang-cpp17 clang-analyzer17 " fi if [ "$build_option_clang_tools_extra" ]; then _enabled_projects+="clang-tools-extra;" @@ -100,11 +100,12 @@ if [ "$build_option_openmp" ]; then _enabled_projects+="openmp;" subpackages+=" libomp libomp-devel " fi -subpackages+=" llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel libcxxabi libcxxabi-devel libllvm17 llvm17-doc llvm17-devel " +subpackages+=" llvm-libunwind llvm-libunwind-devel libcxx libcxx-devel libcxxabi libcxxabi-devel libllvm17 llvm17-doc llvm17-devel" configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}" if [ "$CROSS_BUILD" ]; then + hostmakedepends+=" llvm17-cross-tools " # Seems to require a full host llvm/clang build configure_args+=" -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF" configure_args+=" -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF" @@ -113,6 +114,7 @@ fi # For OCaml bindings and lldb lua scripting if [ -z "$CROSS_BUILD" ]; then + subpackages+=" llvm17-cross-tools" # OCaml cross build is broken hostmakedepends+=" ocaml ocaml-findlib " # lldb cross build fails with lua @@ -170,37 +172,16 @@ pre_configure() { esac if [ "$CROSS_BUILD" ]; then - msg_normal "Building host tblgen\n" - mkdir -p build/HOST - cd build/HOST - CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \ - CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \ - cmake ../.. -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_PROJECTS=${_enabled_projects} - - make ${makejobs} -C utils/TableGen - configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen" - - make ${makejobs} -C tools/clang/utils/TableGen - configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen" - - make ${makejobs} -C tools/mlir/tools/mlir-pdll - configure_args+=" -DMLIR_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/mlir-tblgen" - configure_args+=" -DMLIR_PDLL_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/mlir-pdll" - configure_args+=" -DMLIR_LINALG_ODS_YAML_GEN=${wrksrc}/llvm/build/HOST/bin/mlir-linalg-ods-yaml-gen" - - make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable - configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen" - make ${makejobs} -C tools/clang/tools/extra/pseudo/gen - configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen" - - make ${makejobs} -C tools/llvm-config - configure_args+=" -DLLVM_CONFIG_PATH=${wrksrc}/llvm/build/HOST/bin/llvm-config" - - make ${makejobs} -C tools/lldb/utils/TableGen lldb-tblgen - configure_args+=" -DLLDB_TABLEGEN_EXE=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen" - - cd ../.. + configure_args+=" -DLLVM_NATIVE_TOOL_DIR=/usr/bin" + configure_args+=" -DLLVM_TABLEGEN=/usr/bin/llvm-tblgen" + configure_args+=" -DCLANG_TABLEGEN=/usr/bin/clang-tblgen" + configure_args+=" -DMLIR_TABLEGEN=/usr/bin/mlir-tblgen" + configure_args+=" -DMLIR_PDLL_TABLEGEN=/usr/bin/mlir-pdll" + configure_args+=" -DMLIR_LINALG_ODS_YAML_GEN=/usr/bin/mlir-linalg-ods-yaml-gen" + configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=/usr/bin/clang-tidy-confusable-chars-gen" + configure_args+=" -DCLANG_PSEUDO_GEN=/usr/bin/clang-pseudo-gen" + configure_args+=" -DLLVM_CONFIG_PATH=/usr/bin/llvm-config" + configure_args+=" -DLLDB_TABLEGEN_EXE=/usr/bin/lldb-tblgen" fi case "$XBPS_TARGET_MACHINE" in @@ -238,6 +219,13 @@ post_build() { -DSPHINX_WARNINGS_AS_ERRORS=OFF ninja ${makejobs} -C ${wrksrc}/${build_wrksrc}/runtimes-doc docs-libcxx-html docs-libunwind-html + + if [ -z "$CROSS_BUILD" ]; then + vmkdir usr/bin + vcopy build/bin/lldb-tblgen usr/bin + vcopy build/bin/clang-tidy-confusable-chars-gen usr/bin + vcopy build/bin/clang-pseudo-gen usr/bin + fi } post_install() { @@ -280,7 +268,7 @@ post_install() { clang17_package() { lib32disabled=yes depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel - libclang17-${version}_${revision} " + llvm17-${version}_${revision} " short_desc+=" - C language family frontend" homepage="https://clang.llvm.org/" pkg_install() { @@ -313,16 +301,27 @@ clang17_package() { } } +clang17-headers_package() { + lib32disabled=yes + short_desc+=" - C language family frontend - Headers" + homepage="https://clang.llvm.org/" + pkg_install() { + vmove usr/lib/clang + } +} + clang17-devel_package() { lib32disabled=yes depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel - libclang17-${version}_${revision}" + clang17-${version}_${revision} clang-analyzer17-${version}_${revision}" + if [ "$build_option_clang_tools_extra" ]; then + depends+=" clang-tools-extra17-${version}_${revision}" + fi short_desc+=" - C language family frontend - development Files" homepage="https://clang.llvm.org/" pkg_install() { vmove usr/include/clang vmove usr/include/clang-c - vmove usr/lib/clang vmove usr/lib/libear vmove usr/lib/cmake/clang vmove "usr/lib/libclang*.a" @@ -343,6 +342,7 @@ clang17-devel_package() { } libclang17_package() { + depends="clang17-headers-${version}_${revision}" short_desc+=" - C frontend runtime library" pkg_install() { vmove "usr/lib/libclang.so.*" @@ -350,6 +350,7 @@ libclang17_package() { } libclang-cpp17_package() { + depends="clang17-headers-${version}_${revision}" short_desc+=" - C frontend runtime library (C++ interface)" pkg_install() { vmove "usr/lib/libclang-cpp.so.*" @@ -637,7 +638,7 @@ libllvm17_package() { } llvm17-doc_package() { - short_desc+=" - documentation " + short_desc+=" - documentation" pkg_install() { vmove usr/share/doc } @@ -647,13 +648,13 @@ llvm17-devel_package() { short_desc+=" - development files" depends="llvm17>=${version}_${revision}" if [ "$build_option_openmp" ]; then - depends+=" libomp-devel>={$version}_${revision} " + depends+=" libomp-devel>=${version}_${revision} " fi if [ "$build_option_mlir" ]; then - depends+=" mlir17-devel>={$version}_${revision} " + depends+=" mlir17-devel>=${version}_${revision} " fi if [ "$build_option_clang" ]; then - depends+=" clang17-devel>={$version}_${revision} " + depends+=" clang17-devel>=${version}_${revision} " fi pkg_install() { vmove usr/lib/libLLVM.so @@ -666,3 +667,13 @@ llvm17-devel_package() { } } + +llvm17-cross-tools_package() { + short_desc+=" - build tools for cross compiling LLVM" + depends="lldb17-devel>=${version}_${revision} llvm17-devel>=${version}_${revision}" + pkg_install() { + vmove usr/bin/lldb-tblgen + vmove usr/bin/clang-tidy-confusable-chars-gen + vmove usr/bin/clang-pseudo-gen + } +}