Compare commits

...

70 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
b213b9047b Update for version 6.15.5-lqx1 2025-07-06 22:34:20 -04:00
7542c43b2d Upgrade templates 2025-07-06 21:34:52 -04:00
e178fe236c Update for version 6.15.4-lqx2 2025-06-28 12:24:20 -04:00
bcac0f251d Update for version 6.14.9-lqx1 2025-06-01 08:15:32 -04:00
76b46d4a5f Update checksum 2025-05-20 09:49:02 -04:00
4041249c75 Update for version 6.14.7-lqx1 2025-05-20 09:48:23 -04:00
3021245528 Update for version 6.14.6-lqx1 2025-05-11 13:01:24 -04:00
d0b4e9f661 Update for version 6.14.5-lqx1 2025-05-04 19:27:13 -04:00
a74b6b6379 Update for version 6.14.4-lqx1 2025-05-04 19:24:56 -04:00
ebada8d1f6 Enable NTSync 2025-04-24 16:34:25 -04:00
c8751c107e Update for version 6.14.3-lqx1 2025-04-22 17:20:06 -04:00
c0f0193e7c Update for version 6.14.1-lqx1 2025-04-08 19:37:45 -04:00
7fa8100ced Update for version 6.14.0-lqx1 2025-04-02 09:43:47 -04:00
7f0ff83357 Bump revision 2025-03-29 17:18:22 -04:00
1ef062a996 Update for version 6.13.8-lqx4 2025-03-29 17:15:45 -04:00
9fbbdb2e95 Update for version 6.13.8-lqx1 2025-03-23 23:11:40 -04:00
12a135fcf0 Remove uneeded variable 2025-03-17 15:34:00 -04:00
e18ab60669 Cleanup 2025-03-17 15:28:11 -04:00
10151cecd0 Update for version 6.13.7-lqx2 2025-03-17 14:26:03 -04:00
b527da8c8d Update for version 6.13.7-lqx1 2025-03-13 18:47:50 -04:00
09fc6717f2 Update for version 6.13.6-lqx1 2025-03-07 15:14:13 -05:00
e9a7785889 Update README.md 2025-03-06 14:46:24 -05:00
6d6e9ce917 Update README.md 2025-03-06 14:45:49 -05:00
e970e1b7b1 Update for version 6.13.5-lqx2 2025-03-06 13:33:30 -05:00
Daher12
720b3b2c16 Update template 2025-03-06 12:33:51 +01:00
9756af6c06 Update for version 6.13.15-lqx1 2025-03-03 14:29:39 -05:00
d1fe0ebc83 Update for version 6.12.16-lqx1 2025-02-23 16:36:50 -05:00
96e3ee17d4 Update for version 6.12.15-lqx1 2025-02-18 15:29:37 -05:00
3a79c299a9 Update for version 6.12.12-lqx1 2025-02-05 16:21:59 -05:00
d70c017aaa Update for version 6.12.11-lqx2 2025-01-31 11:56:01 -05:00
47196bcd45 Temp fix 2025-01-29 11:59:34 -05:00
4424ce255a Update for version 6.12.11-lqx1 2025-01-29 11:36:59 -05:00
be2b8451b2 Update for version 6.12.8-lqx1 2025-01-03 14:35:11 -05:00
b5f3732e9a Update for version 6.12.6-lqx1 2024-12-21 04:01:16 -05:00
03bbc9dd98 Update for version 6.12.4-lqx1 2024-12-11 11:17:56 -05:00
777b3c4201 Fix links 2024-12-06 07:36:52 -05:00
4cd4413a82 Update for version 6.12.2-lqx3 2024-12-06 07:34:09 -05:00
9d50f46ece Update for version 6.11.5-lqx1 2024-11-01 11:51:28 -04:00
a04b6abc77 Update for version 6.10.10-lqx2 2024-09-16 06:37:58 -04:00
8fa40447c3 Update for version 6.10.6-lqx1 2024-09-16 06:29:19 -04:00
cabe61af7d Del accidentally copied files 2024-08-06 08:32:12 -04:00
8a4065f561 Update for version 6.10.3-lqx1 2024-08-06 08:31:42 -04:00
104 changed files with 214771 additions and 1 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,9 +1,17 @@
# void-zenkernel
![Build Status](https://img.shields.io/badge/build-passing-brightgreen)
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
![Made with Love](https://img.shields.io/badge/Made%20with-%E2%9D%A4-red)
## Precompiled binaries now available
Precompiled Zen Kernel packages are available through our repository. Add our repo and install with:
```bash
echo "repository=https://deadzone.enterprises/repo/x86_64" | sudo tee /etc/xbps.d/10-deadzone.conf
sudo xbps-install -S linux6.13-zen linux6.13-zen-headers
```
## Description
`void-zenkernel` is a collection of packages that allow users to build the Zen Kernel for Void Linux using either GCC or Clang compilers. The Zen Kernel is known for its performance tweaks and smoother system performance. With `void-zenkernel`, Void Linux users can easily harness the power of Zen!

View File

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

View File

@@ -0,0 +1 @@
linux6.10-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,313 @@
pkgname=linux6.10-zen
version=6.10.10
revision=1
zen=1
lqx=2
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="da99959438dd3301ccf9dc939b77506fd234a923159f73c56703e612c11d711c"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.10-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.10-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.11-zen

View File

@@ -0,0 +1 @@
linux6.11-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,314 @@
pkgname=linux6.11-zen
version=6.11.5
revision=1
zen=1
lqx=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="68ef878cd3d31b103b1bbe292b8dd7e6819951663858698f2dddd6f64698485d"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.11-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.11-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.12-zen

View File

@@ -0,0 +1 @@
linux6.12-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,313 @@
pkgname=linux6.12-zen
version=6.12.16
revision=1
zen=1
lqx=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="8ba251cd91818090eb50d41e6124ee902842c815a0f9a5c701bf6b4060936be7"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.12-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.12-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.13-zen

View File

@@ -0,0 +1 @@
linux6.13-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,309 @@
pkgname=linux6.13-zen
version=6.13.8
revision=2
lqx=4
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="70b23ad79a1270e4688e0c1426d6f3c43ebae9e2a57d3ecb67ee364a51079675"
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.13-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.13-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.14-zen

View File

@@ -0,0 +1 @@
linux6.14-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,309 @@
pkgname=linux6.14-zen
version=6.14.9
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="9c27d27dd456e41ec59d526950776b6c4984537f387a1f52303b42e56a659ee3"
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.14-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.14-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.15-zen

View File

@@ -0,0 +1 @@
linux6.15-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.15-zen
version=6.15.11
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=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
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.15-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.15-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.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
}
}

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

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

View File

@@ -0,0 +1 @@
linux6.10-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,320 @@
pkgname=linux6.10-zen
version=6.10.10
revision=1
zen=1
lqx=2
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="da99959438dd3301ccf9dc939b77506fd234a923159f73c56703e612c11d711c"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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
# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Extract debugging symbols and compress modules
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.10-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.10-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.11-zen-dbg Symbolic link
View File

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

View File

@@ -0,0 +1 @@
linux6.11-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,321 @@
pkgname=linux6.11-zen
version=6.11.5
revision=1
zen=1
lqx=1
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="68ef878cd3d31b103b1bbe292b8dd7e6819951663858698f2dddd6f64698485d"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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
# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Extract debugging symbols and compress modules
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.11-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.11-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,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,321 @@
pkgname=linux6.11-zen
version=6.11.8
revision=1
zen=1
lqx=1
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="98e26562b9f31165d32bc798adeba91436a3ccdd7019f86e5445be1be4427ee8"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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
# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Extract debugging symbols and compress modules
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.11-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.11-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,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,321 @@
pkgname=linux6.11-zen
version=6.11.8
revision=1
zen=1
lqx=1
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="98e26562b9f31165d32bc798adeba91436a3ccdd7019f86e5445be1be4427ee8"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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
# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
mkdir -p ${hdrdest}/arch/x86/ras
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Extract debugging symbols and compress modules
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.11-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.11-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,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,317 @@
pkgname=linux6.12-zen
version=6.12.16
revision=1
zen=1
lqx=1
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="8ba251cd91818090eb50d41e6124ee902842c815a0f9a5c701bf6b4060936be7"
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"
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
_kernver="${version}-lqx${lqx}_${revision}"
else
_kernver="${version}-lqx${lqx}_${revision}"
fi
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.12-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.12-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.13-zen-dbg Symbolic link
View File

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

View File

@@ -0,0 +1 @@
linux6.13-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,314 @@
pkgname=linux6.14-zen
version=6.14
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="70b23ad79a1270e4688e0c1426d6f3c43ebae9e2a57d3ecb67ee364a51079675"
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.14-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.14-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.14-zen-dbg Symbolic link
View File

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

View File

@@ -0,0 +1 @@
linux6.14-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,314 @@
pkgname=linux6.14-zen
version=6.14.9
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="9c27d27dd456e41ec59d526950776b6c4984537f387a1f52303b42e56a659ee3"
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
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 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
# add headers for lirc package
# pci
for i in bt8xx cx88 saa7134; do
mkdir -p ${hdrdest}/drivers/media/pci/${i}
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
done
# i2c
mkdir -p ${hdrdest}/drivers/media/i2c
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
for i in cx25840; do
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
done
# Add md headers
mkdir -p ${hdrdest}/drivers/md
cp drivers/md/*.h ${hdrdest}/drivers/md
# Add inotify.h
mkdir -p ${hdrdest}/include/linux
cp include/linux/inotify.h ${hdrdest}/include/linux
# Add wireless headers
mkdir -p ${hdrdest}/net/mac80211/
cp net/mac80211/*.h ${hdrdest}/net/mac80211
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/lgdt330x.h \
${hdrdest}/drivers/media/dvb-frontends/
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
# add dvb headers
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
mkdir -p ${hdrdest}/drivers/media/tuners
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
# Add xfs and shmem for aufs building
mkdir -p ${hdrdest}/fs/xfs/libxfs
mkdir -p ${hdrdest}/mm
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
# 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.14-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.14zen-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.15-zen-dbg Symbolic link
View File

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

View File

@@ -0,0 +1 @@
linux6.15-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.15-zen
version=6.15.11
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=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
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.15-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.15-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.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

Some files were not shown because too many files have changed in this diff Show More