llvmPackages_git.llvm: add checks for the LLVM version
this is a backport of 8afa321b8a
from #194634 (llvmPackages_15)
This commit is contained in:
parent
9984ca0504
commit
4917dc751c
@ -241,6 +241,38 @@ in stdenv.mkDerivation (rec {
|
||||
)
|
||||
'';
|
||||
|
||||
# Defensive check: some paths (that we make symlinks to) depend on the release
|
||||
# version, for example:
|
||||
# - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185
|
||||
#
|
||||
# So we want to sure that the version in the source matches the release
|
||||
# version we were given.
|
||||
#
|
||||
# We do this check here, in the LLVM build, because it happens early.
|
||||
postConfigure = let
|
||||
v = lib.versions;
|
||||
major = v.major release_version;
|
||||
minor = v.minor release_version;
|
||||
patch = v.patch release_version;
|
||||
in ''
|
||||
# $1: part, $2: expected
|
||||
check_version() {
|
||||
part="''${1^^}"
|
||||
part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)"
|
||||
|
||||
if [[ "$part" != "$2" ]]; then
|
||||
echo >&2 \
|
||||
"mismatch in the $1 version! we have version ${release_version}" \
|
||||
"and expected the $1 version to be '$2'; the source has '$part' instead"
|
||||
exit 3
|
||||
fi
|
||||
}
|
||||
|
||||
check_version major ${major}
|
||||
check_version minor ${minor}
|
||||
check_version patch ${patch}
|
||||
'';
|
||||
|
||||
# E.g. mesa.drivers use the build-id as a cache key (see #93946):
|
||||
LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user