diff options
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | 0001-fix-rt_mutex.patch | 42 | ||||
-rw-r--r-- | 99-linux.hook | 11 | ||||
-rw-r--r-- | PKGBUILD | 42 |
4 files changed, 92 insertions, 25 deletions
@@ -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% @@ -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" |