lib32-llvm18 и lib32-mesa: правильная структура без конфликтов
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
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
name='lib32-llvm18'
|
name='lib32-llvm18'
|
||||||
version='18.1.8'
|
version='18.1.8'
|
||||||
release='7'
|
release='8'
|
||||||
desc='32-bit LLVM libraries for Mesa'
|
desc='32-bit LLVM libraries for Mesa'
|
||||||
desc_ru='32-битные библиотеки LLVM для Mesa'
|
desc_ru='32-битные библиотеки LLVM для Mesa'
|
||||||
homepage='https://llvm.org/'
|
homepage='https://llvm.org/'
|
||||||
@@ -67,6 +67,7 @@ build() {
|
|||||||
cmake -B build -G Ninja \
|
cmake -B build -G Ninja \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||||
-DCMAKE_C_FLAGS="-m32" \
|
-DCMAKE_C_FLAGS="-m32" \
|
||||||
-DCMAKE_CXX_FLAGS="-m32" \
|
-DCMAKE_CXX_FLAGS="-m32" \
|
||||||
-DLLVM_LIBDIR_SUFFIX="" \
|
-DLLVM_LIBDIR_SUFFIX="" \
|
||||||
@@ -76,7 +77,8 @@ build() {
|
|||||||
-DLLVM_ENABLE_PROJECTS="" \
|
-DLLVM_ENABLE_PROJECTS="" \
|
||||||
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||||
-DLLVM_LINK_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_BUILD_UTILS=OFF \
|
||||||
-DLLVM_INCLUDE_TESTS=OFF \
|
-DLLVM_INCLUDE_TESTS=OFF \
|
||||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||||
@@ -101,51 +103,41 @@ package() {
|
|||||||
echo "==> Installing LLVM (32-bit) libraries..."
|
echo "==> Installing LLVM (32-bit) libraries..."
|
||||||
DESTDIR="$pkgdir" cmake --install build
|
DESTDIR="$pkgdir" cmake --install build
|
||||||
|
|
||||||
# Keep llvm-config but rename it for 32-bit
|
# Rename llvm-config to llvm-config-18-32
|
||||||
if [ -d "$pkgdir/usr/bin" ]; then
|
if [ -f "$pkgdir/usr/bin/llvm-config" ]; then
|
||||||
mkdir -p "$pkgdir/usr/bin"
|
mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/bin/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 other executables
|
|
||||||
find "$pkgdir/usr/bin" -type f ! -name "llvm-config-18-32" -delete
|
|
||||||
rmdir "$pkgdir/usr/bin" 2>/dev/null || true
|
|
||||||
fi
|
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/man"
|
||||||
rm -rf "$pkgdir/usr/share/opt-viewer"
|
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
|
if [ -d "$pkgdir/usr/lib64" ]; then
|
||||||
mkdir -p "$pkgdir/usr/lib"
|
mkdir -p "$pkgdir/usr/lib"
|
||||||
mv "$pkgdir/usr/lib64"/* "$pkgdir/usr/lib/" 2>/dev/null || true
|
mv "$pkgdir/usr/lib64"/* "$pkgdir/usr/lib/" 2>/dev/null || true
|
||||||
rmdir "$pkgdir/usr/lib64"
|
rmdir "$pkgdir/usr/lib64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove static libraries to avoid conflicts with system llvm-static.i686
|
# Remove static libraries to save space and avoid conflicts
|
||||||
echo "==> Removing static libraries (.a files)..."
|
echo "==> Removing static libraries..."
|
||||||
find "$pkgdir/usr/lib" -name "*.a" -delete
|
find "$pkgdir/usr/lib" -name "*.a" -delete
|
||||||
|
|
||||||
# Remove conflicting shared libraries (keep only LLVM-*.so)
|
# Remove cmake files that might conflict
|
||||||
echo "==> Removing conflicting shared libraries..."
|
rm -rf "$pkgdir/usr/lib/cmake"
|
||||||
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"
|
|
||||||
|
|
||||||
# Keep only essential headers for Mesa compilation
|
# Remove includes to avoid conflicts - Mesa will use system headers
|
||||||
# Remove conflicting includes
|
rm -rf "$pkgdir/usr/include"
|
||||||
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
|
|
||||||
|
|
||||||
# Install license
|
# Install license
|
||||||
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$name/LICENSE.TXT"
|
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() {
|
files() {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name='lib32-mesa'
|
name='lib32-mesa'
|
||||||
version='25.2.6'
|
version='25.2.6'
|
||||||
release='9'
|
release='10'
|
||||||
epoch='1'
|
epoch='1'
|
||||||
desc='Open-source OpenGL and Vulkan drivers (32-bit) with AMD RDNA 4 support for gaming'
|
desc='Open-source OpenGL and Vulkan drivers (32-bit) with AMD RDNA 4 support for gaming'
|
||||||
desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом с поддержкой AMD RDNA 4 для игр'
|
desc_ru='OpenGL и Vulkan драйверы (32-бит) с открытым исходным кодом с поддержкой AMD RDNA 4 для игр'
|
||||||
@@ -81,7 +81,7 @@ deps_redos=(
|
|||||||
'zlib(x86-32)'
|
'zlib(x86-32)'
|
||||||
'libzstd(x86-32)'
|
'libzstd(x86-32)'
|
||||||
'vulkan-loader(x86-32)'
|
'vulkan-loader(x86-32)'
|
||||||
'llvm18-libs(x86-32)'
|
'lib32-llvm18'
|
||||||
'lib32-lm_sensors'
|
'lib32-lm_sensors'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -131,8 +131,7 @@ build_deps=(
|
|||||||
'libpng-devel(x86-32)'
|
'libpng-devel(x86-32)'
|
||||||
'vulkan-headers'
|
'vulkan-headers'
|
||||||
'vulkan-loader-devel(x86-32)'
|
'vulkan-loader-devel(x86-32)'
|
||||||
'llvm18(x86-32)'
|
'lib32-llvm18'
|
||||||
'llvm18-devel(x86-32)'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
build_deps_redos=("${build_deps[@]}")
|
build_deps_redos=("${build_deps[@]}")
|
||||||
@@ -183,7 +182,7 @@ build() {
|
|||||||
|
|
||||||
# Set environment for 32-bit build
|
# Set environment for 32-bit build
|
||||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
|
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
|
# 32-bit CFLAGS/CXXFLAGS
|
||||||
export CFLAGS="-m32 -O2 -g1"
|
export CFLAGS="-m32 -O2 -g1"
|
||||||
|
|||||||
Reference in New Issue
Block a user