summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO22
-rw-r--r--0001-fix-rt_mutex.patch42
-rw-r--r--99-linux.hook11
-rw-r--r--PKGBUILD42
4 files changed, 92 insertions, 25 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 30a9cad..6f5d31a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by makepkg 5.0.1
-# Fri Jan 6 18:07:11 UTC 2017
+# Thu Feb 16 17:36:40 UTC 2017
pkgbase = linux-rt-lts
- pkgver = 4.4.39_rt50
+ pkgver = 4.4.47_rt59
pkgrel = 1
- url = http://www.kernel.org/
+ url = https://www.kernel.org/
arch = i686
arch = x86_64
license = GPL2
@@ -15,15 +15,17 @@ pkgbase = linux-rt-lts
options = !strip
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.39.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.39.sign
- source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.39-rt50.patch.xz
- source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.39-rt50.patch.sign
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.47.xz
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.47.sign
+ source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/older/patch-4.4.47-rt59.patch.xz
+ source = https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/older/patch-4.4.47-rt59.patch.sign
source = config
source = config.x86_64
+ source = 99-linux.hook
source = linux-rt-lts.preset
source = change-default-console-loglevel.patch
source = fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch
+ source = 0001-fix-rt_mutex.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
validpgpkeys = 64254695FFF0AA4466CC19E67B96E8162A8CF5D1
@@ -31,15 +33,17 @@ pkgbase = linux-rt-lts
validpgpkeys = E644E2F1D45FA0B2EAA02F33109F098506FF0B14
sha256sums = 401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2
sha256sums = SKIP
- sha256sums = fc2b60d221aeaf3eafec4f36f299e4002be81da85117c3f59963fdcb6facb929
+ sha256sums = 21fd72caa322800b4668b4464d6ac4d8d66faa0056e08a5925d5911dab438c18
sha256sums = SKIP
- sha256sums = 58ea58fc0807d4665909b66e6223eb3e94fe2aea8df4b7ff5956673198a6d0cc
+ sha256sums = 6ad926f1370aec5084f8b63e08e38a46672f534828d478c21e4993c0074b528e
sha256sums = SKIP
sha256sums = 1f609d41a9d5cd0eb88060bd0ad6726f76e9dbf0deee44d6fe3dc57f0fbb3191
sha256sums = b28728fa4816c4f32b4b390b22c8b9d4ea52a35b150ed7041d325ab72cd8c6a3
+ sha256sums = 834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0
sha256sums = a8886f2c9896f81f59cf0413b3e380cda2fbdc667eb9ce8dfcb0fceb6d92279f
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
sha256sums = 85f7612edfa129210343d6a4fe4ba2a4ac3542d98b7e28c8896738e7e6541c06
+ sha256sums = 785960e97b6054274814a2354f84ccd64c0c01485761d3a3a82a4458bd7ad021
pkgname = linux-rt-lts
pkgdesc = The Linux-rt-lts kernel and modules
diff --git a/0001-fix-rt_mutex.patch b/0001-fix-rt_mutex.patch
new file mode 100644
index 0000000..1f3a1f6
--- /dev/null
+++ b/0001-fix-rt_mutex.patch
@@ -0,0 +1,42 @@
+From 93f3bd72784ed58cbba1a32b043a842f205a631f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 10 Feb 2017 18:21:04 +0100
+Subject: rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from
+ export symbol
+
+Alex Goins reported that mutex_destroy() on RT will force a GPL only symbol
+which won't link and therefore fail on a non-GPL kernel module.
+This does not happen on !RT and is a regression on RT which we would like to
+avoid.
+I try here the easy thing and to not use rt_mutex_destroy() if
+CONFIG_DEBUG_MUTEXES is not enabled. This will still break for the DEBUG
+configs so instead of adding a wrapper around rt_mutex_destroy() (which we have
+for rt_mutex_lock() for instance) I am simply dropping the GPL part from the
+export.
+
+Reported-by: Alex Goins <agoins@nvidia.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/mutex_rt.h | 5 +++++
+ kernel/locking/rtmutex.c | 3 +--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h
+index c38a44b..e0284ed 100644
+--- a/include/linux/mutex_rt.h
++++ b/include/linux/mutex_rt.h
+@@ -43,7 +43,12 @@ extern void __lockfunc _mutex_unlock(struct mutex *lock);
+ #define mutex_lock_killable(l) _mutex_lock_killable(l)
+ #define mutex_trylock(l) _mutex_trylock(l)
+ #define mutex_unlock(l) _mutex_unlock(l)
++
++#ifdef CONFIG_DEBUG_MUTEXES
+ #define mutex_destroy(l) rt_mutex_destroy(&(l)->lock)
++#else
++static inline void mutex_destroy(struct mutex *lock) {}
++#endif
+
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+ # define mutex_lock_nested(l, s) _mutex_lock_nested(l, s)
+--
+cgit v0.12
diff --git a/99-linux.hook b/99-linux.hook
new file mode 100644
index 0000000..9851151
--- /dev/null
+++ b/99-linux.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Target = boot/vmlinuz-%PKGBASE%
+Target = usr/lib/initcpio/*
+
+[Action]
+Description = Updating %PKGBASE% initcpios
+When = PostTransaction
+Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/PKGBUILD b/PKGBUILD
index 45c22c8..80ca36a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,12 +7,12 @@
#pkgbase=linux # Build stock -ARCH kernel
pkgbase=linux-rt-lts # Build kernel with a different name
_srcname=linux-4.4
-_pkgver=4.4.39
-_rtpatchver=rt50
+_pkgver=4.4.47
+_rtpatchver=rt59
pkgver=${_pkgver}_${_rtpatchver}
pkgrel=1
arch=('i686' 'x86_64')
-url="http://www.kernel.org/"
+url="https://www.kernel.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
options=('!strip')
@@ -20,26 +20,32 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
"https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${_pkgver}.xz"
"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${_pkgver}.sign"
- "https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-${_pkgver}-${_rtpatchver}.patch.xz"
- "https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-${_pkgver}-${_rtpatchver}.patch.sign"
+ "https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/older/patch-${_pkgver}-${_rtpatchver}.patch.xz"
+ "https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/older/patch-${_pkgver}-${_rtpatchver}.patch.sign"
# the main kernel config files
'config' 'config.x86_64'
+ # pacman hook for initramfs regeneration
+ '99-linux.hook'
# standard config files for mkinitcpio ramdisk
"${pkgbase}.preset"
'change-default-console-loglevel.patch'
- 'fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch')
+ 'fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch'
+ '0001-fix-rt_mutex.patch'
+ )
sha256sums=('401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2'
'SKIP'
- 'fc2b60d221aeaf3eafec4f36f299e4002be81da85117c3f59963fdcb6facb929'
+ '21fd72caa322800b4668b4464d6ac4d8d66faa0056e08a5925d5911dab438c18'
'SKIP'
- '58ea58fc0807d4665909b66e6223eb3e94fe2aea8df4b7ff5956673198a6d0cc'
+ '6ad926f1370aec5084f8b63e08e38a46672f534828d478c21e4993c0074b528e'
'SKIP'
'1f609d41a9d5cd0eb88060bd0ad6726f76e9dbf0deee44d6fe3dc57f0fbb3191'
'b28728fa4816c4f32b4b390b22c8b9d4ea52a35b150ed7041d325ab72cd8c6a3'
+ '834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
'a8886f2c9896f81f59cf0413b3e380cda2fbdc667eb9ce8dfcb0fceb6d92279f'
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
- '85f7612edfa129210343d6a4fe4ba2a4ac3542d98b7e28c8896738e7e6541c06')
+ '85f7612edfa129210343d6a4fe4ba2a4ac3542d98b7e28c8896738e7e6541c06'
+ '785960e97b6054274814a2354f84ccd64c0c01485761d3a3a82a4458bd7ad021')
validpgpkeys=('ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
@@ -47,7 +53,6 @@ validpgpkeys=('ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73' # Steven Rostedt
'E644E2F1D45FA0B2EAA02F33109F098506FF0B14' # Thomas Gleixner
)
-
_kernelname=${pkgbase#linux}
prepare() {
@@ -74,6 +79,9 @@ prepare() {
msg "fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch"
patch -p1 -i "${srcdir}/fix-race-in-PRT-wait-for-completion-simple-wait-code_Nvidia-RT-160319.patch"
+ msg "0001-fix-rt_mutex.patch"
+ patch -p1 -i "${srcdir}/0001-fix-rt_mutex.patch"
+
msg "All patches have successfully been applied"
if [ "${CARCH}" = "x86_64" ]; then
@@ -152,15 +160,19 @@ _package() {
-e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
-i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ # install pacman hook for initramfs regeneration
+ sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
+ install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
+
# remove build and source links
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
# remove the firmware
rm -rf "${pkgdir}/lib/firmware"
# make room for external modules
- ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ ln -s "../extramodules-${_basekernel}${_kernelname:--rt-lts}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from post_install/upgrade
- mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
- echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--rt-lts}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--rt-lts}/version"
# Now we call depmod...
depmod -b "${pkgdir}" -F System.map "${_kernver}"
@@ -262,8 +274,6 @@ _package-headers() {
# add xfs and shmem for aufs building
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
- # removed in 3.17 series
- # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
# copy in Kconfig files
for i in $(find . -name "Kconfig*"); do
@@ -289,7 +299,7 @@ _package-headers() {
# remove unneeded architectures
rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
- # remove a files already in linux-docs package
+ # remove files already in linux-docs package
rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-01"
rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-02"
rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.select-break"