Compare commits

...

28 Commits

Author SHA1 Message Date
4772533af1 Update zen kernel templates to v6.17.5-lqx1: 6.17-clang 6.17-gcc [auto] 2025-10-25 12:01:13 +00:00
6a5c132cdd Update .configs to fix iptables
All checks were successful
Auto Update Zen Kernel Templates / update-kernel (push) Successful in 46s
2025-10-20 16:15:06 -04:00
d4a6a35c4a Update zen kernel templates to v6.17.4-lqx1: 6.17-clang 6.17-gcc [auto] 2025-10-20 12:01:16 +00:00
abdfa9b51d Update .configs for 6.17
All checks were successful
Auto Update Zen Kernel Templates / update-kernel (push) Successful in 49s
2025-10-18 12:12:14 -04:00
3b22f1b835 Add zen kernel templates for 6.17-clang 6.17-gcc at v6.17.3-lqx1 [auto] 2025-10-18 12:01:15 +00:00
58a2785494 Update zen kernel templates to v6.16.12-lqx1: 6.16-clang 6.16-gcc [auto] 2025-10-15 12:03:09 +00:00
02ba3e5327 Update zen kernel templates to v6.16.11-lqx1: 6.16-clang 6.16-gcc [auto] 2025-10-07 12:02:05 +00:00
211041a94a Update zen kernel templates to v6.16.10-lqx1: 6.16-clang 6.16-gcc [auto] 2025-10-04 12:02:46 +00:00
6609841a99 Update zen kernel templates to v6.16.9-lqx1: 6.16-clang 6.16-gcc [auto] 2025-09-26 12:01:14 +00:00
3e39014c58 Update zen kernel templates to v6.16.8-lqx1: 6.16-clang 6.16-gcc [auto] 2025-09-21 15:40:03 +00:00
7d3ca1d128 Update zen kernel templates to v6.16.7-lqx1: 6.16-clang 6.16-gcc [auto] 2025-09-15 12:01:16 +00:00
c4898a03bb Update zen kernel templates to v6.16.6-lqx1: 6.16-clang 6.16-gcc [auto] 2025-09-10 12:03:11 +00:00
c8f15acb7d Update zen kernel templates to v6.16.5-lqx1: 6.16-clang 6.16-gcc [auto] 2025-09-06 12:01:14 +00:00
ed2d3dfeb9 Update zen kernel templates to v6.16.4-lqx1: 6.16-clang 6.16-gcc [auto] 2025-08-29 12:03:05 +00:00
d85d2adb44 Update zen kernel templates to v6.16.3-lqx1: 6.16-clang 6.16-gcc [auto] 2025-08-25 12:01:17 +00:00
95784800ab Add zen kernel templates for 6.16-clang 6.16-gcc at v6.16.2-lqx1 [auto] 2025-08-24 13:12:10 +00:00
9c4ecc42a4 Update .gitea/workflows/update.yml 2025-08-24 09:11:00 -04:00
fd5e763eba Update zen kernel templates to v6.15.11-lqx1: 6.15-clang 6.15-gcc [auto] 2025-08-22 12:02:03 +00:00
94845ad1dd Update zen kernel templates to v6.15.10-lqx1: 6.15-clang 6.15-gcc [auto] 2025-08-16 12:01:33 +00:00
72668f80be Update .gitea/workflows/update.yml
All checks were successful
Auto Update Zen Kernel Templates / update-kernel (push) Successful in 47s
2025-08-02 13:36:46 +00:00
de6cf88786 Update commit message 2025-08-02 13:35:18 +00:00
dc1b1e3383 Update zen kernel templates: 6.15-clang 6.15-gcc [auto] 2025-08-02 12:01:13 +00:00
ba9d3a2072 Update config for 6.15.8-zen
All checks were successful
Auto Update Zen Kernel Templates / update-kernel (push) Successful in 46s
2025-07-27 00:15:51 -04:00
03af37b170 Update zen kernel templates: 6.15-clang 6.15-gcc [auto] 2025-07-27 04:06:22 +00:00
ba67ba56bd Whoops 2025-07-27 00:05:29 -04:00
865bc683bf Fix mistake 2025-07-27 00:03:52 -04:00
3b74058559 Add auto updater 2025-07-27 04:02:12 +00:00
b8ff36d5c0 Update for version 6.15.6-lqx1 2025-07-14 22:53:40 -04:00
29 changed files with 48340 additions and 8 deletions

164
.gitea/workflows/update.yml Normal file
View File

@@ -0,0 +1,164 @@
name: Auto Update Zen Kernel Templates
on:
schedule:
- cron: '0 12 * * *'
workflow_dispatch:
jobs:
update-kernel:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Dependencies
run: sudo apt-get update && sudo apt-get install -y curl jq
- name: Fetch Latest Zen Kernel Release
id: get_release
run: |
RELEASES=$(curl -s https://api.github.com/repos/zen-kernel/zen-kernel/releases?per_page=50)
LATEST_RELEASE=$(echo "$RELEASES" | jq -r '[.[] | select(.tag_name | test("^v\\d+\\.\\d+(\\.\\d+)?-lqx\\d+$"))] | sort_by(.published_at) | reverse | .[0]')
if [ "$LATEST_RELEASE" = "null" ]; then
echo "No stable release found"
exit 0
fi
TAG_NAME=$(echo "$LATEST_RELEASE" | jq -r '.tag_name')
VERSION=$(echo "$TAG_NAME" | sed 's/^v\([0-9.]*\)-lqx.*/\1/')
LQX=$(echo "$TAG_NAME" | sed 's/.*-lqx\([0-9]*\)$/\1/')
VERSION_KEY=$(echo "$VERSION" | sed 's/\([0-9]*\.[0-9]*\).*/\1/')
echo "Latest release: $TAG_NAME"
echo "Version: $VERSION, LQX: $LQX, Version Key: $VERSION_KEY"
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "lqx=$LQX" >> $GITHUB_OUTPUT
echo "version_key=$VERSION_KEY" >> $GITHUB_OUTPUT
- name: Update Templates
id: update_templates
run: |
TAG_NAME="${{ steps.get_release.outputs.tag_name }}"
VERSION="${{ steps.get_release.outputs.version }}"
LQX="${{ steps.get_release.outputs.lqx }}"
VERSION_KEY="${{ steps.get_release.outputs.version_key }}"
if [ -z "$TAG_NAME" ]; then
echo "No release data found, exiting"
exit 0
fi
echo "Processing latest release: $TAG_NAME (version=$VERSION, lqx=$LQX, version_key=$VERSION_KEY)"
ARCHIVE_URL="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/${TAG_NAME}.tar.gz"
echo "Downloading $ARCHIVE_URL"
if curl -sL "$ARCHIVE_URL" -o "zen-kernel-${VERSION}.tar.gz"; then
CHECKSUM=$(sha256sum "zen-kernel-${VERSION}.tar.gz" | awk '{print $1}')
rm "zen-kernel-${VERSION}.tar.gz"
echo "Checksum: $CHECKSUM"
else
echo "Failed to download $ARCHIVE_URL, exiting"
exit 1
fi
UPDATED_VERSIONS=""
CHANGED_FILES=""
for compiler in clang gcc; do
TEMPLATE_DIR="linux-${compiler}/linux${VERSION_KEY}-zen"
TEMPLATE_FILE="$TEMPLATE_DIR/template"
if [ -f "$TEMPLATE_FILE" ]; then
echo "Checking existing template: $TEMPLATE_FILE"
CURRENT_VERSION=$(grep '^version=' "$TEMPLATE_FILE" 2>/dev/null | cut -d= -f2 || echo "")
CURRENT_LQX=$(grep '^lqx=' "$TEMPLATE_FILE" 2>/dev/null | cut -d= -f2 || echo "")
CURRENT_CHECKSUM=$(grep '^checksum=' "$TEMPLATE_FILE" 2>/dev/null | cut -d= -f2 || echo "")
echo "Current: version=$CURRENT_VERSION, lqx=$CURRENT_LQX"
echo "New: version=$VERSION, lqx=$LQX"
if [ "$CURRENT_VERSION" != "$VERSION" ] || [ "$CURRENT_LQX" != "$LQX" ] || [ "$CURRENT_CHECKSUM" != "$CHECKSUM" ]; then
echo "Update needed for $TEMPLATE_FILE"
sed -i "s/^version=.*/version=$VERSION/" "$TEMPLATE_FILE"
sed -i "s/^lqx=.*/lqx=$LQX/" "$TEMPLATE_FILE"
sed -i "s/^checksum=.*/checksum=$CHECKSUM/" "$TEMPLATE_FILE"
if [ "$CURRENT_VERSION" != "$VERSION" ] || [ "$CURRENT_LQX" != "$LQX" ]; then
sed -i "s/^revision=.*/revision=1/" "$TEMPLATE_FILE"
else
CURRENT_REV=$(grep '^revision=' "$TEMPLATE_FILE" 2>/dev/null | cut -d= -f2 || echo "1")
NEW_REV=$((CURRENT_REV + 1))
sed -i "s/^revision=.*/revision=$NEW_REV/" "$TEMPLATE_FILE"
fi
UPDATED_VERSIONS="$UPDATED_VERSIONS $VERSION_KEY-$compiler"
CHANGED_FILES="$CHANGED_FILES $TEMPLATE_FILE"
echo "Updated $TEMPLATE_FILE to version $VERSION-lqx$LQX"
else
echo "No update needed for $TEMPLATE_FILE"
fi
else
echo "Template not found: $TEMPLATE_FILE - creating new template"
REFERENCE_TEMPLATE=""
REFERENCE_DIR=""
if [ "$compiler" = "clang" ]; then
REFERENCE_TEMPLATE=$(find linux-clang -name template -type f | sort -V | tail -1)
else
REFERENCE_TEMPLATE=$(find linux-gcc -name template -type f | sort -V | tail -1)
fi
if [ -n "$REFERENCE_TEMPLATE" ] && [ -f "$REFERENCE_TEMPLATE" ]; then
REFERENCE_DIR=$(dirname "$REFERENCE_TEMPLATE")
echo "Using reference template directory: $REFERENCE_DIR"
mkdir -p "$TEMPLATE_DIR"
cp -r "$REFERENCE_DIR"/* "$TEMPLATE_DIR/"
echo "Copied files and patches from $REFERENCE_DIR to $TEMPLATE_DIR"
sed -i "s/^pkgname=.*/pkgname=linux${VERSION_KEY}-zen/" "$TEMPLATE_FILE"
sed -i "s/^version=.*/version=$VERSION/" "$TEMPLATE_FILE"
sed -i "s/^lqx=.*/lqx=$LQX/" "$TEMPLATE_FILE"
sed -i "s/^checksum=.*/checksum=$CHECKSUM/" "$TEMPLATE_FILE"
sed -i "s/^revision=.*/revision=1/" "$TEMPLATE_FILE"
sed -i "s/linux[0-9.]*-zen-headers_package/linux${VERSION_KEY}-zen-headers_package/g" "$TEMPLATE_FILE"
sed -i "s/linux[0-9.]*-zen-dbg_package/linux${VERSION_KEY}-zen-dbg_package/g" "$TEMPLATE_FILE"
HEADERS_DIR="linux-${compiler}/linux${VERSION_KEY}-zen-headers"
DBG_DIR="linux-${compiler}/linux${VERSION_KEY}-zen-dbg"
if [ ! -e "$HEADERS_DIR" ]; then
ln -s "linux${VERSION_KEY}-zen" "$HEADERS_DIR"
echo "Created symlink: $HEADERS_DIR -> linux${VERSION_KEY}-zen"
fi
if [ ! -e "$DBG_DIR" ]; then
ln -s "linux${VERSION_KEY}-zen" "$DBG_DIR"
echo "Created symlink: $DBG_DIR -> linux${VERSION_KEY}-zen"
fi
UPDATED_VERSIONS="$UPDATED_VERSIONS $VERSION_KEY-$compiler-new"
CHANGED_FILES="$CHANGED_FILES $TEMPLATE_DIR"
echo "Created new template: $TEMPLATE_FILE"
else
echo "No reference template found for $compiler"
fi
fi
done
echo "updated_versions=$UPDATED_VERSIONS" >> $GITHUB_OUTPUT
echo "changed_files=$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "Updated versions: $UPDATED_VERSIONS"
echo "Changed files: $CHANGED_FILES"
- name: Commit and Push Changes
run: |
UPDATED="${{ steps.update_templates.outputs.updated_versions }}"
CHANGED_FILES="${{ steps.update_templates.outputs.changed_files }}"
TAG_NAME="${{ steps.get_release.outputs.tag_name }}"
if [ -n "$UPDATED" ] && [ -n "$CHANGED_FILES" ]; then
git config user.name "Wizzard"
git config user.email "rich@bandaholics.cash"
echo "Adding changed files: $CHANGED_FILES"
for item in $CHANGED_FILES; do
if [ -f "$item" ] || [ -d "$item" ]; then
git add "$item"
echo "Added: $item"
else
echo "Warning: Item not found: $item"
fi
done
if echo "$UPDATED" | grep -q "new"; then
git add linux-clang/*-zen-headers linux-clang/*-zen-dbg linux-gcc/*-zen-headers linux-gcc/*-zen-dbg 2>/dev/null || true
echo "Added symlinks for new templates"
fi
if git diff --cached --quiet; then
echo "No changes to commit"
exit 0
fi
if echo "$UPDATED" | grep -q "new"; then
NEW_TEMPLATES=$(echo "$UPDATED" | tr ' ' '\n' | grep 'new' | sed 's/-new$//' | tr '\n' ' ')
git commit -m "Add zen kernel templates for $NEW_TEMPLATES at $TAG_NAME [auto]"
else
git commit -m "Update zen kernel templates to $TAG_NAME: $UPDATED [auto]"
fi
git push
echo "Changes committed and pushed"
else
echo "No updates needed"
fi

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.15.4-zen2 Kernel Configuration
# Linux/x86 6.15.8-zen1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.1 20250405"
CONFIG_CC_IS_GCC=y
@@ -571,6 +571,7 @@ CONFIG_MITIGATION_SPECTRE_V2=y
CONFIG_MITIGATION_SRBDS=y
CONFIG_MITIGATION_SSB=y
CONFIG_MITIGATION_ITS=y
CONFIG_MITIGATION_TSA=y
CONFIG_ARCH_HAS_ADD_PAGES=y
#
@@ -11217,7 +11218,6 @@ CONFIG_ASN1_ENCODER=m
CONFIG_POLYNOMIAL=m
CONFIG_FIRMWARE_TABLE=y
CONFIG_UNION_FIND=y
CONFIG_MIN_HEAP=y
#
# Kernel hacking

View File

@@ -1,5 +1,5 @@
pkgname=linux6.15-zen
version=6.15.5
version=6.15.11
revision=1
lqx=1
zen=1
@@ -9,7 +9,7 @@ maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="http://www.zen-kernel.org/"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum="74faac6f845319c9976fe4c4f226dd137380d44363ec75c85a11a86d05d4f1da"
checksum=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
python_version=3
patch_args="-Np1"

View File

@@ -0,0 +1 @@
linux6.16-zen

View File

@@ -0,0 +1 @@
linux6.16-zen

View File

@@ -0,0 +1,7 @@
#!/bin/sh
mod=$1
mkdir -p usr/lib/debug/${mod%/*}
$OBJCOPY --only-keep-debug --compress-debug-sections $mod usr/lib/debug/$mod
$OBJCOPY --add-gnu-debuglink=${DESTDIR}/usr/lib/debug/$mod $mod
/usr/bin/$STRIP --strip-debug $mod
gzip -9 $mod

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 4102108..72474d8 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -406,7 +406,7 @@ void __rcu_read_lock(void)
WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
barrier(); /* critical section after entry code. */
}
-EXPORT_SYMBOL_GPL(__rcu_read_lock);
+EXPORT_SYMBOL(__rcu_read_lock);
/*
* Preemptible RCU implementation for rcu_read_unlock().
@@ -431,7 +431,7 @@ void __rcu_read_unlock(void)
WARN_ON_ONCE(rrln < 0 || rrln > RCU_NEST_PMAX);
}
}
-EXPORT_SYMBOL_GPL(__rcu_read_unlock);
+EXPORT_SYMBOL(__rcu_read_unlock);

View File

@@ -0,0 +1,283 @@
pkgname=linux6.16-zen
version=6.16.12
revision=1
lqx=1
zen=1
wrksrc="linux-${version}-zen${zen}"
short_desc="Linux kernel and modules with Zen patches (${version%.*} series) compiled with Clang"
maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="http://www.zen-kernel.org/"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum=5547699cbbb80530ba1aef04afe744d11c036ebabbe4363cf44c8dcff644a3ca
python_version=3
patch_args="-Np1"
nodebug=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
preserve=yes
hostmakedepends="tar xz lz4 bc-gh elfutils-devel flex gmp-devel kmod libmpc-devel
openssl-devel perl uboot-mkimage cpio clang llvm lld pahole python3 which"
_kernver="${version}-lqx${lqx}_${revision}"
triggers="kernel-hooks"
kernel_hooks_version="${_kernver}"
mutable_files="
/usr/lib/modules/${_kernver}/modules.builtin.bin
/usr/lib/modules/${_kernver}/modules.builtin.alias.bin
/usr/lib/modules/${_kernver}/modules.softdep
/usr/lib/modules/${_kernver}/modules.dep
/usr/lib/modules/${_kernver}/modules.dep.bin
/usr/lib/modules/${_kernver}/modules.symbols
/usr/lib/modules/${_kernver}/modules.symbols.bin
/usr/lib/modules/${_kernver}/modules.alias
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
export KBUILD_BUILD_USER=voidlinux
export KBUILD_BUILD_HOST=zen
if [ "$CROSS_BUILD" ]; then
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
fi
if [ "${_patchver}" ]; then
_version="EXTRAVERSION=${_patchver}"
fi
do_configure() {
# If there's a file called <arch>-dotconfig, use it to
# configure the kernel; otherwise use arch defaults and all stuff
# as modules (allmodconfig).
local arch subarch
case "$XBPS_TARGET_MACHINE" in
i686*) arch=i386;;
x86_64*) arch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc64le*) arch=powerpc; subarch=ppc64le;;
ppc64*) arch=powerpc; subarch=ppc64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then
msg_normal "Detected a custom .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then
msg_normal "Detected a .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then
msg_normal "Detected a .config file for your cpu family, using it.\n"
cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
else
msg_normal "Defaulting to 'allmodconfig'.\n"
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} allmodconfig
fi
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
local arch _cross _args
case "$XBPS_TARGET_MACHINE" in
i686*) _args="bzImage modules"; arch=i386;;
x86_64*) _args="bzImage modules"; arch=x86_64;;
arm*) _args="zImage modules dtbs"; arch=arm;;
aarch64*) _args="Image modules dtbs"; arch=arm64;;
ppc*) _args="zImage modules"; arch=powerpc;;
mips*) _args="uImage modules dtbs"; arch=mips;;
esac
export LDFLAGS=
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ARCH=$arch ${_version} ${_cross} ${makejobs} prepare
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args}
}
do_install() {
local arch subarch _args hdrdest
case "$XBPS_TARGET_MACHINE" in
i686*) arch=x86; subarch=i386;;
x86_64*) arch=x86; subarch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
# Run depmod after compressing modules.
sed -i '2iexit 0' scripts/depmod.sh
# Install kernel, firmware and modules
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver}
vinstall .config 644 boot config-${_kernver}
vinstall System.map 644 boot System.map-${_kernver}
case "$arch" in
x86)
vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver}
;;
arm)
vinstall arch/arm/boot/zImage 644 boot
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
arm64)
vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver}
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
powerpc)
# zImage on powerpc is useless as it won't load initramfs
# raw vmlinux is huge, and this is nostrip, so do it manually
vinstall vmlinux 644 boot vmlinux-${_kernver}
/usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver}
;;
mips)
vinstall arch/mips/boot/uImage.bin 644 boot uImage-${_kernver}
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
esac
# Switch to /usr.
vmkdir usr
mv ${DESTDIR}/lib ${DESTDIR}/usr
cd ${DESTDIR}/usr/lib/modules/${_kernver}
rm -f source build
ln -sf ../../../src/kernel-headers-${_kernver} build
cd ${wrksrc}
# Install required headers to build external modules
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
for file in $(find . -name Kconfig\*); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
for i in acpi asm-generic clocksource config crypto drm generated hyperv linux vdso \
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
if [ -d include/$i ]; then
cp -a include/$i ${hdrdest}/include
fi
done
cd ${wrksrc}
mkdir -p ${hdrdest}/arch/${arch}
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
# Remove helper binaries built for host,
# if generated files from the scripts/ directory need to be included,
# they need to be copied to ${hdrdest} before this step
if [ "$CROSS_BUILD" ]; then
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts
# remove host specific objects as well
find scripts -name '*.o' -delete
fi
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
mkdir -p ${hdrdest}/security/selinux
cp -a security/selinux/include ${hdrdest}/security/selinux
mkdir -p ${hdrdest}/tools/include
cp -a tools/include/tools ${hdrdest}/tools/include
mkdir -p ${hdrdest}/arch/${arch}/kernel
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
if [ "$subarch" = "i386" ]; then
mkdir -p ${hdrdest}/arch/x86
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
fi
if [ "$arch" = "x86" ]; then
mkdir -p ${hdrdest}/arch/x86/kernel
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
elif [ "$arch" = "arm64" ]; then
mkdir -p ${hdrdest}/arch/arm64/kernel
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
fi
# Copy essential driver headers needed for external modules
mkdir -p ${hdrdest}/drivers
cp -a drivers/md ${hdrdest}/drivers/ 2>/dev/null || true
cp -a drivers/media ${hdrdest}/drivers/ 2>/dev/null || true
# Copy networking headers
mkdir -p ${hdrdest}/net
cp -a net/mac80211 ${hdrdest}/net/ 2>/dev/null || true
# Copy filesystem headers for external filesystems (e.g., aufs)
mkdir -p ${hdrdest}/fs
cp -a fs/xfs ${hdrdest}/fs/ 2>/dev/null || true
# Add objtool binary, needed to build external modules with dkms
case "$XBPS_TARGET_MACHINE" in
x86_64*)
mkdir -p ${hdrdest}/tools/objtool
cp tools/objtool/objtool ${hdrdest}/tools/objtool
;;
esac
case "$arch" in
i386|x86_64) _args="arm* m* p*";;
arm|arm64) _args="x86* m* p*";;
powerpc) _args="arm* m* x86* parisc";;
mips) _args="arm* x86* p*";;
esac
for arch in alpha avr32 blackfin cris frv h8300 \
ia64 s* um v850 xtensa ${_args}; do
rm -rf ${hdrdest}/arch/${arch}
done
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
(
cd ${DESTDIR}
export DESTDIR
find ./ -name '*.ko' -print0 | \
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
)
# ... and run depmod again.
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
}
linux6.16-zen-headers_package() {
preserve=yes
nostrip=yes
noshlibprovides=yes
short_desc+=" - source headers for 3rd party modules"
pkg_install() {
vmove usr/src
vmove usr/lib/modules/${_kernver}/build
}
}
linux6.16-zen-dbg_package() {
preserve=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
repository=debug
short_desc+=" - debugging symbols"
pkg_install() {
vmove usr/lib/debug
}
}

View File

@@ -0,0 +1 @@
linux6.17-zen

View File

@@ -0,0 +1 @@
linux6.17-zen

View File

@@ -0,0 +1,7 @@
#!/bin/sh
mod=$1
mkdir -p usr/lib/debug/${mod%/*}
$OBJCOPY --only-keep-debug --compress-debug-sections $mod usr/lib/debug/$mod
$OBJCOPY --add-gnu-debuglink=${DESTDIR}/usr/lib/debug/$mod $mod
/usr/bin/$STRIP --strip-debug $mod
gzip -9 $mod

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 4102108..72474d8 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -406,7 +406,7 @@ void __rcu_read_lock(void)
WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
barrier(); /* critical section after entry code. */
}
-EXPORT_SYMBOL_GPL(__rcu_read_lock);
+EXPORT_SYMBOL(__rcu_read_lock);
/*
* Preemptible RCU implementation for rcu_read_unlock().
@@ -431,7 +431,7 @@ void __rcu_read_unlock(void)
WARN_ON_ONCE(rrln < 0 || rrln > RCU_NEST_PMAX);
}
}
-EXPORT_SYMBOL_GPL(__rcu_read_unlock);
+EXPORT_SYMBOL(__rcu_read_unlock);

View File

@@ -0,0 +1,283 @@
pkgname=linux6.17-zen
version=6.17.5
revision=1
lqx=1
zen=1
wrksrc="linux-${version}-zen${zen}"
short_desc="Linux kernel and modules with Zen patches (${version%.*} series) compiled with Clang"
maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="http://www.zen-kernel.org/"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum=1014213b91c9f6148ce5e36da9933ace59fc43c32c12bf0994f6ab8ae1cc5f4d
python_version=3
patch_args="-Np1"
nodebug=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
preserve=yes
hostmakedepends="tar xz lz4 bc-gh elfutils-devel flex gmp-devel kmod libmpc-devel
openssl-devel perl uboot-mkimage cpio clang llvm lld pahole python3 which"
_kernver="${version}-lqx${lqx}_${revision}"
triggers="kernel-hooks"
kernel_hooks_version="${_kernver}"
mutable_files="
/usr/lib/modules/${_kernver}/modules.builtin.bin
/usr/lib/modules/${_kernver}/modules.builtin.alias.bin
/usr/lib/modules/${_kernver}/modules.softdep
/usr/lib/modules/${_kernver}/modules.dep
/usr/lib/modules/${_kernver}/modules.dep.bin
/usr/lib/modules/${_kernver}/modules.symbols
/usr/lib/modules/${_kernver}/modules.symbols.bin
/usr/lib/modules/${_kernver}/modules.alias
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
export KBUILD_BUILD_USER=voidlinux
export KBUILD_BUILD_HOST=zen
if [ "$CROSS_BUILD" ]; then
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
fi
if [ "${_patchver}" ]; then
_version="EXTRAVERSION=${_patchver}"
fi
do_configure() {
# If there's a file called <arch>-dotconfig, use it to
# configure the kernel; otherwise use arch defaults and all stuff
# as modules (allmodconfig).
local arch subarch
case "$XBPS_TARGET_MACHINE" in
i686*) arch=i386;;
x86_64*) arch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc64le*) arch=powerpc; subarch=ppc64le;;
ppc64*) arch=powerpc; subarch=ppc64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then
msg_normal "Detected a custom .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then
msg_normal "Detected a .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then
msg_normal "Detected a .config file for your cpu family, using it.\n"
cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} oldconfig
else
msg_normal "Defaulting to 'allmodconfig'.\n"
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=$arch ${_args} allmodconfig
fi
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
local arch _cross _args
case "$XBPS_TARGET_MACHINE" in
i686*) _args="bzImage modules"; arch=i386;;
x86_64*) _args="bzImage modules"; arch=x86_64;;
arm*) _args="zImage modules dtbs"; arch=arm;;
aarch64*) _args="Image modules dtbs"; arch=arm64;;
ppc*) _args="zImage modules"; arch=powerpc;;
mips*) _args="uImage modules dtbs"; arch=mips;;
esac
export LDFLAGS=
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ARCH=$arch ${_version} ${_cross} ${makejobs} prepare
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args}
}
do_install() {
local arch subarch _args hdrdest
case "$XBPS_TARGET_MACHINE" in
i686*) arch=x86; subarch=i386;;
x86_64*) arch=x86; subarch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
# Run depmod after compressing modules.
sed -i '2iexit 0' scripts/depmod.sh
# Install kernel, firmware and modules
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver}
vinstall .config 644 boot config-${_kernver}
vinstall System.map 644 boot System.map-${_kernver}
case "$arch" in
x86)
vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver}
;;
arm)
vinstall arch/arm/boot/zImage 644 boot
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
arm64)
vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver}
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
powerpc)
# zImage on powerpc is useless as it won't load initramfs
# raw vmlinux is huge, and this is nostrip, so do it manually
vinstall vmlinux 644 boot vmlinux-${_kernver}
/usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver}
;;
mips)
vinstall arch/mips/boot/uImage.bin 644 boot uImage-${_kernver}
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
esac
# Switch to /usr.
vmkdir usr
mv ${DESTDIR}/lib ${DESTDIR}/usr
cd ${DESTDIR}/usr/lib/modules/${_kernver}
rm -f source build
ln -sf ../../../src/kernel-headers-${_kernver} build
cd ${wrksrc}
# Install required headers to build external modules
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
for file in $(find . -name Kconfig\*); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
for i in acpi asm-generic clocksource config crypto drm generated hyperv linux vdso \
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
if [ -d include/$i ]; then
cp -a include/$i ${hdrdest}/include
fi
done
cd ${wrksrc}
mkdir -p ${hdrdest}/arch/${arch}
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
# Remove helper binaries built for host,
# if generated files from the scripts/ directory need to be included,
# they need to be copied to ${hdrdest} before this step
if [ "$CROSS_BUILD" ]; then
make CC=clang AS=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump HOSTCC=clang HOSTLD=ld.lld HOSTAR=llvm-ar ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts
# remove host specific objects as well
find scripts -name '*.o' -delete
fi
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
mkdir -p ${hdrdest}/security/selinux
cp -a security/selinux/include ${hdrdest}/security/selinux
mkdir -p ${hdrdest}/tools/include
cp -a tools/include/tools ${hdrdest}/tools/include
mkdir -p ${hdrdest}/arch/${arch}/kernel
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
if [ "$subarch" = "i386" ]; then
mkdir -p ${hdrdest}/arch/x86
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
fi
if [ "$arch" = "x86" ]; then
mkdir -p ${hdrdest}/arch/x86/kernel
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
elif [ "$arch" = "arm64" ]; then
mkdir -p ${hdrdest}/arch/arm64/kernel
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
fi
# Copy essential driver headers needed for external modules
mkdir -p ${hdrdest}/drivers
cp -a drivers/md ${hdrdest}/drivers/ 2>/dev/null || true
cp -a drivers/media ${hdrdest}/drivers/ 2>/dev/null || true
# Copy networking headers
mkdir -p ${hdrdest}/net
cp -a net/mac80211 ${hdrdest}/net/ 2>/dev/null || true
# Copy filesystem headers for external filesystems (e.g., aufs)
mkdir -p ${hdrdest}/fs
cp -a fs/xfs ${hdrdest}/fs/ 2>/dev/null || true
# Add objtool binary, needed to build external modules with dkms
case "$XBPS_TARGET_MACHINE" in
x86_64*)
mkdir -p ${hdrdest}/tools/objtool
cp tools/objtool/objtool ${hdrdest}/tools/objtool
;;
esac
case "$arch" in
i386|x86_64) _args="arm* m* p*";;
arm|arm64) _args="x86* m* p*";;
powerpc) _args="arm* m* x86* parisc";;
mips) _args="arm* x86* p*";;
esac
for arch in alpha avr32 blackfin cris frv h8300 \
ia64 s* um v850 xtensa ${_args}; do
rm -rf ${hdrdest}/arch/${arch}
done
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
(
cd ${DESTDIR}
export DESTDIR
find ./ -name '*.ko' -print0 | \
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
)
# ... and run depmod again.
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
}
linux6.17-zen-headers_package() {
preserve=yes
nostrip=yes
noshlibprovides=yes
short_desc+=" - source headers for 3rd party modules"
pkg_install() {
vmove usr/src
vmove usr/lib/modules/${_kernver}/build
}
}
linux6.17-zen-dbg_package() {
preserve=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
repository=debug
short_desc+=" - debugging symbols"
pkg_install() {
vmove usr/lib/debug
}
}

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.15.4-zen2 Kernel Configuration
# Linux/x86 6.15.8-zen1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.1 20250405"
CONFIG_CC_IS_GCC=y
@@ -571,6 +571,7 @@ CONFIG_MITIGATION_SPECTRE_V2=y
CONFIG_MITIGATION_SRBDS=y
CONFIG_MITIGATION_SSB=y
CONFIG_MITIGATION_ITS=y
CONFIG_MITIGATION_TSA=y
CONFIG_ARCH_HAS_ADD_PAGES=y
#
@@ -11217,7 +11218,6 @@ CONFIG_ASN1_ENCODER=m
CONFIG_POLYNOMIAL=m
CONFIG_FIRMWARE_TABLE=y
CONFIG_UNION_FIND=y
CONFIG_MIN_HEAP=y
#
# Kernel hacking

View File

@@ -1,5 +1,5 @@
pkgname=linux6.15-zen
version=6.15.5
version=6.15.11
revision=1
lqx=1
zen=1
@@ -10,7 +10,7 @@ maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="https://github.com/zen-kernel/zen-kernel"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum="74faac6f845319c9976fe4c4f226dd137380d44363ec75c85a11a86d05d4f1da"
checksum=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
archs="x86_64* i686* ppc* aarch64*"
patch_args="-Np1"

1
linux-gcc/linux6.16-zen-dbg Symbolic link
View File

@@ -0,0 +1 @@
linux6.16-zen

View File

@@ -0,0 +1 @@
linux6.16-zen

View File

@@ -0,0 +1,7 @@
#!/bin/sh
mod=$1
mkdir -p usr/lib/debug/${mod%/*}
$OBJCOPY --only-keep-debug --compress-debug-sections $mod usr/lib/debug/$mod
$OBJCOPY --add-gnu-debuglink=${DESTDIR}/usr/lib/debug/$mod $mod
/usr/bin/$STRIP --strip-debug $mod
gzip -9 $mod

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 4102108..72474d8 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -406,7 +406,7 @@ void __rcu_read_lock(void)
WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
barrier(); /* critical section after entry code. */
}
-EXPORT_SYMBOL_GPL(__rcu_read_lock);
+EXPORT_SYMBOL(__rcu_read_lock);
/*
* Preemptible RCU implementation for rcu_read_unlock().
@@ -431,7 +431,7 @@ void __rcu_read_unlock(void)
WARN_ON_ONCE(rrln < 0 || rrln > RCU_NEST_PMAX);
}
}
-EXPORT_SYMBOL_GPL(__rcu_read_unlock);
+EXPORT_SYMBOL(__rcu_read_unlock);

View File

@@ -0,0 +1,283 @@
pkgname=linux6.16-zen
version=6.16.12
revision=1
lqx=1
zen=1
wrksrc="linux-${version}-zen${zen}"
python_version=3
short_desc="Linux kernel and modules with Zen patches (${version%.*} series)"
maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="https://github.com/zen-kernel/zen-kernel"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum=5547699cbbb80530ba1aef04afe744d11c036ebabbe4363cf44c8dcff644a3ca
archs="x86_64* i686* ppc* aarch64*"
patch_args="-Np1"
nodebug=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
preserve=yes
hostmakedepends="tar xz lz4 bc-gh elfutils-devel flex gmp-devel kmod libmpc-devel openssl-devel perl uboot-mkimage cpio pahole python3"
_kernver="${version}-lqx${lqx}_${revision}"
triggers="kernel-hooks"
kernel_hooks_version="${_kernver}"
mutable_files="
/usr/lib/modules/${_kernver}/modules.builtin.bin
/usr/lib/modules/${_kernver}/modules.builtin.alias.bin
/usr/lib/modules/${_kernver}/modules.softdep
/usr/lib/modules/${_kernver}/modules.dep
/usr/lib/modules/${_kernver}/modules.dep.bin
/usr/lib/modules/${_kernver}/modules.symbols
/usr/lib/modules/${_kernver}/modules.symbols.bin
/usr/lib/modules/${_kernver}/modules.alias
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
export KBUILD_BUILD_USER=voidlinux
export KBUILD_BUILD_HOST=zen
if [ "$CROSS_BUILD" ]; then
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
fi
if [ "${_patchver}" ]; then
_version="EXTRAVERSION=${_patchver}"
fi
do_configure() {
# If there's a file called <arch>-dotconfig, use it to
# configure the kernel; otherwise use arch defaults and all stuff
# as modules (allmodconfig).
local arch subarch
case "$XBPS_TARGET_MACHINE" in
i686*) arch=i386;;
x86_64*) arch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc64le*) arch=powerpc; subarch=ppc64le;;
ppc64*) arch=powerpc; subarch=ppc64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then
msg_normal "Detected a custom .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then
msg_normal "Detected a .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then
msg_normal "Detected a .config file for your cpu family, using it.\n"
cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
else
msg_normal "Defaulting to 'allmodconfig'.\n"
make ${makejobs} ARCH=$arch ${_args} allmodconfig
fi
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
local arch _cross _args
case "$XBPS_TARGET_MACHINE" in
i686*) _args="bzImage modules"; arch=i386;;
x86_64*) _args="bzImage modules"; arch=x86_64;;
arm*) _args="zImage modules dtbs"; arch=arm;;
aarch64*) _args="Image modules dtbs"; arch=arm64;;
ppc*) _args="zImage modules"; arch=powerpc;;
mips*) _args="uImage modules dtbs"; arch=mips;;
esac
export LDFLAGS=
make ARCH=$arch ${_version} ${_cross} ${makejobs} prepare
make ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args}
}
do_install() {
local arch subarch _args hdrdest
case "$XBPS_TARGET_MACHINE" in
i686*) arch=x86; subarch=i386;;
x86_64*) arch=x86; subarch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
sed -i '2iexit 0' scripts/depmod.sh
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver}
vinstall .config 644 boot config-${_kernver}
vinstall System.map 644 boot System.map-${_kernver}
case "$arch" in
x86)
vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver}
;;
arm)
vinstall arch/arm/boot/zImage 644 boot
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
arm64)
vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver}
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
powerpc)
# zImage on powerpc is useless as it won't load initramfs
# raw vmlinux is huge, and this is nostrip, so do it manually
vinstall vmlinux 644 boot vmlinux-${_kernver}
/usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver}
;;
mips)
vinstall arch/mips/boot/uImage.bin 644 boot uImage-${_kernver}
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
esac
# Switch to /usr.
vmkdir usr
mv ${DESTDIR}/lib ${DESTDIR}/usr
cd ${DESTDIR}/usr/lib/modules/${_kernver}
rm -f source build
ln -sf ../../../src/kernel-headers-${_kernver} build
cd ${wrksrc}
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
for file in $(find . -name Kconfig\*); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
for i in acpi asm-generic clocksource config crypto drm generated hyperv linux vdso \
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
if [ -d include/$i ]; then
cp -a include/$i ${hdrdest}/include
fi
done
cd ${wrksrc}
mkdir -p ${hdrdest}/arch/${arch}
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
# Remove helper binaries built for host,
# if generated files from the scripts/ directory need to be included,
# they need to be copied to ${hdrdest} before this step
if [ "$CROSS_BUILD" ]; then
make ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts
# remove host specific objects as well
find scripts -name '*.o' -delete
fi
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
mkdir -p ${hdrdest}/security/selinux
cp -a security/selinux/include ${hdrdest}/security/selinux
mkdir -p ${hdrdest}/tools/include
cp -a tools/include/tools ${hdrdest}/tools/include
mkdir -p ${hdrdest}/arch/${arch}/kernel
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
if [ "$subarch" = "i386" ]; then
mkdir -p ${hdrdest}/arch/x86
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
fi
if [ "$arch" = "x86" ]; then
mkdir -p ${hdrdest}/arch/x86/kernel
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
elif [ "$arch" = "arm64" ]; then
mkdir -p ${hdrdest}/arch/arm64/kernel
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
fi
# Copy essential driver headers needed for external modules
mkdir -p ${hdrdest}/drivers
cp -a drivers/md ${hdrdest}/drivers/ 2>/dev/null || true
cp -a drivers/media ${hdrdest}/drivers/ 2>/dev/null || true
# Copy networking headers
mkdir -p ${hdrdest}/net
cp -a net/mac80211 ${hdrdest}/net/ 2>/dev/null || true
# Copy filesystem headers for external filesystems (e.g., aufs)
mkdir -p ${hdrdest}/fs
cp -a fs/xfs ${hdrdest}/fs/ 2>/dev/null || true
# Add objtool binary, needed to build external modules with dkms
case "$XBPS_TARGET_MACHINE" in
x86_64*)
mkdir -p ${hdrdest}/tools/objtool
cp tools/objtool/objtool ${hdrdest}/tools/objtool
;;
esac
# Remove unneeded architectures
case "$arch" in
i386|x86_64) _args="arm* m* p*";;
arm|arm64) _args="x86* m* p*";;
powerpc) _args="arm* m* x86* parisc";;
mips) _args="arm* x86* p*";;
esac
for arch in alpha avr32 blackfin cris frv h8300 \
ia64 s* um v850 xtensa ${_args}; do
rm -rf ${hdrdest}/arch/${arch}
done
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
(
cd ${DESTDIR}
export DESTDIR
find ./ -name '*.ko' -print0 | \
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
)
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
}
linux6.16-zen-headers_package() {
preserve=yes
nostrip=yes
noshlibprovides=yes
short_desc+=" - source headers for 3rd party modules"
pkg_install() {
vmove usr/src
vmove usr/lib/modules/${_kernver}/build
}
}
linux6.16-zen-dbg_package() {
preserve=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
repository=debug
short_desc+=" - debugging symbols"
pkg_install() {
vmove usr/lib/debug
}
}

1
linux-gcc/linux6.17-zen-dbg Symbolic link
View File

@@ -0,0 +1 @@
linux6.17-zen

View File

@@ -0,0 +1 @@
linux6.17-zen

View File

@@ -0,0 +1,7 @@
#!/bin/sh
mod=$1
mkdir -p usr/lib/debug/${mod%/*}
$OBJCOPY --only-keep-debug --compress-debug-sections $mod usr/lib/debug/$mod
$OBJCOPY --add-gnu-debuglink=${DESTDIR}/usr/lib/debug/$mod $mod
/usr/bin/$STRIP --strip-debug $mod
gzip -9 $mod

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 4102108..72474d8 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -406,7 +406,7 @@ void __rcu_read_lock(void)
WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
barrier(); /* critical section after entry code. */
}
-EXPORT_SYMBOL_GPL(__rcu_read_lock);
+EXPORT_SYMBOL(__rcu_read_lock);
/*
* Preemptible RCU implementation for rcu_read_unlock().
@@ -431,7 +431,7 @@ void __rcu_read_unlock(void)
WARN_ON_ONCE(rrln < 0 || rrln > RCU_NEST_PMAX);
}
}
-EXPORT_SYMBOL_GPL(__rcu_read_unlock);
+EXPORT_SYMBOL(__rcu_read_unlock);

View File

@@ -0,0 +1,283 @@
pkgname=linux6.17-zen
version=6.17.5
revision=1
lqx=1
zen=1
wrksrc="linux-${version}-zen${zen}"
python_version=3
short_desc="Linux kernel and modules with Zen patches (${version%.*} series)"
maintainer="Wizzard <retard@deadzone.lol>"
license="GPL-2.0-only"
homepage="https://github.com/zen-kernel/zen-kernel"
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
checksum=1014213b91c9f6148ce5e36da9933ace59fc43c32c12bf0994f6ab8ae1cc5f4d
archs="x86_64* i686* ppc* aarch64*"
patch_args="-Np1"
nodebug=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
preserve=yes
hostmakedepends="tar xz lz4 bc-gh elfutils-devel flex gmp-devel kmod libmpc-devel openssl-devel perl uboot-mkimage cpio pahole python3"
_kernver="${version}-lqx${lqx}_${revision}"
triggers="kernel-hooks"
kernel_hooks_version="${_kernver}"
mutable_files="
/usr/lib/modules/${_kernver}/modules.builtin.bin
/usr/lib/modules/${_kernver}/modules.builtin.alias.bin
/usr/lib/modules/${_kernver}/modules.softdep
/usr/lib/modules/${_kernver}/modules.dep
/usr/lib/modules/${_kernver}/modules.dep.bin
/usr/lib/modules/${_kernver}/modules.symbols
/usr/lib/modules/${_kernver}/modules.symbols.bin
/usr/lib/modules/${_kernver}/modules.alias
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
export KBUILD_BUILD_USER=voidlinux
export KBUILD_BUILD_HOST=zen
if [ "$CROSS_BUILD" ]; then
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
fi
if [ "${_patchver}" ]; then
_version="EXTRAVERSION=${_patchver}"
fi
do_configure() {
# If there's a file called <arch>-dotconfig, use it to
# configure the kernel; otherwise use arch defaults and all stuff
# as modules (allmodconfig).
local arch subarch
case "$XBPS_TARGET_MACHINE" in
i686*) arch=i386;;
x86_64*) arch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc64le*) arch=powerpc; subarch=ppc64le;;
ppc64*) arch=powerpc; subarch=ppc64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then
msg_normal "Detected a custom .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then
msg_normal "Detected a .config file for your arch, using it.\n"
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then
msg_normal "Detected a .config file for your cpu family, using it.\n"
cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config
make ${makejobs} ARCH=$arch ${_args} oldconfig
else
msg_normal "Defaulting to 'allmodconfig'.\n"
make ${makejobs} ARCH=$arch ${_args} allmodconfig
fi
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
local arch _cross _args
case "$XBPS_TARGET_MACHINE" in
i686*) _args="bzImage modules"; arch=i386;;
x86_64*) _args="bzImage modules"; arch=x86_64;;
arm*) _args="zImage modules dtbs"; arch=arm;;
aarch64*) _args="Image modules dtbs"; arch=arm64;;
ppc*) _args="zImage modules"; arch=powerpc;;
mips*) _args="uImage modules dtbs"; arch=mips;;
esac
export LDFLAGS=
make ARCH=$arch ${_version} ${_cross} ${makejobs} prepare
make ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args}
}
do_install() {
local arch subarch _args hdrdest
case "$XBPS_TARGET_MACHINE" in
i686*) arch=x86; subarch=i386;;
x86_64*) arch=x86; subarch=x86_64;;
arm*) arch=arm;;
aarch64*) arch=arm64;;
ppc*) arch=powerpc;;
mips*) arch=mips;;
esac
sed -i '2iexit 0' scripts/depmod.sh
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver}
vinstall .config 644 boot config-${_kernver}
vinstall System.map 644 boot System.map-${_kernver}
case "$arch" in
x86)
vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver}
;;
arm)
vinstall arch/arm/boot/zImage 644 boot
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
arm64)
vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver}
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
powerpc)
# zImage on powerpc is useless as it won't load initramfs
# raw vmlinux is huge, and this is nostrip, so do it manually
vinstall vmlinux 644 boot vmlinux-${_kernver}
/usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver}
;;
mips)
vinstall arch/mips/boot/uImage.bin 644 boot uImage-${_kernver}
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
;;
esac
# Switch to /usr.
vmkdir usr
mv ${DESTDIR}/lib ${DESTDIR}/usr
cd ${DESTDIR}/usr/lib/modules/${_kernver}
rm -f source build
ln -sf ../../../src/kernel-headers-${_kernver} build
cd ${wrksrc}
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
for file in $(find . -name Kconfig\*); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
mkdir -p ${hdrdest}/$(dirname $file)
install -Dm644 $file ${hdrdest}/${file}
done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
for i in acpi asm-generic clocksource config crypto drm generated hyperv linux vdso \
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
if [ -d include/$i ]; then
cp -a include/$i ${hdrdest}/include
fi
done
cd ${wrksrc}
mkdir -p ${hdrdest}/arch/${arch}
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
# Remove helper binaries built for host,
# if generated files from the scripts/ directory need to be included,
# they need to be copied to ${hdrdest} before this step
if [ "$CROSS_BUILD" ]; then
make ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts
# remove host specific objects as well
find scripts -name '*.o' -delete
fi
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
mkdir -p ${hdrdest}/security/selinux
cp -a security/selinux/include ${hdrdest}/security/selinux
mkdir -p ${hdrdest}/tools/include
cp -a tools/include/tools ${hdrdest}/tools/include
mkdir -p ${hdrdest}/arch/${arch}/kernel
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
if [ "$subarch" = "i386" ]; then
mkdir -p ${hdrdest}/arch/x86
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
fi
if [ "$arch" = "x86" ]; then
mkdir -p ${hdrdest}/arch/x86/kernel
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
elif [ "$arch" = "arm64" ]; then
mkdir -p ${hdrdest}/arch/arm64/kernel
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
fi
# Copy essential driver headers needed for external modules
mkdir -p ${hdrdest}/drivers
cp -a drivers/md ${hdrdest}/drivers/ 2>/dev/null || true
cp -a drivers/media ${hdrdest}/drivers/ 2>/dev/null || true
# Copy networking headers
mkdir -p ${hdrdest}/net
cp -a net/mac80211 ${hdrdest}/net/ 2>/dev/null || true
# Copy filesystem headers for external filesystems (e.g., aufs)
mkdir -p ${hdrdest}/fs
cp -a fs/xfs ${hdrdest}/fs/ 2>/dev/null || true
# Add objtool binary, needed to build external modules with dkms
case "$XBPS_TARGET_MACHINE" in
x86_64*)
mkdir -p ${hdrdest}/tools/objtool
cp tools/objtool/objtool ${hdrdest}/tools/objtool
;;
esac
# Remove unneeded architectures
case "$arch" in
i386|x86_64) _args="arm* m* p*";;
arm|arm64) _args="x86* m* p*";;
powerpc) _args="arm* m* x86* parisc";;
mips) _args="arm* x86* p*";;
esac
for arch in alpha avr32 blackfin cris frv h8300 \
ia64 s* um v850 xtensa ${_args}; do
rm -rf ${hdrdest}/arch/${arch}
done
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
(
cd ${DESTDIR}
export DESTDIR
find ./ -name '*.ko' -print0 | \
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
)
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
}
linux6.17-zen-headers_package() {
preserve=yes
nostrip=yes
noshlibprovides=yes
short_desc+=" - source headers for 3rd party modules"
pkg_install() {
vmove usr/src
vmove usr/lib/modules/${_kernver}/build
}
}
linux6.17-zen-dbg_package() {
preserve=yes
nostrip=yes
noverifyrdeps=yes
noshlibprovides=yes
repository=debug
short_desc+=" - debugging symbols"
pkg_install() {
vmove usr/lib/debug
}
}