eclass/llvm: Sync with Gentoo

It's from Gentoo commit c59b3081a81aafa79fe1b0283eeee6e21122b56f.
This commit is contained in:
Flatcar Buildbot 2023-01-02 07:56:24 +00:00 committed by Krzesimir Nowak
parent 11672706d2
commit f1e24691c7

View File

@ -6,7 +6,7 @@
# Michał Górny <mgorny@gentoo.org>
# @AUTHOR:
# Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
# @SUPPORTED_EAPIS: 7 8
# @BLURB: Utility functions to build against slotted LLVM
# @DESCRIPTION:
# The llvm.eclass provides utility functions that can be used to build
@ -56,20 +56,13 @@
# }
# @CODE
case "${EAPI:-0}" in
0|1|2|3|4|5)
die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
;;
6|7|8)
;;
*)
die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
;;
case ${EAPI} in
7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
EXPORT_FUNCTIONS pkg_setup
if [[ ! ${_LLVM_ECLASS} ]]; then
_LLVM_ECLASS=1
# make sure that the versions installing straight into /usr/bin
# are uninstalled
@ -95,7 +88,7 @@ declare -g -r _LLVM_KNOWN_SLOTS=( {16..8} )
#
# If -b is specified, the checks are performed relative to BROOT,
# and BROOT-path is returned. This is appropriate when your package
# calls llvm-config executable. -b is supported since EAPI 7.
# calls llvm-config executable.
#
# If -d is specified, the checks are performed relative to ESYSROOT,
# and ESYSROOT-path is returned. This is appropriate when your package
@ -126,17 +119,6 @@ get_llvm_slot() {
shift
done
if [[ ${EAPI} == 6 ]]; then
case ${hv_switch} in
-b)
die "${FUNCNAME} -b is not supported in EAPI ${EAPI}"
;;
-d)
hv_switch=
;;
esac
fi
local max_slot=${1}
local slot
for slot in "${_LLVM_KNOWN_SLOTS[@]}"; do
@ -179,17 +161,8 @@ get_llvm_slot() {
get_llvm_prefix() {
debug-print-function ${FUNCNAME} "${@}"
local prefix=${EPREFIX}
if [[ ${EAPI} != 6 ]]; then
case ${1} in
-b)
prefix=${BROOT}
;;
*)
prefix=${ESYSROOT}
;;
esac
fi
local prefix=${ESYSROOT}
[[ ${1} == -b ]] && prefix=${BROOT}
echo "${prefix}/usr/lib/llvm/$(get_llvm_slot "${@}")"
}
@ -277,8 +250,7 @@ llvm_pkg_setup() {
llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
llvm_fix_tool_path READELF STRINGS STRIP
local prefix=${EPREFIX}
[[ ${EAPI} != 6 ]] && prefix=${ESYSROOT}
local prefix=${ESYSROOT}
local llvm_path=${prefix}/usr/lib/llvm/${LLVM_SLOT}/bin
local IFS=:
local split_path=( ${PATH} )
@ -305,5 +277,6 @@ llvm_pkg_setup() {
fi
}
_LLVM_ECLASS=1
fi
EXPORT_FUNCTIONS pkg_setup