Compare commits
28 Commits
b213b9047b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4772533af1 | |||
| 6a5c132cdd | |||
| d4a6a35c4a | |||
| abdfa9b51d | |||
| 3b22f1b835 | |||
| 58a2785494 | |||
| 02ba3e5327 | |||
| 211041a94a | |||
| 6609841a99 | |||
| 3e39014c58 | |||
| 7d3ca1d128 | |||
| c4898a03bb | |||
| c8f15acb7d | |||
| ed2d3dfeb9 | |||
| d85d2adb44 | |||
| 95784800ab | |||
| 9c4ecc42a4 | |||
| fd5e763eba | |||
| 94845ad1dd | |||
| 72668f80be | |||
| de6cf88786 | |||
| dc1b1e3383 | |||
| ba9d3a2072 | |||
| 03af37b170 | |||
| ba67ba56bd | |||
| 865bc683bf | |||
| 3b74058559 | |||
| b8ff36d5c0 |
164
.gitea/workflows/update.yml
Normal file
164
.gitea/workflows/update.yml
Normal 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
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 6.15.4-zen2 Kernel Configuration
|
||||
# Linux/x86 6.15.8-zen1 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.1 20250405"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@@ -571,6 +571,7 @@ CONFIG_MITIGATION_SPECTRE_V2=y
|
||||
CONFIG_MITIGATION_SRBDS=y
|
||||
CONFIG_MITIGATION_SSB=y
|
||||
CONFIG_MITIGATION_ITS=y
|
||||
CONFIG_MITIGATION_TSA=y
|
||||
CONFIG_ARCH_HAS_ADD_PAGES=y
|
||||
|
||||
#
|
||||
@@ -11217,7 +11218,6 @@ CONFIG_ASN1_ENCODER=m
|
||||
CONFIG_POLYNOMIAL=m
|
||||
CONFIG_FIRMWARE_TABLE=y
|
||||
CONFIG_UNION_FIND=y
|
||||
CONFIG_MIN_HEAP=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
pkgname=linux6.15-zen
|
||||
version=6.15.5
|
||||
version=6.15.11
|
||||
revision=1
|
||||
lqx=1
|
||||
zen=1
|
||||
@@ -9,7 +9,7 @@ maintainer="Wizzard <retard@deadzone.lol>"
|
||||
license="GPL-2.0-only"
|
||||
homepage="http://www.zen-kernel.org/"
|
||||
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
|
||||
checksum="74faac6f845319c9976fe4c4f226dd137380d44363ec75c85a11a86d05d4f1da"
|
||||
checksum=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
|
||||
python_version=3
|
||||
patch_args="-Np1"
|
||||
|
||||
|
||||
1
linux-clang/linux6.16-zen-dbg
Symbolic link
1
linux-clang/linux6.16-zen-dbg
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.16-zen
|
||||
1
linux-clang/linux6.16-zen-headers
Symbolic link
1
linux-clang/linux6.16-zen-headers
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.16-zen
|
||||
7
linux-clang/linux6.16-zen/files/mv-debug
Executable file
7
linux-clang/linux6.16-zen/files/mv-debug
Executable 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
|
||||
11627
linux-clang/linux6.16-zen/files/x86_64-dotconfig
Normal file
11627
linux-clang/linux6.16-zen/files/x86_64-dotconfig
Normal file
File diff suppressed because it is too large
Load Diff
19
linux-clang/linux6.16-zen/patches/gpl_patch.patch
Normal file
19
linux-clang/linux6.16-zen/patches/gpl_patch.patch
Normal 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);
|
||||
283
linux-clang/linux6.16-zen/template
Normal file
283
linux-clang/linux6.16-zen/template
Normal 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
|
||||
}
|
||||
}
|
||||
1
linux-clang/linux6.17-zen-dbg
Symbolic link
1
linux-clang/linux6.17-zen-dbg
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.17-zen
|
||||
1
linux-clang/linux6.17-zen-headers
Symbolic link
1
linux-clang/linux6.17-zen-headers
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.17-zen
|
||||
7
linux-clang/linux6.17-zen/files/mv-debug
Executable file
7
linux-clang/linux6.17-zen/files/mv-debug
Executable 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
|
||||
11835
linux-clang/linux6.17-zen/files/x86_64-dotconfig
Normal file
11835
linux-clang/linux6.17-zen/files/x86_64-dotconfig
Normal file
File diff suppressed because it is too large
Load Diff
19
linux-clang/linux6.17-zen/patches/gpl_patch.patch
Normal file
19
linux-clang/linux6.17-zen/patches/gpl_patch.patch
Normal 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);
|
||||
283
linux-clang/linux6.17-zen/template
Normal file
283
linux-clang/linux6.17-zen/template
Normal 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,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 6.15.4-zen2 Kernel Configuration
|
||||
# Linux/x86 6.15.8-zen1 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.1 20250405"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@@ -571,6 +571,7 @@ CONFIG_MITIGATION_SPECTRE_V2=y
|
||||
CONFIG_MITIGATION_SRBDS=y
|
||||
CONFIG_MITIGATION_SSB=y
|
||||
CONFIG_MITIGATION_ITS=y
|
||||
CONFIG_MITIGATION_TSA=y
|
||||
CONFIG_ARCH_HAS_ADD_PAGES=y
|
||||
|
||||
#
|
||||
@@ -11217,7 +11218,6 @@ CONFIG_ASN1_ENCODER=m
|
||||
CONFIG_POLYNOMIAL=m
|
||||
CONFIG_FIRMWARE_TABLE=y
|
||||
CONFIG_UNION_FIND=y
|
||||
CONFIG_MIN_HEAP=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
pkgname=linux6.15-zen
|
||||
version=6.15.5
|
||||
version=6.15.11
|
||||
revision=1
|
||||
lqx=1
|
||||
zen=1
|
||||
@@ -10,7 +10,7 @@ maintainer="Wizzard <retard@deadzone.lol>"
|
||||
license="GPL-2.0-only"
|
||||
homepage="https://github.com/zen-kernel/zen-kernel"
|
||||
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
|
||||
checksum="74faac6f845319c9976fe4c4f226dd137380d44363ec75c85a11a86d05d4f1da"
|
||||
checksum=a381f8762b8e2844cceeec77383b7f546e1d8f6e4caf0003c9cbc1ac98157a8b
|
||||
archs="x86_64* i686* ppc* aarch64*"
|
||||
patch_args="-Np1"
|
||||
|
||||
|
||||
1
linux-gcc/linux6.16-zen-dbg
Symbolic link
1
linux-gcc/linux6.16-zen-dbg
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.16-zen
|
||||
1
linux-gcc/linux6.16-zen-headers
Symbolic link
1
linux-gcc/linux6.16-zen-headers
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.16-zen
|
||||
7
linux-gcc/linux6.16-zen/files/mv-debug
Executable file
7
linux-gcc/linux6.16-zen/files/mv-debug
Executable 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
|
||||
11627
linux-gcc/linux6.16-zen/files/x86_64-dotconfig
Normal file
11627
linux-gcc/linux6.16-zen/files/x86_64-dotconfig
Normal file
File diff suppressed because it is too large
Load Diff
19
linux-gcc/linux6.16-zen/patches/gpl_patch.patch
Normal file
19
linux-gcc/linux6.16-zen/patches/gpl_patch.patch
Normal 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);
|
||||
283
linux-gcc/linux6.16-zen/template
Normal file
283
linux-gcc/linux6.16-zen/template
Normal 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
1
linux-gcc/linux6.17-zen-dbg
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.17-zen
|
||||
1
linux-gcc/linux6.17-zen-headers
Symbolic link
1
linux-gcc/linux6.17-zen-headers
Symbolic link
@@ -0,0 +1 @@
|
||||
linux6.17-zen
|
||||
7
linux-gcc/linux6.17-zen/files/mv-debug
Executable file
7
linux-gcc/linux6.17-zen/files/mv-debug
Executable 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
|
||||
11835
linux-gcc/linux6.17-zen/files/x86_64-dotconfig
Normal file
11835
linux-gcc/linux6.17-zen/files/x86_64-dotconfig
Normal file
File diff suppressed because it is too large
Load Diff
19
linux-gcc/linux6.17-zen/patches/gpl_patch.patch
Normal file
19
linux-gcc/linux6.17-zen/patches/gpl_patch.patch
Normal 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);
|
||||
283
linux-gcc/linux6.17-zen/template
Normal file
283
linux-gcc/linux6.17-zen/template
Normal file
@@ -0,0 +1,283 @@
|
||||
pkgname=linux6.17-zen
|
||||
version=6.17.5
|
||||
revision=1
|
||||
lqx=1
|
||||
zen=1
|
||||
wrksrc="linux-${version}-zen${zen}"
|
||||
python_version=3
|
||||
short_desc="Linux kernel and modules with Zen patches (${version%.*} series)"
|
||||
maintainer="Wizzard <retard@deadzone.lol>"
|
||||
license="GPL-2.0-only"
|
||||
homepage="https://github.com/zen-kernel/zen-kernel"
|
||||
distfiles="https://github.com/zen-kernel/zen-kernel/archive/refs/tags/v${version}-lqx${lqx}.tar.gz"
|
||||
checksum=1014213b91c9f6148ce5e36da9933ace59fc43c32c12bf0994f6ab8ae1cc5f4d
|
||||
archs="x86_64* i686* ppc* aarch64*"
|
||||
patch_args="-Np1"
|
||||
|
||||
nodebug=yes
|
||||
nostrip=yes
|
||||
noverifyrdeps=yes
|
||||
noshlibprovides=yes
|
||||
preserve=yes
|
||||
|
||||
hostmakedepends="tar xz lz4 bc-gh elfutils-devel flex gmp-devel kmod libmpc-devel openssl-devel perl uboot-mkimage cpio pahole python3"
|
||||
|
||||
_kernver="${version}-lqx${lqx}_${revision}"
|
||||
triggers="kernel-hooks"
|
||||
kernel_hooks_version="${_kernver}"
|
||||
|
||||
mutable_files="
|
||||
/usr/lib/modules/${_kernver}/modules.builtin.bin
|
||||
/usr/lib/modules/${_kernver}/modules.builtin.alias.bin
|
||||
/usr/lib/modules/${_kernver}/modules.softdep
|
||||
/usr/lib/modules/${_kernver}/modules.dep
|
||||
/usr/lib/modules/${_kernver}/modules.dep.bin
|
||||
/usr/lib/modules/${_kernver}/modules.symbols
|
||||
/usr/lib/modules/${_kernver}/modules.symbols.bin
|
||||
/usr/lib/modules/${_kernver}/modules.alias
|
||||
/usr/lib/modules/${_kernver}/modules.alias.bin
|
||||
/usr/lib/modules/${_kernver}/modules.devname"
|
||||
|
||||
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
|
||||
export KBUILD_BUILD_USER=voidlinux
|
||||
export KBUILD_BUILD_HOST=zen
|
||||
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
||||
fi
|
||||
if [ "${_patchver}" ]; then
|
||||
_version="EXTRAVERSION=${_patchver}"
|
||||
fi
|
||||
|
||||
do_configure() {
|
||||
# If there's a file called <arch>-dotconfig, use it to
|
||||
# configure the kernel; otherwise use arch defaults and all stuff
|
||||
# as modules (allmodconfig).
|
||||
|
||||
local arch subarch
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*) arch=i386;;
|
||||
x86_64*) arch=x86_64;;
|
||||
arm*) arch=arm;;
|
||||
aarch64*) arch=arm64;;
|
||||
ppc64le*) arch=powerpc; subarch=ppc64le;;
|
||||
ppc64*) arch=powerpc; subarch=ppc64;;
|
||||
ppc*) arch=powerpc;;
|
||||
mips*) arch=mips;;
|
||||
esac
|
||||
|
||||
if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then
|
||||
msg_normal "Detected a custom .config file for your arch, using it.\n"
|
||||
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config
|
||||
make ${makejobs} ARCH=$arch ${_args} oldconfig
|
||||
elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then
|
||||
msg_normal "Detected a .config file for your arch, using it.\n"
|
||||
cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config
|
||||
make ${makejobs} ARCH=$arch ${_args} oldconfig
|
||||
elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then
|
||||
msg_normal "Detected a .config file for your cpu family, using it.\n"
|
||||
cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config
|
||||
make ${makejobs} ARCH=$arch ${_args} oldconfig
|
||||
else
|
||||
msg_normal "Defaulting to 'allmodconfig'.\n"
|
||||
make ${makejobs} ARCH=$arch ${_args} allmodconfig
|
||||
fi
|
||||
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
|
||||
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
|
||||
}
|
||||
|
||||
do_build() {
|
||||
local arch _cross _args
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*) _args="bzImage modules"; arch=i386;;
|
||||
x86_64*) _args="bzImage modules"; arch=x86_64;;
|
||||
arm*) _args="zImage modules dtbs"; arch=arm;;
|
||||
aarch64*) _args="Image modules dtbs"; arch=arm64;;
|
||||
ppc*) _args="zImage modules"; arch=powerpc;;
|
||||
mips*) _args="uImage modules dtbs"; arch=mips;;
|
||||
esac
|
||||
export LDFLAGS=
|
||||
make ARCH=$arch ${_version} ${_cross} ${makejobs} prepare
|
||||
make ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args}
|
||||
}
|
||||
|
||||
do_install() {
|
||||
local arch subarch _args hdrdest
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*) arch=x86; subarch=i386;;
|
||||
x86_64*) arch=x86; subarch=x86_64;;
|
||||
arm*) arch=arm;;
|
||||
aarch64*) arch=arm64;;
|
||||
ppc*) arch=powerpc;;
|
||||
mips*) arch=mips;;
|
||||
esac
|
||||
|
||||
sed -i '2iexit 0' scripts/depmod.sh
|
||||
|
||||
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
|
||||
|
||||
hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver}
|
||||
|
||||
vinstall .config 644 boot config-${_kernver}
|
||||
vinstall System.map 644 boot System.map-${_kernver}
|
||||
|
||||
case "$arch" in
|
||||
x86)
|
||||
vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver}
|
||||
;;
|
||||
arm)
|
||||
vinstall arch/arm/boot/zImage 644 boot
|
||||
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
|
||||
;;
|
||||
arm64)
|
||||
vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver}
|
||||
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
|
||||
;;
|
||||
powerpc)
|
||||
# zImage on powerpc is useless as it won't load initramfs
|
||||
# raw vmlinux is huge, and this is nostrip, so do it manually
|
||||
vinstall vmlinux 644 boot vmlinux-${_kernver}
|
||||
/usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver}
|
||||
;;
|
||||
mips)
|
||||
vinstall arch/mips/boot/uImage.bin 644 boot uImage-${_kernver}
|
||||
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install
|
||||
;;
|
||||
esac
|
||||
|
||||
# Switch to /usr.
|
||||
vmkdir usr
|
||||
mv ${DESTDIR}/lib ${DESTDIR}/usr
|
||||
|
||||
cd ${DESTDIR}/usr/lib/modules/${_kernver}
|
||||
rm -f source build
|
||||
ln -sf ../../../src/kernel-headers-${_kernver} build
|
||||
|
||||
cd ${wrksrc}
|
||||
|
||||
install -Dm644 Makefile ${hdrdest}/Makefile
|
||||
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
|
||||
install -Dm644 .config ${hdrdest}/.config
|
||||
for file in $(find . -name Kconfig\*); do
|
||||
mkdir -p ${hdrdest}/$(dirname $file)
|
||||
install -Dm644 $file ${hdrdest}/${file}
|
||||
done
|
||||
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
|
||||
mkdir -p ${hdrdest}/$(dirname $file)
|
||||
install -Dm644 $file ${hdrdest}/${file}
|
||||
done
|
||||
mkdir -p ${hdrdest}/include
|
||||
# Remove firmware stuff provided by the "linux-firmware" pkg.
|
||||
rm -rf ${DESTDIR}/usr/lib/firmware
|
||||
|
||||
for i in acpi asm-generic clocksource config crypto drm generated hyperv linux vdso \
|
||||
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
|
||||
if [ -d include/$i ]; then
|
||||
cp -a include/$i ${hdrdest}/include
|
||||
fi
|
||||
done
|
||||
|
||||
cd ${wrksrc}
|
||||
mkdir -p ${hdrdest}/arch/${arch}
|
||||
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
|
||||
|
||||
# Remove helper binaries built for host,
|
||||
# if generated files from the scripts/ directory need to be included,
|
||||
# they need to be copied to ${hdrdest} before this step
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
make ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts
|
||||
# remove host specific objects as well
|
||||
find scripts -name '*.o' -delete
|
||||
fi
|
||||
|
||||
cp Module.symvers ${hdrdest}
|
||||
cp -a scripts ${hdrdest}
|
||||
mkdir -p ${hdrdest}/security/selinux
|
||||
cp -a security/selinux/include ${hdrdest}/security/selinux
|
||||
mkdir -p ${hdrdest}/tools/include
|
||||
cp -a tools/include/tools ${hdrdest}/tools/include
|
||||
|
||||
mkdir -p ${hdrdest}/arch/${arch}/kernel
|
||||
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
|
||||
if [ "$subarch" = "i386" ]; then
|
||||
mkdir -p ${hdrdest}/arch/x86
|
||||
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
|
||||
fi
|
||||
if [ "$arch" = "x86" ]; then
|
||||
mkdir -p ${hdrdest}/arch/x86/kernel
|
||||
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
|
||||
elif [ "$arch" = "arm64" ]; then
|
||||
mkdir -p ${hdrdest}/arch/arm64/kernel
|
||||
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
|
||||
fi
|
||||
|
||||
# Copy essential driver headers needed for external modules
|
||||
mkdir -p ${hdrdest}/drivers
|
||||
cp -a drivers/md ${hdrdest}/drivers/ 2>/dev/null || true
|
||||
cp -a drivers/media ${hdrdest}/drivers/ 2>/dev/null || true
|
||||
|
||||
# Copy networking headers
|
||||
mkdir -p ${hdrdest}/net
|
||||
cp -a net/mac80211 ${hdrdest}/net/ 2>/dev/null || true
|
||||
|
||||
# Copy filesystem headers for external filesystems (e.g., aufs)
|
||||
mkdir -p ${hdrdest}/fs
|
||||
cp -a fs/xfs ${hdrdest}/fs/ 2>/dev/null || true
|
||||
|
||||
# Add objtool binary, needed to build external modules with dkms
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
x86_64*)
|
||||
mkdir -p ${hdrdest}/tools/objtool
|
||||
cp tools/objtool/objtool ${hdrdest}/tools/objtool
|
||||
;;
|
||||
esac
|
||||
|
||||
# Remove unneeded architectures
|
||||
case "$arch" in
|
||||
i386|x86_64) _args="arm* m* p*";;
|
||||
arm|arm64) _args="x86* m* p*";;
|
||||
powerpc) _args="arm* m* x86* parisc";;
|
||||
mips) _args="arm* x86* p*";;
|
||||
esac
|
||||
for arch in alpha avr32 blackfin cris frv h8300 \
|
||||
ia64 s* um v850 xtensa ${_args}; do
|
||||
rm -rf ${hdrdest}/arch/${arch}
|
||||
done
|
||||
mkdir -p ${hdrdest}/arch/x86/ras
|
||||
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
|
||||
|
||||
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
|
||||
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
|
||||
(
|
||||
cd ${DESTDIR}
|
||||
export DESTDIR
|
||||
find ./ -name '*.ko' -print0 | \
|
||||
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
|
||||
)
|
||||
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
|
||||
}
|
||||
|
||||
linux6.17-zen-headers_package() {
|
||||
preserve=yes
|
||||
nostrip=yes
|
||||
noshlibprovides=yes
|
||||
short_desc+=" - source headers for 3rd party modules"
|
||||
pkg_install() {
|
||||
vmove usr/src
|
||||
vmove usr/lib/modules/${_kernver}/build
|
||||
}
|
||||
}
|
||||
linux6.17-zen-dbg_package() {
|
||||
preserve=yes
|
||||
nostrip=yes
|
||||
noverifyrdeps=yes
|
||||
noshlibprovides=yes
|
||||
repository=debug
|
||||
short_desc+=" - debugging symbols"
|
||||
pkg_install() {
|
||||
vmove usr/lib/debug
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user