From ecbcb0292b5f73c3d1073172aa7848d6688934a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A5=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D0=BE=D0=B2?= Date: Sat, 22 Nov 2025 17:11:46 +0300 Subject: [PATCH] =?UTF-8?q?lib32-llvm18=20=D0=B8=20lib32-mesa:=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B0=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=84=D0=BB=D0=B8=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lib32-llvm18: - Устанавливает библиотеки в /usr/lib (32-бит) - Собирает llvm-config как llvm-config-18-32 в /usr/bin - Удалены все другие бинарники для избежания конфликтов с 64-бит llvm18 - Удалены заголовки (Mesa использует системные) - Добавлен CMAKE_INSTALL_LIBDIR=lib для установки в /usr/lib - Включен LLVM_BUILD_TOOLS=ON для сборки llvm-config lib32-mesa: - Возврат к использованию lib32-llvm18 - LLVM_CONFIG указывает на /usr/bin/llvm-config-18-32 Теперь 32-битный и 64-битный LLVM могут сосуществовать: - 64-бит: /usr/lib64/libLLVM*.so, /usr/bin/llvm-config-18 - 32-бит: /usr/lib/libLLVM*.so, /usr/bin/llvm-config-18-32 --- lib32-llvm18/alr.sh | 52 +++++++++++++++++++-------------------------- lib32-mesa/alr.sh | 9 ++++---- 2 files changed, 26 insertions(+), 35 deletions(-) diff --git a/lib32-llvm18/alr.sh b/lib32-llvm18/alr.sh index 40fbb8f..8c16a99 100644 --- a/lib32-llvm18/alr.sh +++ b/lib32-llvm18/alr.sh @@ -1,6 +1,6 @@ name='lib32-llvm18' version='18.1.8' -release='7' +release='8' desc='32-bit LLVM libraries for Mesa' desc_ru='32-битные библиотеки LLVM для Mesa' homepage='https://llvm.org/' @@ -67,6 +67,7 @@ build() { cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_C_FLAGS="-m32" \ -DCMAKE_CXX_FLAGS="-m32" \ -DLLVM_LIBDIR_SUFFIX="" \ @@ -76,7 +77,8 @@ build() { -DLLVM_ENABLE_PROJECTS="" \ -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_BUILD_TOOLS=OFF \ + -DLLVM_BUILD_TOOLS=ON \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \ -DLLVM_BUILD_UTILS=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ @@ -101,51 +103,41 @@ package() { echo "==> Installing LLVM (32-bit) libraries..." DESTDIR="$pkgdir" cmake --install build - # Keep llvm-config but rename it for 32-bit - if [ -d "$pkgdir/usr/bin" ]; then - mkdir -p "$pkgdir/usr/bin" - if [ -f "$pkgdir/usr/bin/llvm-config" ]; then - mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/bin/llvm-config-18-32" - fi - # Remove other executables - find "$pkgdir/usr/bin" -type f ! -name "llvm-config-18-32" -delete - rmdir "$pkgdir/usr/bin" 2>/dev/null || true + # Rename llvm-config to llvm-config-18-32 + if [ -f "$pkgdir/usr/bin/llvm-config" ]; then + mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/bin/llvm-config-18-32" fi + + # Remove all other binaries to avoid conflicts + find "$pkgdir/usr/bin" -type f ! -name "llvm-config-18-32" -delete 2>/dev/null || true + + # Remove man pages and documentation rm -rf "$pkgdir/usr/share/man" rm -rf "$pkgdir/usr/share/opt-viewer" + rm -rf "$pkgdir/usr/share/doc" - # Move libraries to /usr/lib (32-bit location) + # Libraries should already be in /usr/lib due to CMAKE_INSTALL_LIBDIR=lib + # But check if any ended up in lib64 and move them if [ -d "$pkgdir/usr/lib64" ]; then mkdir -p "$pkgdir/usr/lib" mv "$pkgdir/usr/lib64"/* "$pkgdir/usr/lib/" 2>/dev/null || true rmdir "$pkgdir/usr/lib64" fi - # Remove static libraries to avoid conflicts with system llvm-static.i686 - echo "==> Removing static libraries (.a files)..." + # Remove static libraries to save space and avoid conflicts + echo "==> Removing static libraries..." find "$pkgdir/usr/lib" -name "*.a" -delete - # Remove conflicting shared libraries (keep only LLVM-*.so) - echo "==> Removing conflicting shared libraries..." - rm -f "$pkgdir/usr/lib/libLTO.so"* - rm -f "$pkgdir/usr/lib/libRemarks.so"* - rm -f "$pkgdir/usr/lib/LLVMgold.so" - rm -rf "$pkgdir/usr/lib/bfd-plugins" + # Remove cmake files that might conflict + rm -rf "$pkgdir/usr/lib/cmake" - # Keep only essential headers for Mesa compilation - # Remove conflicting includes - if [ -d "$pkgdir/usr/include" ]; then - mkdir -p "$pkgdir/usr/include/llvm-32" - mv "$pkgdir/usr/include/llvm" "$pkgdir/usr/include/llvm-32/" 2>/dev/null || true - mv "$pkgdir/usr/include/llvm-c" "$pkgdir/usr/include/llvm-32/" 2>/dev/null || true - # Remove other includes that conflict - rm -rf "$pkgdir/usr/include"/*.h - fi + # Remove includes to avoid conflicts - Mesa will use system headers + rm -rf "$pkgdir/usr/include" # Install license install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$name/LICENSE.TXT" - echo "==> LLVM ${version} (32-bit) libraries installed" + echo "==> LLVM ${version} (32-bit) installed: libraries in /usr/lib, llvm-config-18-32 in /usr/bin" } files() { diff --git a/lib32-mesa/alr.sh b/lib32-mesa/alr.sh index 79dc606..b49d25c 100644 --- a/lib32-mesa/alr.sh +++ b/lib32-mesa/alr.sh @@ -1,6 +1,6 @@ name='lib32-mesa' version='25.2.6' -release='9' +release='10' epoch='1' desc='Open-source OpenGL and Vulkan drivers (32-bit) with AMD RDNA 4 support for gaming' desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом с поддержкой AMD RDNA 4 для игр' @@ -81,7 +81,7 @@ deps_redos=( 'zlib(x86-32)' 'libzstd(x86-32)' 'vulkan-loader(x86-32)' - 'llvm18-libs(x86-32)' + 'lib32-llvm18' 'lib32-lm_sensors' ) @@ -131,8 +131,7 @@ build_deps=( 'libpng-devel(x86-32)' 'vulkan-headers' 'vulkan-loader-devel(x86-32)' - 'llvm18(x86-32)' - 'llvm18-devel(x86-32)' + 'lib32-llvm18' ) build_deps_redos=("${build_deps[@]}") @@ -183,7 +182,7 @@ build() { # Set environment for 32-bit build export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" - export LLVM_CONFIG="/usr/lib/llvm18/bin/llvm-config" + export LLVM_CONFIG="/usr/bin/llvm-config-18-32" # 32-bit CFLAGS/CXXFLAGS export CFLAGS="-m32 -O2 -g1"