Skip to Content.
Sympa Menu

sm-commit - [[SM-Commit] ] GIT changes to master grimoire by Justin Boffemmyer (09b18b3459e4269bbfc0fda534c2880635372358)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Justin Boffemmyer <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
  • Subject: [[SM-Commit] ] GIT changes to master grimoire by Justin Boffemmyer (09b18b3459e4269bbfc0fda534c2880635372358)
  • Date: Wed, 15 Jan 2025 15:48:07 +0000

GIT changes to master grimoire by Justin Boffemmyer <flux AT sourcemage.org>:

ChangeLog | 3
build_system_handler.function | 8 +
devel/llvm/BUILD | 23 ++++
devel/llvm/CONFIGURE | 40 ++++---
devel/llvm/DEPENDS | 63 ++++++++----
devel/llvm/DETAILS | 219
+++++++++++++++++++++---------------------
devel/llvm/HISTORY | 22 +++-
devel/llvm/PREPARE | 43 +++++++-
devel/llvm/PRE_SUB_DEPENDS | 10 +
devel/llvm/SUB_DEPENDS | 71 ++++++++-----
10 files changed, 315 insertions(+), 187 deletions(-)

New commits:
commit 09b18b3459e4269bbfc0fda534c2880635372358
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

devel/llvm: option of host toolchain for building

Allow the user to choose which host compiler (gcc or llvm) to build
with, depending on which ones are present in the host system at the time
of casting the llvm spell. Also allow choosing among ld (system
default), gold, mold, and lld as the linker to use when building.

Refactored and cleaned up more of the spell files. Corrected dependency
requirements and options. Corrected/updated the license to match the
current license of the sources. Updated the description text.

The DEPENDS file was converted to use the buildsys depends functions to
ease future maintenance and improve readability, and the build system
(cmake) is now declared explicitly in DETAILS.

commit c611a5591a787c9c3dcc4ebcee5f5e4e31077a9d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

build_system_handler.function: add sub-dependency processing

Enable processing of -sub <feature> sub-dependency requirements. The
named sub-dependency features are simply passed to the underlying
depends implementation.

commit fcb277ce748f1bd851412fb84dff927d00b33032
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

devel/llvm: add supported feature sub-deps

Add sub-dependency support for missing but supported features.

diff --git a/ChangeLog b/ChangeLog
index 27e75a1..ddcbf1b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2025-01-15 Justin Boffemmyer <flux AT sourcemage.org>
+ * build_system_handler.function: add sub-dependency processing
+
2025-01-06 Ismael Luceno <ismael AT sourcemage.org>
* FUNCTIONS: made libtool-patching functions more verbose

diff --git a/build_system_handler.function b/build_system_handler.function
index 3d104ea..47bddb8 100644
--- a/build_system_handler.function
+++ b/build_system_handler.function
@@ -149,6 +149,7 @@ buildsys_meson_default() {
## [-a active_build_system] \
## [-g grimoire] \
## [-o global_optname] \
+## [-sub subdependency_feature] \
## spell_name \
## ...
## [-b] build_systemN \
@@ -183,6 +184,7 @@ _buildsys_transform_depends() {
local next
local optname
local spell
+ local subdeps
local targetsys
depends_func="$1" &&
shift 1 &&
@@ -196,6 +198,7 @@ _buildsys_transform_depends() {
case "$1" in
-g) grimoire="$2" && shift 2 ;;
-o) global_optname="$2" && shift 2 ;;
+ -sub) subdeps="$subdeps $1 $2" && shift 2 ;;
*) break ;;
esac
done &&
@@ -265,7 +268,7 @@ _buildsys_transform_depends() {
# provide a last-resort fallback value for enabled settings
: "${enabled:=$(buildsys_defaults "$targetsys" enabled
"$global_optname")}"
fi
- "$depends_func" "$spell" "$enabled" ${disabled:+"$disabled"} "$msg"
"$grimoire"
+ "$depends_func" $subdeps "$spell" "$enabled" ${disabled:+"$disabled"}
"$msg" "$grimoire"
}

#---------------------------------------------------------------------
@@ -282,6 +285,9 @@ _buildsys_transform_depends() {
## e.g. cmake, meson, autotools, etc.)
## @param -o local_optname (optional, flag to override the
## global_optname)
+## @param -sub subdependency_feature (optional, flag to give required
+## subdepedency feature names, one per flag, can be specified
+## more than once)
## @param message (message to the user explaining this option)
## @param enabled (the option or setting for when the dependency is
## enabled)
diff --git a/devel/llvm/BUILD b/devel/llvm/BUILD
index d91faab..4ad0dc2 100755
--- a/devel/llvm/BUILD
+++ b/devel/llvm/BUILD
@@ -68,6 +68,12 @@ if [[ "$LLVM_WITH_POLLY" == y ]] ;then
OPTS="$OPTS -DLLVM_TOOL_POLLY_BUILD=ON"
fi &&

+if [[ "$LLVM_WITH_UTILS" == y ]] ;then
+ OPTS="$OPTS -DLLVM_BUILD_UTILS=ON"
+else
+ OPTS="$OPTS -DLLVM_BUILD_UTILS=OFF"
+fi &&
+
if list_find "$LLVM_RUNTIMES" "compiler-rt" ;then
OPTS="$OPTS -DLLVM_TOOL_COMPILER_RT_BUILD=ON" &&
OPTS="$OPTS -DCOMPILER_RT_INCLUDE_TESTS=OFF"
@@ -92,6 +98,23 @@ if list_find "$LLVM_RUNTIMES" "openmp" ;then
OPTS="$OPTS -DLLVM_TOOL_OPENMP_BUILD=ON"
fi &&

+if [ -n "$LLVM_TOOLCHAIN_COMPILER" ] ;then
+ case "$LLVM_TOOLCHAIN_COMPILER" in
+ clang)
+ OPTS="$OPTS -DCMAKE_C_COMPILER=clang" &&
+ OPTS="$OPTS -DCMAKE_CXX_COMPILER=clang++"
+ ;;
+ gcc)
+ OPTS="$OPTS -DCMAKE_C_COMPILER=gcc" &&
+ OPTS="$OPTS -DCMAKE_CXX_COMPILER=g++"
+ ;;
+ esac
+fi
+
+if [ -n "$LLVM_TOOLCHAIN_LINKER" ] ;then
+ OPTS="$OPTS -DCMAKE_LINKER_TYPE=$(echo $LLVM_TOOLCHAIN_LINKER | tr [a-z]
[A-Z])"
+fi
+
OPTS="$OPTS -DLLVM_ENABLE_PROJECTS=${LLVM_PROJECTS// /;}" &&
OPTS="$OPTS -DLLVM_ENABLE_RUNTIMES=${LLVM_RUNTIMES// /;}" &&
cmake_build -S ../llvm
diff --git a/devel/llvm/CONFIGURE b/devel/llvm/CONFIGURE
index ce2411b..f8a9d51 100755
--- a/devel/llvm/CONFIGURE
+++ b/devel/llvm/CONFIGURE
@@ -5,26 +5,28 @@ message "$DEFAULT_COLOR$MESSAGE_COLOR" \
"LLVM can build multiple backends." \
"\nFor most people, X86 and AMDGPU are sufficient." &&

+local targets="all" &&
+targets="$targets AArch64" &&
+targets="$targets AMDGPU" &&
+targets="$targets ARM" &&
+targets="$targets AVR" &&
+targets="$targets BPF" &&
+targets="$targets Hexagon" &&
+targets="$targets Lanai" &&
+targets="$targets Mips" &&
+targets="$targets MSP430" &&
+targets="$targets NVPTX" &&
+targets="$targets PowerPC" &&
+targets="$targets RISCV" &&
+targets="$targets Sparc" &&
+targets="$targets SystemZ" &&
+targets="$targets VE" &&
+targets="$targets WebAssembly" &&
+targets="$targets X86" &&
+targets="$targets XCore" &&
+
config_query_multi LLVM_TARGETS "which backend targets?" \
- all \
- AArch64 \
- AMDGPU \
- ARM \
- AVR \
- BPF \
- Hexagon \
- Lanai \
- Mips \
- MSP430 \
- NVPTX \
- PowerPC \
- RISCV \
- Sparc \
- SystemZ \
- VE \
- WebAssembly \
- X86 \
- XCore \
+ $targets \
&&

if [[ "$LLVM_WITH_CLANG" == "y" ]]
diff --git a/devel/llvm/DEPENDS b/devel/llvm/DEPENDS
index edbd1f4..49ce56b 100755
--- a/devel/llvm/DEPENDS
+++ b/devel/llvm/DEPENDS
@@ -1,31 +1,56 @@
source $GRIMOIRE/CMAKE_DEPENDS &&
case "$HOST" in
(*-musl)
- depends libexecinfo &&
- depends musl-obstack
+ buildsys_depends libexecinfo &&
+ buildsys_depends musl-obstack
;;
esac &&
-depends libtool &&
-depends -sub CXX gcc &&
-depends PKG-CONFIG &&
-depends zlib '-DLLVM_ENABLE_ZLIB=ON' &&
-depends python3 &&
-depends mako &&
+buildsys_depends libtool &&
+
+buildsys_depends PKG-CONFIG &&
+buildsys_depends python3 &&
+buildsys_depends mako &&
+
+if [ x"$LLVM_TOOLCHAIN_COMPILER"x = x"gcc"x ] ;then
+ buildsys_depends -sub CXX gcc
+fi &&
+
if [[ "$LLVM_WITH_ANALYZER" == "y" ]] ;then
- optional_depends z3 \
- -DCLANG_ANALYZER_ENABLE_Z3_SOLVER=ON \
- -DCLANG_ANALYZER_ENABLE_Z3_SOLVER=OFF \
- 'for Z3 solver support in Clang Static Analyzer' &&
# perl is required for scan-build, which is the analyzer itself
runtime_depends perl
fi &&

-optional_depends ocaml '' '' 'build bindings for OCaml' &&
-optional_depends doxygen '' '' "build documentation?" &&
-optional_depends libffi '-DLLVM_ENABLE_FFI=ON' '' 'use sytem FFI' &&
+buildsys_optional_depends zlib \
+ -o LLVM_ENABLE_ZLIB \
+ "Enable using zlib for (de)compression?" \
+ &&
+
+buildsys_optional_depends zstd\
+ -o LLVM_ENABLE_ZSTD \
+ "Enable using zstd for (de)compression?" \
+ &&
+
+buildsys_optional_depends z3 \
+ -o CLANG_ENABLE_Z3_SOLVER \
+ "Enable support for the Z3 constraint solver?" \
+ &&
+
+buildsys_optional_depends libffi \
+ -o LLVM_ENABLE_FFI \
+ "Use sytem FFI?" \
+ &&
+
+buildsys_optional_depends ocaml \
+ "Build bindings for OCaml?" \
+ &&
+
+buildsys_optional_depends doxygen \
+ "Build documentation?" \
+ &&
+
if [[ "$LLVM_WITH_LLDB" == y ]]; then
- depends six -DLLDB_USE_SYSTEM_SIX=YES &&
- depends swig &&
- depends libedit &&
- depends ncurses
+ buildsys_depends six -o LLDB_USE_SYSTEM_SIX &&
+ buildsys_depends swig &&
+ buildsys_depends libedit &&
+ buildsys_depends ncurses
fi
diff --git a/devel/llvm/DETAILS b/devel/llvm/DETAILS
index 11e100c..48e59ee 100755
--- a/devel/llvm/DETAILS
+++ b/devel/llvm/DETAILS
@@ -1,133 +1,140 @@
# Watch: https://github.com/llvm/llvm-project/releases
/llvmorg-([0-9.]+)[.]tar
- SPELL=llvm
- VERSION=19.1.7
-
GITHUB_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$VERSION";
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/llvm-project"
- SOURCE="${SPELL}-${VERSION}.src.tar.xz"
- SOURCE2=$SOURCE.sig
- SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
- SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
- SOURCE_GPG=llvm.gpg:$SOURCE2:UPSTREAM_KEY
- SOURCE2_IGNORE=signature
- SOURCE3="cmake-${VERSION}.src.tar.xz"
- SOURCE3_URL[0]="${GITHUB_URI}/${SOURCE3}"
- SOURCE4="$SOURCE3.sig"
- SOURCE4_URL[0]="${SOURCE3_URL[0]}.sig"
- SOURCE3_GPG="llvm.gpg:$SOURCE4:UPSTREAM_KEY"
- SOURCE4_IGNORE=signature
+ SPELL=llvm
+ VERSION=19.1.7
+SPELL_BUILD_SYSTEM=cmake
+
GITHUB_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-$VERSION";
+ SOURCE_DIRECTORY="${BUILD_DIRECTORY}/llvm-project"
+ SOURCE="${SPELL}-${VERSION}.src.tar.xz"
+ SOURCE2=$SOURCE.sig
+ SOURCE_URL[0]="${GITHUB_URI}/${SOURCE}"
+ SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
+ SOURCE_GPG=llvm.gpg:$SOURCE2:UPSTREAM_KEY
+ SOURCE2_IGNORE=signature
+ SOURCE3="cmake-${VERSION}.src.tar.xz"
+ SOURCE3_URL[0]="${GITHUB_URI}/${SOURCE3}"
+ SOURCE4="$SOURCE3.sig"
+ SOURCE4_URL[0]="${SOURCE3_URL[0]}.sig"
+ SOURCE3_GPG="llvm.gpg:$SOURCE4:UPSTREAM_KEY"
+ SOURCE4_IGNORE=signature
if [[ "$LLVM_WITH_BOLT" == y ]]; then
- SOURCE5="bolt-${VERSION}.src.tar.xz"
- SOURCE5_URL[0]="${GITHUB_URI}/${SOURCE5}"
- SOURCE6="$SOURCE5.sig"
- SOURCE6_URL[0]="${SOURCE5_URL[0]}.sig"
- SOURCE5_GPG="llvm.gpg:$SOURCE6:UPSTREAM_KEY"
- SOURCE6_IGNORE="signature"
+ SOURCE5="bolt-${VERSION}.src.tar.xz"
+ SOURCE5_URL[0]="${GITHUB_URI}/${SOURCE5}"
+ SOURCE6="$SOURCE5.sig"
+ SOURCE6_URL[0]="${SOURCE5_URL[0]}.sig"
+ SOURCE5_GPG="llvm.gpg:$SOURCE6:UPSTREAM_KEY"
+ SOURCE6_IGNORE="signature"
fi
if [[ "$LLVM_WITH_CLANG" == y ]]; then
- SOURCE7="clang-${VERSION}.src.tar.xz"
- SOURCE7_URL[0]="${GITHUB_URI}/${SOURCE7}"
- SOURCE8="$SOURCE7.sig"
- SOURCE8_URL[0]="${SOURCE7_URL[0]}.sig"
- SOURCE7_GPG="llvm.gpg:$SOURCE8:UPSTREAM_KEY"
- SOURCE8_IGNORE="signature"
- SOURCE9="clang-tools-extra-${VERSION}.src.tar.xz"
- SOURCE9_URL[0]="${GITHUB_URI}/${SOURCE9}"
- SOURCE10="$SOURCE9.sig"
- SOURCE10_URL[0]="${SOURCE9_URL[0]}.sig"
- SOURCE9_GPG="llvm.gpg:$SOURCE10:UPSTREAM_KEY"
- SOURCE10_IGNORE=signature
+ SOURCE7="clang-${VERSION}.src.tar.xz"
+ SOURCE7_URL[0]="${GITHUB_URI}/${SOURCE7}"
+ SOURCE8="$SOURCE7.sig"
+ SOURCE8_URL[0]="${SOURCE7_URL[0]}.sig"
+ SOURCE7_GPG="llvm.gpg:$SOURCE8:UPSTREAM_KEY"
+ SOURCE8_IGNORE="signature"
+ SOURCE9="clang-tools-extra-${VERSION}.src.tar.xz"
+ SOURCE9_URL[0]="${GITHUB_URI}/${SOURCE9}"
+ SOURCE10="$SOURCE9.sig"
+ SOURCE10_URL[0]="${SOURCE9_URL[0]}.sig"
+ SOURCE9_GPG="llvm.gpg:$SOURCE10:UPSTREAM_KEY"
+ SOURCE10_IGNORE=signature
fi
if [[ "$LLVM_WITH_LLD" == y ]]; then
- SOURCE11="lld-${VERSION}.src.tar.xz"
- SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
- SOURCE12="$SOURCE11.sig"
- SOURCE12_URL[0]="${SOURCE11_URL[0]}.sig"
- SOURCE11_GPG="llvm.gpg:$SOURCE12:UPSTREAM_KEY"
- SOURCE12_IGNORE="signature"
+ SOURCE11="lld-${VERSION}.src.tar.xz"
+ SOURCE11_URL[0]="${GITHUB_URI}/${SOURCE11}"
+ SOURCE12="$SOURCE11.sig"
+ SOURCE12_URL[0]="${SOURCE11_URL[0]}.sig"
+ SOURCE11_GPG="llvm.gpg:$SOURCE12:UPSTREAM_KEY"
+ SOURCE12_IGNORE="signature"
fi
if [[ "$LLVM_WITH_LLDB" == y ]]; then
- SOURCE13="lldb-${VERSION}.src.tar.xz"
- SOURCE13_URL[0]="${GITHUB_URI}/${SOURCE13}"
- SOURCE14="$SOURCE13.sig"
- SOURCE14_URL[0]="${SOURCE13_URL[0]}.sig"
- SOURCE13_GPG="llvm.gpg:$SOURCE14:UPSTREAM_KEY"
- SOURCE14_IGNORE="signature"
+ SOURCE13="lldb-${VERSION}.src.tar.xz"
+ SOURCE13_URL[0]="${GITHUB_URI}/${SOURCE13}"
+ SOURCE14="$SOURCE13.sig"
+ SOURCE14_URL[0]="${SOURCE13_URL[0]}.sig"
+ SOURCE13_GPG="llvm.gpg:$SOURCE14:UPSTREAM_KEY"
+ SOURCE14_IGNORE="signature"
fi
if [[ "$LLVM_WITH_MLIR" == y ]]; then
- SOURCE15="mlir-${VERSION}.src.tar.xz"
- SOURCE15_URL[0]="${GITHUB_URI}/${SOURCE15}"
- SOURCE16="$SOURCE15.sig"
- SOURCE16_URL[0]="${SOURCE15_URL[0]}.sig"
- SOURCE15_GPG="llvm.gpg:$SOURCE16:UPSTREAM_KEY"
- SOURCE16_IGNORE="signature"
+ SOURCE15="mlir-${VERSION}.src.tar.xz"
+ SOURCE15_URL[0]="${GITHUB_URI}/${SOURCE15}"
+ SOURCE16="$SOURCE15.sig"
+ SOURCE16_URL[0]="${SOURCE15_URL[0]}.sig"
+ SOURCE15_GPG="llvm.gpg:$SOURCE16:UPSTREAM_KEY"
+ SOURCE16_IGNORE="signature"
fi
if [[ "$LLVM_WITH_POLLY" == y ]]; then
- SOURCE17="polly-${VERSION}.src.tar.xz"
- SOURCE17_URL[0]="${GITHUB_URI}/${SOURCE17}"
- SOURCE18="$SOURCE17.sig"
- SOURCE18_URL[0]="${SOURCE17_URL[0]}.sig"
- SOURCE17_GPG="llvm.gpg:$SOURCE18:UPSTREAM_KEY"
- SOURCE18_IGNORE="signature"
+ SOURCE17="polly-${VERSION}.src.tar.xz"
+ SOURCE17_URL[0]="${GITHUB_URI}/${SOURCE17}"
+ SOURCE18="$SOURCE17.sig"
+ SOURCE18_URL[0]="${SOURCE17_URL[0]}.sig"
+ SOURCE17_GPG="llvm.gpg:$SOURCE18:UPSTREAM_KEY"
+ SOURCE18_IGNORE="signature"
fi
if [[ -n "$LLVM_RUNTIMES" ]] ;then
- SOURCE19="runtimes-${VERSION}.src.tar.xz"
- SOURCE19_URL[0]="${GITHUB_URI}/${SOURCE19}"
- SOURCE20="$SOURCE19.sig"
- SOURCE20_URL[0]="${SOURCE19_URL[0]}.sig"
- SOURCE19_GPG="llvm.gpg:$SOURCE20:UPSTREAM_KEY"
- SOURCE20_IGNORE="signature"
+ SOURCE19="runtimes-${VERSION}.src.tar.xz"
+ SOURCE19_URL[0]="${GITHUB_URI}/${SOURCE19}"
+ SOURCE20="$SOURCE19.sig"
+ SOURCE20_URL[0]="${SOURCE19_URL[0]}.sig"
+ SOURCE19_GPG="llvm.gpg:$SOURCE20:UPSTREAM_KEY"
+ SOURCE20_IGNORE="signature"
fi
if list_find "$LLVM_RUNTIMES" "compiler-rt" ;then
- SOURCE21="compiler-rt-${VERSION}.src.tar.xz"
- SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
- SOURCE22="$SOURCE21.sig"
- SOURCE22_URL[0]="${SOURCE21_URL[0]}.sig"
- SOURCE21_GPG="llvm.gpg:$SOURCE22:UPSTREAM_KEY"
- SOURCE22_IGNORE="signature"
+ SOURCE21="compiler-rt-${VERSION}.src.tar.xz"
+ SOURCE21_URL[0]="${GITHUB_URI}/${SOURCE21}"
+ SOURCE22="$SOURCE21.sig"
+ SOURCE22_URL[0]="${SOURCE21_URL[0]}.sig"
+ SOURCE21_GPG="llvm.gpg:$SOURCE22:UPSTREAM_KEY"
+ SOURCE22_IGNORE="signature"
fi
if list_find "$LLVM_RUNTIMES" "libcxx" ;then
- SOURCE23="libcxx-${VERSION}.src.tar.xz"
- SOURCE23_URL[0]="${GITHUB_URI}/${SOURCE23}"
- SOURCE24="$SOURCE23.sig"
- SOURCE24_URL[0]="${SOURCE23_URL[0]}.sig"
- SOURCE23_GPG="llvm.gpg:$SOURCE24:UPSTREAM_KEY"
- SOURCE24_IGNORE="signature"
+ SOURCE23="libcxx-${VERSION}.src.tar.xz"
+ SOURCE23_URL[0]="${GITHUB_URI}/${SOURCE23}"
+ SOURCE24="$SOURCE23.sig"
+ SOURCE24_URL[0]="${SOURCE23_URL[0]}.sig"
+ SOURCE23_GPG="llvm.gpg:$SOURCE24:UPSTREAM_KEY"
+ SOURCE24_IGNORE="signature"
fi
if list_find "$LLVM_RUNTIMES" "libcxxabi" ;then
- SOURCE25="libcxxabi-${VERSION}.src.tar.xz"
- SOURCE25_URL[0]="${GITHUB_URI}/${SOURCE25}"
- SOURCE26="$SOURCE25.sig"
- SOURCE26_URL[0]="${SOURCE25_URL[0]}.sig"
- SOURCE25_GPG="llvm.gpg:$SOURCE26:UPSTREAM_KEY"
- SOURCE26_IGNORE="signature"
+ SOURCE25="libcxxabi-${VERSION}.src.tar.xz"
+ SOURCE25_URL[0]="${GITHUB_URI}/${SOURCE25}"
+ SOURCE26="$SOURCE25.sig"
+ SOURCE26_URL[0]="${SOURCE25_URL[0]}.sig"
+ SOURCE25_GPG="llvm.gpg:$SOURCE26:UPSTREAM_KEY"
+ SOURCE26_IGNORE="signature"
fi
if list_find "$LLVM_RUNTIMES" "libunwind" ;then
- SOURCE27="libunwind-${VERSION}.src.tar.xz"
- SOURCE27_URL[0]="${GITHUB_URI}/${SOURCE27}"
- SOURCE28="$SOURCE27.sig"
- SOURCE28_URL[0]="${SOURCE27_URL[0]}.sig"
- SOURCE27_GPG="llvm.gpg:$SOURCE28:UPSTREAM_KEY"
- SOURCE28_IGNORE="signature"
+ SOURCE27="libunwind-${VERSION}.src.tar.xz"
+ SOURCE27_URL[0]="${GITHUB_URI}/${SOURCE27}"
+ SOURCE28="$SOURCE27.sig"
+ SOURCE28_URL[0]="${SOURCE27_URL[0]}.sig"
+ SOURCE27_GPG="llvm.gpg:$SOURCE28:UPSTREAM_KEY"
+ SOURCE28_IGNORE="signature"
fi
if list_find "$LLVM_RUNTIMES" "openmp" ;then
- SOURCE29="openmp-${VERSION}.src.tar.xz"
- SOURCE29_URL[0]="${GITHUB_URI}/${SOURCE29}"
- SOURCE30="$SOURCE29.sig"
- SOURCE30_URL[0]="${SOURCE29_URL[0]}.sig"
- SOURCE29_GPG="llvm.gpg:$SOURCE30:UPSTREAM_KEY"
- SOURCE30_IGNORE="signature"
+ SOURCE29="openmp-${VERSION}.src.tar.xz"
+ SOURCE29_URL[0]="${GITHUB_URI}/${SOURCE29}"
+ SOURCE30="$SOURCE29.sig"
+ SOURCE30_URL[0]="${SOURCE29_URL[0]}.sig"
+ SOURCE29_GPG="llvm.gpg:$SOURCE30:UPSTREAM_KEY"
+ SOURCE30_IGNORE="signature"
fi
- WEB_SITE="https://llvm.org";
- LICENSE[0]=BSD
- ENTERED=20081115
- SHORT="A novel compiler infrastructure for the optimization of
programs."
- TMPFS=off # Well, needs about 5G space, plus actual RAM for
compiling.
- STAGED_INSTALL=off # chmod issues with castfs
+ WEB_SITE="https://llvm.org";
+ LICENSE[0]=APACHE
+ ENTERED=20081115
+ SHORT="A novel compiler infrastructure for the optimization of
programs."
+ TMPFS=off # Well, needs about 5G space, plus actual RAM for
compiling.
+ STAGED_INSTALL=off # chmod issues with castfs
cat << EOF
-Low-Level Virtual Machine (LLVM) is a compiler infrastructure designed for
-compile-time, link-time, run-time, and "idle-time" optimization of programs
-from arbitrary programming languages. It currently supports compilation of
-C, Objective-C, and C++ programs, using front-ends derived from GCC 4.0,
-GCC 4.2, and a custom new front-end, "clang". It supports x86, x86_64, ia64,
-PowerPC, and SPARC, with support for Alpha and ARM under development.
+The LLVM Project is a collection of modular and reusable compiler and
toolchain
+technologies. Despite its name, LLVM has little to do with traditional
virtual
+machines. The name "LLVM" itself is not an acronym; it is the full name of
the
+project.
+
+LLVM began as a research project at the University of Illinois, with the goal
+of providing a modern, SSA-based compilation strategy capable of supporting
+both static and dynamic compilation of arbitrary programming languages. Since
+then, LLVM has grown to be an umbrella project consisting of a number of
+subprojects, many of which are being used in production by a wide variety of
+commercial and open source projects as well as being widely used in academic
+research.
EOF
diff --git a/devel/llvm/HISTORY b/devel/llvm/HISTORY
index e60e0e4..8399a0a 100644
--- a/devel/llvm/HISTORY
+++ b/devel/llvm/HISTORY
@@ -1,25 +1,37 @@
+2025-01-16 Justin Boffemmyer <flux AT sourcemage.org>
+ * CONFIGURE: refactor target specifications
+ * DETAILS: declare cmake as the build system, update license, update
+ description
+ * DEPENDS: correct dependencies, convert to buildsys_depends
functions,
+ specify gcc sub-dependency only when using gcc to build
+ * PREPARE: enable choosing which host compiler and linker to build
with
+
+2025-01-15 Justin Boffemmyer <flux AT sourcemage.org>
+ * PRE_SUB_DEPENDS,SUB_DEPENDS: add more supported features so they can
+ be depended on if needed
+
2025-01-15 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: fixed typo in SOURCE3_URL[0] (cmake modules)

2025-01-14 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 19.1.7

-2025-01-05 Jutsin Boffemmyer <flux AT sourcemage.org>
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
* BUILD,PRE_BUILD: simplify with CMake vars instead of symlinks
* PREPARE: clean up whitespace

-2025-01-05 Jutsin Boffemmyer <flux AT sourcemage.org>
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
* PRE_SUB_DEPENDS,SUB_DEPENDS: remove unneeded option

-2025-01-05 Jutsin Boffemmyer <flux AT sourcemage.org>
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
* BUILD: fix placement of &&

-2025-01-05 Jutsin Boffemmyer <flux AT sourcemage.org>
+2025-01-05 Justin Boffemmyer <flux AT sourcemage.org>
* BUILD: optimize build by removing more benchmarks and tests
* patches-lld/0001-Include-libunwind-from-source-directory.patch:
removed, no longer needed

-2025-01-04 Jutsin Boffemmyer <flux AT sourcemage.org>
+2025-01-04 Justin Boffemmyer <flux AT sourcemage.org>
* BUILD,DETAILS,PREPARE,PRE_BUILD: fix, restructure, add some missing
supported features
* CONFIGURE: add "all" target option
diff --git a/devel/llvm/PREPARE b/devel/llvm/PREPARE
index 8a31859..23d7dda 100755
--- a/devel/llvm/PREPARE
+++ b/devel/llvm/PREPARE
@@ -17,13 +17,44 @@ if list_find "$LLVM_RUNTIMES" "all" ;then
LLVM_RUNTIMES="${LLVM_ALL_RUNTIMES#all }"
fi &&

+
+local compilers=""
+for compiler in clang gcc ;do
+ if command -v "/usr/bin/$compiler" > /dev/null ;then
+ compilers="$compilers $compiler"
+ fi
+done
+
+local linkers="default "
+for linker in bfd gold lld mold ;do
+ if command -v "/usr/bin/ld.$linker" > /dev/null ;then
+ linkers="$linkers $linker"
+ fi
+done
+
+config_query_list LLVM_TOOLCHAIN_COMPILER \
+ "Which compiler to use to build llvm and its components?" \
+ $compilers &&
+
+config_query_list LLVM_TOOLCHAIN_LINKER \
+ "Which linker to use to link llvm and its components?" \
+ $linkers &&
+
+case "$LLVM_TOOLCHAIN_LINKER" in
+ default)
+ LLVM_TOOLCHAIN_LINKER="SYSTEM"
+ persistent_add LLVM_TOOLCHAIN_LINKER
+ ;;
+esac
+
config_query LLVM_WITH_RTTI "Enable RTTI? (recommended)" y &&
-config_query LLVM_WITH_BOLT "Enable BOLT?" n &&
-config_query LLVM_WITH_CLANG "Enable clang compiler frontend? (selects
compiler-rt runtime)" n &&
-config_query LLVM_WITH_LLDB "Enable lldb debugger (selects libcxx and
libcxxabi runtimes)?" n &&
-config_query LLVM_WITH_POLLY "Enable polyhedral optimizer (polly)?" n &&
-config_query LLVM_WITH_LLD "Enable llvm's linker (lld)?" n &&
-config_query LLVM_WITH_MLIR "Enable llvm's MLIR?" n &&
+config_query LLVM_WITH_UTILS "Build the LLVM utilities?" y &&
+config_query LLVM_WITH_BOLT "Build BOLT?" n &&
+config_query LLVM_WITH_CLANG "Build the clang compiler frontend? (selects
compiler-rt runtime)" n &&
+config_query LLVM_WITH_LLDB "Build the LLDB debugger (selects libcxx and
libcxxabi runtimes)?" n &&
+config_query LLVM_WITH_POLLY "Build the polyhedral optimizer (polly)?" n
&&
+config_query LLVM_WITH_LLD "Build the LLVM linker (lld)?" n &&
+config_query LLVM_WITH_MLIR "Build the LLVM multi-level intermediate
representation (MLIR)?" n &&

if [[ "$LLVM_WITH_CLANG" == y ]] ;then
for required in compiler-rt ;do
diff --git a/devel/llvm/PRE_SUB_DEPENDS b/devel/llvm/PRE_SUB_DEPENDS
index b845d1d..00c2adf 100755
--- a/devel/llvm/PRE_SUB_DEPENDS
+++ b/devel/llvm/PRE_SUB_DEPENDS
@@ -3,11 +3,17 @@ case "$THIS_SUB_DEPENDS" in
list_find "$LLVM_TARGETS" "all" ||
list_find "$LLVM_TARGETS" "${THIS_SUB_DEPENDS#TARGET-}"
;;
+ RUNTIME-*)
+ list_find "$LLVM_RUNTIMES" "all" ||
+ list_find "$LLVM_RUNTIMES" "${THIS_SUB_DEPENDS#RUNTIME-}"
+ ;;
+ BOLT) [[ "${LLVM_WITH_BOLT}" == "y" ]] ;;
CLANG) [[ "${LLVM_WITH_CLANG}" == "y" ]] ;;
+ LLD) [[ "${LLVM_WITH_LLD}" == "y" ]] ;;
LLDB) [[ "${LLVM_WITH_LLDB}" == "y" ]] ;;
+ MLIR) [[ "${LLVM_WITH_MLIR}" == "y" ]] ;;
POLLY) [[ "${LLVM_WITH_POLLY}" == "y" ]] ;;
- LLD) [[ "${LLVM_WITH_LLD}" == "y" ]] ;;
- RTTI) [[ y == "$LLVM_WITH_RTTI" ]] ;;
+ RTTI) [[ "$LLVM_WITH_RTTI" == "y" ]] ;;
*)
message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
return 1
diff --git a/devel/llvm/SUB_DEPENDS b/devel/llvm/SUB_DEPENDS
index 7b3c73f..62c0259 100755
--- a/devel/llvm/SUB_DEPENDS
+++ b/devel/llvm/SUB_DEPENDS
@@ -1,31 +1,44 @@
case "$THIS_SUB_DEPENDS" in
-TARGET-*)
- target="${THIS_SUB_DEPENDS#TARGET-}"
- message "${MESSAGE_COLOR}$target target support enforced by
sub-dependency.$DEFAULT_COLOR"
- list_add LLVM_TARGETS "$target"
-;;
-CLANG)
- message "${MESSAGE_COLOR}Building clang enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_CLANG=y
-;;
-LLDB)
- message "${MESSAGE_COLOR}Building lldb enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_LLDB=y
-;;
-POLLY)
- message "${MESSAGE_COLOR}Building polly enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_POLLY=y
-;;
-LLD)
- message "${MESSAGE_COLOR}Building lld enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_LLD=y
-;;
-RTTI)
- message "${MESSAGE_COLOR}RTTI support enforced by
sub-dependency.$DEFAULT_COLOR"
- LLVM_WITH_RTTI=y
-;;
- *)
- message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
- return 1
-;;
+ TARGET-*)
+ target="${THIS_SUB_DEPENDS#TARGET-}"
+ message "${MESSAGE_COLOR}$target target support enforced by
sub-dependency.$DEFAULT_COLOR"
+ list_add LLVM_TARGETS "$target"
+ ;;
+ RUNTIME-*)
+ target="${THIS_SUB_DEPENDS#RUNTIME-}"
+ message "${MESSAGE_COLOR}$target runtime support enforced by
sub-dependency.$DEFAULT_COLOR"
+ list_add LLVM_RUNTIMES "$target"
+ ;;
+ BOLT)
+ message "${MESSAGE_COLOR}Building bolt enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_BOLT=y
+ ;;
+ CLANG)
+ message "${MESSAGE_COLOR}Building clang enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_CLANG=y
+ ;;
+ LLD)
+ message "${MESSAGE_COLOR}Building lld enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_LLD=y
+ ;;
+ LLDB)
+ message "${MESSAGE_COLOR}Building lldb enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_LLDB=y
+ ;;
+ MLIR)
+ message "${MESSAGE_COLOR}Building MLIR enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_MLIR=y
+ ;;
+ POLLY)
+ message "${MESSAGE_COLOR}Building polly enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_POLLY=y
+ ;;
+ RTTI)
+ message "${MESSAGE_COLOR}RTTI support enforced by
sub-dependency.$DEFAULT_COLOR"
+ LLVM_WITH_RTTI=y
+ ;;
+ *)
+ message "${PROBLEM_COLOR}bogus sub_depends: $SPELL
$THIS_SUB_DEPENDS${DEFAULT_COLOR}"
+ return 1
+ ;;
esac


  • [[SM-Commit] ] GIT changes to master grimoire by Justin Boffemmyer (09b18b3459e4269bbfc0fda534c2880635372358), Justin Boffemmyer, 01/15/2025

Archive powered by MHonArc 2.6.24.

Top of Page