summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorJoan Figueras2021-06-16 23:50:23 +0200
committerJoan Figueras2021-06-16 23:50:23 +0200
commitb87d0370e2fab8a112b06147cf8e9b64913e6e51 (patch)
tree8017c4c2664e1f6c44303abeefdd551996b6463b /PKGBUILD
parent7cf2b75e8ed24de01521a4a8d9f5f14353d15055 (diff)
downloadaur-b87d0370e2fab8a112b06147cf8e9b64913e6e51.tar.gz
Fixed clang build
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD31
1 files changed, 19 insertions, 12 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 42da2e0f9ca6..4c4af761478c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -70,6 +70,9 @@ license=(GPL2)
makedepends=(
xmlto kmod inetutils bc libelf cpio
)
+if [ "${_compiler}" = "clang" ]; then
+ makedepends+=(clang llvm)
+fi
options=('!strip')
_srcname="linux-${pkgver}-xanmod${xanmod}"
@@ -127,6 +130,12 @@ prepare() {
# Applying configuration
cp -vf CONFIGS/xanmod/${_compiler}/config .config
+ # enable LTO_CLANG_THIN
+ if [ "${_compiler}" = "clang" ]; then
+ scripts/config --disable LTO_CLANG_FULL
+ scripts/config --enable LTO_CLANG_THIN
+ _LLVM=1
+ fi
# CONFIG_STACK_VALIDATION gives better stack traces. Also is enabled in all official kernel packages by Archlinux team
scripts/config --enable CONFIG_STACK_VALIDATION
@@ -137,9 +146,11 @@ prepare() {
# User set. See at the top of this file
if [ "$use_tracers" = "n" ]; then
- msg2 "Disabling FUNCTION_TRACER/GRAPH_TRACER..."
- scripts/config --disable CONFIG_FUNCTION_TRACER \
- --disable CONFIG_STACK_TRACER
+ msg2 "Disabling FUNCTION_TRACER/GRAPH_TRACER only if we are not compiling with clang..."
+ if [ "${_compiler}" = "gcc" ]; then
+ scripts/config --disable CONFIG_FUNCTION_TRACER \
+ --disable CONFIG_STACK_TRACER
+ fi
fi
if [ "$use_numa" = "n" ]; then
@@ -170,24 +181,24 @@ prepare() {
fi
done
- make olddefconfig
-
### Optionally load needed modules for the make localmodconfig
# See https://aur.archlinux.org/packages/modprobed-db
if [ "$_localmodcfg" = "y" ]; then
if [ -f $HOME/.config/modprobed.db ]; then
msg2 "Running Steven Rostedt's make localmodconfig now"
- make LSMOD=$HOME/.config/modprobed.db localmodconfig
+ make LLVM=$_LLVM LLVM_IAS=$_LLVM LSMOD=$HOME/.config/modprobed.db localmodconfig
else
msg2 "No modprobed.db data found"
exit
fi
fi
+ make LLVM=$_LLVM LLVM_IAS=$_LLVM olddefconfig
+
make -s kernelrelease > version
msg2 "Prepared %s version %s" "$pkgbase" "$(<version)"
- [[ -z "$_makenconfig" ]] || make nconfig
+ [[ -z "$_makenconfig" ]] || make LLVM=$_LLVM LLVM_IAS=$_LLVM nconfig
# save configuration for later reuse
cat .config > "${SRCDEST}/config.last"
@@ -195,11 +206,7 @@ prepare() {
build() {
cd linux-${_major}
- if [ "${_compiler}" = "clang" ]; then
- make LLVM=1 LLVM_IAS=1 all
- else
- make all
- fi
+ make LLVM=$_LLVM LLVM_IAS=$_LLVM all
}
_package() {