]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
llvm: Update to 15.0.6
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 20 Feb 2023 17:00:00 +0000 (17:00 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 20 Feb 2023 17:00:00 +0000 (17:00 +0000)
This is hopefully a good way to package this.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
llvm/llvm.nm

index fc7d5cfeea3108d9c4c84c4b3099921e58f167d1..d5f7fa948f179f7b384f595df1142d8980440ccb 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = llvm
-version    = 8.0.0
+version    = 15.0.6
 release    = 1
 
 groups     = Applications/System
@@ -19,8 +19,8 @@ description
        tools as well as libraries with equivalent functionality.
 end
 
-source_dl  = http://releases.llvm.org/%{version}/
-sources    = %{thisapp}.src.tar.xz
+source_dl  = https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/
+sources    = %{thisapp}.src.tar.xz cmake-%{version}.src.tar.xz
 
 build
        requires
@@ -31,13 +31,22 @@ build
                libedit-devel >= 3.1-20190324
                libffi-devel
                libxml2-devel
+               ncurses-devel
+               python3-setuptools
+               python3-psutil
                zlib-devel
        end
 
-       DIR_APP = %{DIR_SRC}/%{thisapp}.src
+       # Disable LTO so that we won't use >= 100G of disk space
+       #LTO_CFLAGS =
+
+       # We limit /tmp to 1G which is exceeded by the linker
+       # when linking libLLVM.so
+       #export TMPDIR = /var/tmp
+
+       export LD_LIBRARY_PATH = %{DIR_APP}/build/lib64
 
-       # Limit parallelization to only 2 jobs at the same time.
-       PARALLELISMFLAGS = -j2
+       DIR_APP = %{DIR_SRC}/%{thisapp}.src
 
        # Set suffix for libdir based on the build architecture.
        llvm_libdir_suffix =
@@ -50,44 +59,69 @@ build
                llvm_libdir_suffix = 64
        end
 
+       # Only build with minimal debuginfo due to its large size
+       CFLAGS += -DNDEBUG -g1
+
+       prepare_cmds
+               ln -svf --relative %{DIR_SRC}/cmake-%{version}.src %{DIR_SRC}/cmake
+       end
+
        build
                # Create and switch into build directory.
                mkdir -pv %{DIR_APP}/build
                cd %{DIR_APP}/build
 
                %{cmake} .. \
-                       -DLLVM_BUILD_TOOLS=ON \
-                       -DLLVM_BUILD_UTILS=ON \
-                       -DLLVM_BUILD_TESTS=OFF \
-                       -DLLVM_BUILD_EXAMPLES=OFF \
-                       -DLLVM_BUILD_BENCHMARKS=OFF \
-                       -DCMAKE_BUILD_TYPE=Release \
-                       -DCMAKE_INSTALL_RPATH=";" \
-                       -DLLVM_BUILD_LLVM_DYLIB=OFF \
-                       -DLLVM_LINK_LLVM_DYLIB=OFF \
-                       -DBUILD_SHARED_LIBS=ON \
+                       -DLLVM_PARALLEL_LINK_JOBS=1 \
+                       -DBUILD_SHARED_LIBS=OFF \
+                       -DBUILD_STATIC_LIBS=OFF \
+                       -DCMAKE_SKIP_RPATH=ON \
+                       \
+                       -DLLVM_LIBDIR_SUFFIX=%{llvm_libdir_suffix} \
+                       \
+                       -DLLVM_TARGETS_TO_BUILD="host;" \
                        -DLLVM_ENABLE_FFI=ON \
                        -DLLVM_ENABLE_RTTI=ON \
                        -DLLVM_ENABLE_LIBCXX=OFF \
-                       -DLLVM_TARGETS_TO_BUILD="host;" \
-                       -DCMAKE_C_COMPILER=gcc \
-                       -DCMAKE_CXX_COMPILER=g++ \
-                       -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{CFLAGS}" \
-                       -DCMAKE_EXE_LINKER_FLAGS="%{LDFLAGS}" \
-                       -DENABLE_PIC=1 \
-                       -DLLVM_PARALLEL_LINK_JOBS=1 \
-                       -DLLVM_ENABLE_DUMP=ON \
-                       -DLLVM_LIBDIR_SUFFIX=%{llvm_libdir_suffix} \
-                       -Wno-dev
-
-               make %{PARALELLISMFLAGS}
+                       -DLLVM_ENABLE_ZLIB=ON \
+                       -DLLVM_USE_PERF=ON \
+                       \
+                       -DLLVM_BUILD_RUNTIME=ON \
+                       \
+                       -DLLVM_INCLUDE_TOOLS=ON \
+                       -DLLVM_BUILD_TOOLS=ON \
+                       \
+                       -DLLVM_INCLUDE_TESTS=ON \
+                       -DLLVM_BUILD_TESTS=ON \
+                       \
+                       -DLLVM_INCLUDE_EXAMPLES=ON \
+                       -DLLVM_BUILD_EXAMPLES=OFF \
+                       \
+                       -DLLVM_BUILD_UTILS=ON \
+                       \
+                       -DLLVM_INCLUDE_DOCS=ON \
+                       -DLLVM_BUILD_DOCS=ON \
+                       \
+                       -DLLVM_INCLUDE_BENCHMARKS=OFF \
+                       \
+                       -DLLVM_BUILD_LLVM_DYLIB=ON \
+                       -DLLVM_LINK_LLVM_DYLIB=ON \
+                       -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \
+                       -DLLVM_DEFAULT_TARGET_TRIPLE=%{DISTRO_BUILDTARGET}
+
+               # Build LLVM first to avoid running out of space
+               make %{PARALLELISMFLAGS} LLVM
+
+               # Then build the rest
+               make %{PARALLELISMFLAGS}
        end
 
-       test
-               cd %{DIR_APP}/build
-
-               make check-all %{PARALELLISMFLAGS}
-       end
+       # The testsuite hangs for forever
+       #test
+       #       cd %{DIR_APP}/build
+       #
+       #       make check-all %{PARALELLISMFLAGS} || :
+       #end
 
        install
                cd %{DIR_APP}/build