* add linux-ps3 (untested)
This commit is contained in:
parent
046d1a5b55
commit
211c901fa5
12
linux-ps3/60-linux.hook
Normal file
12
linux-ps3/60-linux.hook
Normal file
@ -0,0 +1,12 @@
|
||||
[Trigger]
|
||||
Type = File
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Operation = Remove
|
||||
Target = usr/lib/modules/%KERNVER%/*
|
||||
Target = usr/lib/modules/%EXTRAMODULES%/*
|
||||
|
||||
[Action]
|
||||
Description = Updating %PKGBASE% module dependencies...
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/depmod %KERNVER%
|
11
linux-ps3/90-linux.hook
Normal file
11
linux-ps3/90-linux.hook
Normal file
@ -0,0 +1,11 @@
|
||||
[Trigger]
|
||||
Type = File
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Target = usr/lib/modules/%KERNVER%/vmlinuz
|
||||
Target = usr/lib/initcpio/*
|
||||
|
||||
[Action]
|
||||
Description = Updating %PKGBASE% initcpios...
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/mkinitcpio -p %PKGBASE%
|
189
linux-ps3/PKGBUILD
Normal file
189
linux-ps3/PKGBUILD
Normal file
@ -0,0 +1,189 @@
|
||||
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
||||
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
||||
|
||||
pkgbase=linux-ps3
|
||||
pkgver=5.18.arch1
|
||||
pkgrel=1
|
||||
pkgdesc='Linux'
|
||||
_srctag=v${pkgver%.*}-${pkgver##*.}
|
||||
url="https://git.archlinux.org/linux.git/log/?h=$_srctag"
|
||||
arch=(any)
|
||||
license=(GPL2)
|
||||
makedepends=(
|
||||
bc kmod libelf pahole git
|
||||
powerpc64-unknown-linux-gnu-gcc
|
||||
)
|
||||
options=('!strip')
|
||||
_srcname=archlinux-linux
|
||||
source=(
|
||||
"$_srcname::git+https://github.com/archlinux/linux?signed#tag=$_srctag"
|
||||
config # the main kernel config file
|
||||
linux-powerpc-binutils-2.38.patch
|
||||
)
|
||||
validpgpkeys=(
|
||||
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
|
||||
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||
'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig)
|
||||
'C7E7849466FE2358343588377258734B41C31549' # David Runge <dvzrv@archlinux.org>
|
||||
)
|
||||
sha256sums=('SKIP'
|
||||
'4e9e35f89478e82d5a0fe209af064ec24c2f4dd9fbafa90f477111d76eb668df'
|
||||
'c30e372bcf445bb40521a1568c69fc9d6d3c08c2d1a8a3e539c9b186b7b5ff38')
|
||||
export KBUILD_BUILD_HOST=archpower
|
||||
export KBUILD_BUILD_USER=$pkgbase
|
||||
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
|
||||
|
||||
export MYARCH="powerpc"
|
||||
|
||||
prepare() {
|
||||
cd $_srcname
|
||||
echo "Setting version..."
|
||||
scripts/setlocalversion --save-scmversion
|
||||
echo "-$pkgrel" > localversion.10-pkgrel
|
||||
echo "${pkgbase#linux}" > localversion.20-pkgname
|
||||
|
||||
local src
|
||||
for src in "${source[@]}"; do
|
||||
src="${src%%::*}"
|
||||
src="${src##*/}"
|
||||
[[ $src = *.patch ]] || continue
|
||||
echo "Applying patch $src..."
|
||||
patch -Np1 < "../$src"
|
||||
done
|
||||
|
||||
mkdir -p ${srcdir}/gcc
|
||||
for fn in gcc cc g++ c++; do
|
||||
ln -sf /usr/bin/ccache ${srcdir}/gcc/powerpc64-linux-gnu-${fn}
|
||||
done
|
||||
export PATH=${srcdir}/gcc:${PATH}
|
||||
|
||||
echo "Setting config..."
|
||||
cp ../config .config
|
||||
ARCH=${MYARCH} CROSS_COMPILE=powerpc64-unknown-linux-gnu- make oldconfig
|
||||
|
||||
ARCH=${MYARCH} CROSS_COMPILE=powerpc64-unknown-linux-gnu- make -s kernelrelease > version
|
||||
echo "Prepared $pkgbase version $(<version)"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd $_srcname
|
||||
ARCH=${MYARCH} CROSS_COMPILE=powerpc64-unknown-linux-gnu- make all
|
||||
}
|
||||
|
||||
_package() {
|
||||
pkgdesc="The $pkgdesc kernel and modules"
|
||||
depends=(coreutils kmod initramfs)
|
||||
optdepends=('crda: to set the correct wireless channels of your country'
|
||||
'linux-firmware: firmware images needed for some devices')
|
||||
provides=(WIREGUARD-MODULE)
|
||||
replaces=(wireguard-arch)
|
||||
|
||||
cd $_srcname
|
||||
local kernver="$(<version)"
|
||||
local modulesdir="$pkgdir/usr/lib/modules/$kernver"
|
||||
|
||||
echo "Installing boot image..."
|
||||
# systemd expects to find the kernel here to allow hibernation
|
||||
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
|
||||
install -Dm644 "$(ARCH=${MYARCH} CROSS_COMPILE=powerpc64-unknown-linux-gnu- make -s image_name)" "$modulesdir/vmlinuz"
|
||||
|
||||
# Used by mkinitcpio to name the kernel
|
||||
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"
|
||||
|
||||
echo "Installing modules..."
|
||||
ARCH=${MYARCH} CROSS_COMPILE=powerpc64-unknown-linux-gnu- make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install
|
||||
|
||||
# remove build and source links
|
||||
rm "$modulesdir"/{source,build}
|
||||
}
|
||||
|
||||
_package-headers() {
|
||||
pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
|
||||
provides=('linux-headers')
|
||||
conflicts=('linux-headers')
|
||||
|
||||
cd $_srcname
|
||||
local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
|
||||
|
||||
echo "Installing build files..."
|
||||
install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
|
||||
localversion.* version vmlinux
|
||||
install -Dt "$builddir/kernel" -m644 kernel/Makefile
|
||||
install -Dt "$builddir/arch/${MYARCH}" -m644 arch/${MYARCH}/Makefile
|
||||
cp -t "$builddir" -a scripts
|
||||
|
||||
# add objtool for external module building and enabled VALIDATION_STACK option
|
||||
[ "${CARCH}" == "x86_64" ] && \
|
||||
install -Dt "$builddir/tools/objtool" tools/objtool/objtool
|
||||
|
||||
# add xfs and shmem for aufs building
|
||||
mkdir -p "$builddir"/{fs/xfs,mm}
|
||||
|
||||
echo "Installing headers..."
|
||||
cp -t "$builddir" -a include
|
||||
cp -t "$builddir/arch/${MYARCH}" -a arch/${MYARCH}/include
|
||||
install -Dt "$builddir/arch/${MYARCH}/kernel" -m644 arch/${MYARCH}/kernel/asm-offsets.s
|
||||
|
||||
install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
|
||||
install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
|
||||
|
||||
# http://bugs.archlinux.org/task/13146
|
||||
install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
|
||||
|
||||
# http://bugs.archlinux.org/task/20402
|
||||
install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
|
||||
install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
|
||||
install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
|
||||
|
||||
echo "Installing KConfig files..."
|
||||
find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
|
||||
|
||||
echo "Removing unneeded architectures..."
|
||||
local arch
|
||||
for arch in "$builddir"/arch/*/; do
|
||||
[[ $arch = */${MYARCH}/ ]] && continue
|
||||
echo "Removing $(basename "$arch")"
|
||||
rm -r "$arch"
|
||||
done
|
||||
|
||||
echo "Removing documentation..."
|
||||
rm -r "$builddir/Documentation"
|
||||
|
||||
echo "Removing broken symlinks..."
|
||||
find -L "$builddir" -type l -printf 'Removing %P\n' -delete
|
||||
|
||||
echo "Removing loose objects..."
|
||||
find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
|
||||
|
||||
echo "Stripping build tools..."
|
||||
local file
|
||||
while read -rd '' file; do
|
||||
case "$(file -bi "$file")" in
|
||||
application/x-sharedlib\;*) # Libraries (.so)
|
||||
strip -v $STRIP_SHARED "$file" ;;
|
||||
application/x-archive\;*) # Libraries (.a)
|
||||
strip -v $STRIP_STATIC "$file" ;;
|
||||
application/x-executable\;*) # Binaries
|
||||
strip -v $STRIP_BINARIES "$file" ;;
|
||||
application/x-pie-executable\;*) # Relocatable binaries
|
||||
strip -v $STRIP_SHARED "$file" ;;
|
||||
esac
|
||||
done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
|
||||
|
||||
echo "Stripping vmlinux..."
|
||||
strip -v $STRIP_STATIC "$builddir/vmlinux"
|
||||
|
||||
echo "Adding symlink..."
|
||||
mkdir -p "$pkgdir/usr/src"
|
||||
ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
|
||||
}
|
||||
|
||||
pkgname=("$pkgbase" "$pkgbase-headers")
|
||||
for _p in "${pkgname[@]}"; do
|
||||
eval "package_$_p() {
|
||||
$(declare -f "_package${_p#$pkgbase}")
|
||||
_package${_p#$pkgbase}
|
||||
}"
|
||||
done
|
||||
|
||||
# vim:set ts=8 sts=2 sw=2 et:
|
4016
linux-ps3/config
Normal file
4016
linux-ps3/config
Normal file
File diff suppressed because it is too large
Load Diff
39
linux-ps3/linux-powerpc-binutils-2.38.patch
Normal file
39
linux-ps3/linux-powerpc-binutils-2.38.patch
Normal file
@ -0,0 +1,39 @@
|
||||
diff --git a/arch/powerpc/include/asm/asm-compat.h b/arch/powerpc/include/asm/asm-compat.h
|
||||
index 2b736d9fbb1b..f9ac4a36f026 100644
|
||||
--- a/arch/powerpc/include/asm/asm-compat.h
|
||||
+++ b/arch/powerpc/include/asm/asm-compat.h
|
||||
@@ -5,6 +5,34 @@
|
||||
#include <asm/types.h>
|
||||
#include <asm/ppc-opcode.h>
|
||||
|
||||
+#ifndef __ASSEMBLY__
|
||||
+/*
|
||||
+ * gcc 10 started to emit a .machine directive at the beginning of generated
|
||||
+ * .s files, which overrides assembler -Wa,-m<cpu> options passed down.
|
||||
+ * Unclear if this behaviour will be reverted.
|
||||
+ *
|
||||
+ * gas 2.38 commit b25f942e18d6 made .machine directive more strict, commit
|
||||
+ * cebc89b9328ea weakens it to take into account the gcc directive and allow
|
||||
+ * assembler -m<cpu> options to work.
|
||||
+ *
|
||||
+ * A combination of both results in an older machine -mcpu= code generation
|
||||
+ * preventing newer mneumonics in inline asm being recognised because it
|
||||
+ * overrides our -Wa,-many option from being recognised.
|
||||
+ *
|
||||
+ * Emitting a .machine any directive by hand allows us to hack our way around
|
||||
+ * this.
|
||||
+ *
|
||||
+ * XXX: verify versions and combinations.
|
||||
+ */
|
||||
+#ifdef CONFIG_CC_IS_GCC
|
||||
+#if (GCC_VERSION >= 100000)
|
||||
+#if (CONFIG_AS_VERSION == 23800)
|
||||
+asm(".machine any");
|
||||
+#endif
|
||||
+#endif
|
||||
+#endif
|
||||
+#endif /* __ASSEMBLY__ */
|
||||
+
|
||||
#ifdef __powerpc64__
|
||||
|
||||
/* operations for longs and pointers */
|
12
linux-ps3/linux.install
Normal file
12
linux-ps3/linux.install
Normal file
@ -0,0 +1,12 @@
|
||||
post_upgrade() {
|
||||
if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
|
||||
echo "WARNING: /boot appears to be a separate partition but is not mounted."
|
||||
fi
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
rm -f boot/initramfs-%PKGBASE%.img
|
||||
rm -f boot/initramfs-%PKGBASE%-fallback.img
|
||||
}
|
||||
|
||||
# vim:set ft=sh ts=8 sts=2 sw=2 et:
|
12
linux-ps3/linux.install.pkg
Normal file
12
linux-ps3/linux.install.pkg
Normal file
@ -0,0 +1,12 @@
|
||||
post_upgrade() {
|
||||
if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
|
||||
echo "WARNING: /boot appears to be a separate partition but is not mounted."
|
||||
fi
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
rm -f boot/initramfs-linux.img
|
||||
rm -f boot/initramfs-linux-fallback.img
|
||||
}
|
||||
|
||||
# vim:set ft=sh ts=8 sts=2 sw=2 et:
|
14
linux-ps3/linux.preset
Normal file
14
linux-ps3/linux.preset
Normal file
@ -0,0 +1,14 @@
|
||||
# mkinitcpio preset file for the '%PKGBASE%' package
|
||||
|
||||
ALL_config="/etc/mkinitcpio.conf"
|
||||
ALL_kver="/boot/vmlinuz-%PKGBASE%"
|
||||
|
||||
PRESETS=('default' 'fallback')
|
||||
|
||||
#default_config="/etc/mkinitcpio.conf"
|
||||
default_image="/boot/initramfs-%PKGBASE%.img"
|
||||
#default_options=""
|
||||
|
||||
#fallback_config="/etc/mkinitcpio.conf"
|
||||
fallback_image="/boot/initramfs-%PKGBASE%-fallback.img"
|
||||
fallback_options="-S autodetect"
|
Loading…
x
Reference in New Issue
Block a user