linux5.11: remove package.
This commit is contained in:
parent
234f765a8c
commit
b0ac65e040
|
@ -1 +0,0 @@
|
||||||
linux5.11
|
|
|
@ -1 +0,0 @@
|
||||||
linux5.11
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
mod=$1
|
|
||||||
mkdir -p usr/lib/debug/${mod%/*}
|
|
||||||
$OBJCOPY --only-keep-debug --compress-debug-sections $mod usr/lib/debug/$mod
|
|
||||||
$OBJCOPY --add-gnu-debuglink=${DESTDIR}/usr/lib/debug/$mod $mod
|
|
||||||
/usr/bin/$STRIP --strip-debug $mod
|
|
||||||
gzip -9 $mod
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +0,0 @@
|
||||||
--- linux-5.10.1/kernel/bpf/preload/iterators/iterators.c.orig
|
|
||||||
+++ linux-5.10.1/kernel/bpf/preload/iterators/iterators.c
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
// SPDX-License-Identifier: GPL-2.0
|
|
||||||
/* Copyright (c) 2020 Facebook */
|
|
||||||
-#include <argp.h>
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
|
@ -1,37 +0,0 @@
|
||||||
From 0ecf6a9e47d825b7dddfebca738386b809e59a94 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Ellerman <mpe@ellerman.id.au>
|
|
||||||
Date: Wed, 3 Feb 2021 00:02:06 +1100
|
|
||||||
Subject: powerpc/64: Make stack tracing work during very early boot
|
|
||||||
|
|
||||||
If we try to stack trace very early during boot, either due to a
|
|
||||||
WARN/BUG or manual dump_stack(), we will oops in
|
|
||||||
valid_emergency_stack() when we try to dereference the paca_ptrs
|
|
||||||
array.
|
|
||||||
|
|
||||||
The fix is simple, we just return false if paca_ptrs isn't allocated
|
|
||||||
yet. The stack pointer definitely isn't part of any emergency stack
|
|
||||||
because we haven't allocated any yet.
|
|
||||||
|
|
||||||
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
|
||||||
Link: https://lore.kernel.org/r/20210202130207.1303975-1-mpe@ellerman.id.au
|
|
||||||
---
|
|
||||||
arch/powerpc/kernel/process.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
|
|
||||||
index 8520ed5ae144d..e296440e9d16a 100644
|
|
||||||
--- a/arch/powerpc/kernel/process.c
|
|
||||||
+++ b/arch/powerpc/kernel/process.c
|
|
||||||
@@ -2047,6 +2047,9 @@ static inline int valid_emergency_stack(unsigned long sp, struct task_struct *p,
|
|
||||||
unsigned long stack_page;
|
|
||||||
unsigned long cpu = task_cpu(p);
|
|
||||||
|
|
||||||
+ if (!paca_ptrs)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
stack_page = (unsigned long)paca_ptrs[cpu]->emergency_sp - THREAD_SIZE;
|
|
||||||
if (sp >= stack_page && sp <= stack_page + THREAD_SIZE - nbytes)
|
|
||||||
return 1;
|
|
||||||
--
|
|
||||||
cgit 1.2.3-1.el7
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig
|
|
||||||
index 938803eab0ad..40c81b358004 100644
|
|
||||||
--- a/arch/powerpc/platforms/powernv/Kconfig
|
|
||||||
+++ b/arch/powerpc/platforms/powernv/Kconfig
|
|
||||||
@@ -35,7 +35,7 @@ config PPC_MEMTRACE
|
|
||||||
|
|
||||||
config PPC_VAS
|
|
||||||
bool "IBM Virtual Accelerator Switchboard (VAS)"
|
|
||||||
- depends on PPC_POWERNV && PPC_64K_PAGES
|
|
||||||
+ depends on PPC_POWERNV
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
This enables support for IBM Virtual Accelerator Switchboard (VAS).
|
|
||||||
diff --git a/arch/powerpc/platforms/powernv/vas.c b/arch/powerpc/platforms/powernv/vas.c
|
|
||||||
index 598e4cd563fb..d81e55de6db4 100644
|
|
||||||
--- a/arch/powerpc/platforms/powernv/vas.c
|
|
||||||
+++ b/arch/powerpc/platforms/powernv/vas.c
|
|
||||||
@@ -70,7 +70,7 @@ static int init_vas_instance(struct platform_device *pdev)
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (pdev->num_resources != 4) {
|
|
||||||
+ if (pdev->num_resources < 4) {
|
|
||||||
pr_err("Unexpected DT configuration for [%s, %d]\n",
|
|
||||||
pdev->name, vasid);
|
|
||||||
return -ENODEV;
|
|
|
@ -1,86 +0,0 @@
|
||||||
This makes the Linux kernel build as ELFv2 on big endian ppc64. The upstream
|
|
||||||
doesn't seem to be interested in this but it's a small patch that is unlikely
|
|
||||||
to break/easy to remake and in worst case can always be ditched.
|
|
||||||
|
|
||||||
Using ELFv2 has some potential performance benefits and is already always used
|
|
||||||
on little endian. It requires a relatively modern toolchain, which we already
|
|
||||||
have.
|
|
||||||
|
|
||||||
Ping q66 if it does not apply.
|
|
||||||
|
|
||||||
--- a/arch/powerpc/Makefile 2020-01-05 14:40:50.395763093 +0100
|
|
||||||
+++ b/arch/powerpc/Makefile 2020-01-05 14:48:39.025251092 +0100
|
|
||||||
@@ -92,10 +92,8 @@
|
|
||||||
|
|
||||||
ifdef CONFIG_PPC64
|
|
||||||
ifndef CONFIG_CC_IS_CLANG
|
|
||||||
-cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1)
|
|
||||||
-cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mcall-aixdesc)
|
|
||||||
-aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1)
|
|
||||||
-aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mabi=elfv2
|
|
||||||
+cflags-y += $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
|
|
||||||
+aflags-y += $(call cc-option,-mabi=elfv2,$(call cc-option,-mabi=elfv1))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -144,14 +142,8 @@
|
|
||||||
|
|
||||||
CFLAGS-$(CONFIG_PPC64) := $(call cc-option,-mtraceback=no)
|
|
||||||
ifndef CONFIG_CC_IS_CLANG
|
|
||||||
-ifdef CONFIG_CPU_LITTLE_ENDIAN
|
|
||||||
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
|
|
||||||
-AFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv2)
|
|
||||||
-else
|
|
||||||
-CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
|
|
||||||
-CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcall-aixdesc)
|
|
||||||
-AFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
|
|
||||||
-endif
|
|
||||||
+AFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv2,$(call cc-option,-mabi=elfv1))
|
|
||||||
endif
|
|
||||||
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
|
|
||||||
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mno-pointers-to-nested-functions)
|
|
||||||
|
|
||||||
--- a/arch/powerpc/boot/Makefile
|
|
||||||
+++ b/arch/powerpc/boot/Makefile
|
|
||||||
@@ -48,8 +48,8 @@ ifdef CONFIG_CPU_BIG_ENDIAN
|
|
||||||
BOOTCFLAGS += -mbig-endian
|
|
||||||
else
|
|
||||||
BOOTCFLAGS += -mlittle-endian
|
|
||||||
-BOOTCFLAGS += $(call cc-option,-mabi=elfv2)
|
|
||||||
endif
|
|
||||||
+BOOTCFLAGS += $(call cc-option,-mabi=elfv2)
|
|
||||||
|
|
||||||
BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc
|
|
||||||
|
|
||||||
--- a/drivers/crypto/vmx/Makefile 2020-01-01 10:56:10.560965046 +0100
|
|
||||||
+++ b/drivers/crypto/vmx/Makefile 2020-01-01 10:57:05.189968856 +0100
|
|
||||||
@@ -5,7 +5,7 @@
|
|
||||||
ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
|
|
||||||
override flavour := linux-ppc64le
|
|
||||||
else
|
|
||||||
-override flavour := linux-ppc64
|
|
||||||
+override flavour := linux-ppc64v2
|
|
||||||
endif
|
|
||||||
|
|
||||||
quiet_cmd_perl = PERL $@
|
|
||||||
|
|
||||||
--- a/drivers/crypto/vmx/ppc-xlate.pl
|
|
||||||
+++ b/drivers/crypto/vmx/ppc-xlate.pl
|
|
||||||
@@ -40,7 +40,7 @@ my $globl = sub {
|
|
||||||
};
|
|
||||||
my $text = sub {
|
|
||||||
my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text";
|
|
||||||
- $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64le/);
|
|
||||||
+ $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64(le|v2)/);
|
|
||||||
$ret;
|
|
||||||
};
|
|
||||||
my $machine = sub {
|
|
||||||
@@ -142,7 +142,7 @@ my $vmr = sub {
|
|
||||||
|
|
||||||
# Some ABIs specify vrsave, special-purpose register #256, as reserved
|
|
||||||
# for system use.
|
|
||||||
-my $no_vrsave = ($flavour =~ /linux-ppc64le/);
|
|
||||||
+my $no_vrsave = ($flavour =~ /linux-ppc64(le|v2)/);
|
|
||||||
my $mtspr = sub {
|
|
||||||
my ($f,$idx,$ra) = @_;
|
|
||||||
if ($idx == 256 && $no_vrsave) {
|
|
|
@ -1,140 +0,0 @@
|
||||||
From e7eb919057c3450cdd9d335e4a23a4da8da58db4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Ellerman <mpe@ellerman.id.au>
|
|
||||||
Date: Wed, 3 Feb 2021 00:02:07 +1100
|
|
||||||
Subject: [PATCH] powerpc/64s: Handle program checks in wrong endian during
|
|
||||||
early boot
|
|
||||||
|
|
||||||
There's a short window during boot where although the kernel is
|
|
||||||
running little endian, any exceptions will cause the CPU to switch
|
|
||||||
back to big endian. This situation persists until we call
|
|
||||||
configure_exceptions(), which calls either the hypervisor or OPAL to
|
|
||||||
configure the CPU so that exceptions will be taken in little
|
|
||||||
endian (via HID0[HILE]).
|
|
||||||
|
|
||||||
We don't intend to take exceptions during early boot, but one way we
|
|
||||||
sometimes do is via a WARN/BUG etc. Those all boil down to a trap
|
|
||||||
instruction, which will cause a program check exception.
|
|
||||||
|
|
||||||
The first instruction of the program check handler is an mtsprg, which
|
|
||||||
when executed in the wrong endian is an lhzu with a ~3GB displacement
|
|
||||||
from r3. The content of r3 is random, so that becomes a load from some
|
|
||||||
random location, and depending on the system (installed RAM etc.) can
|
|
||||||
easily lead to a checkstop, or an infinitely recursive page fault.
|
|
||||||
That prevents whatever the WARN/BUG was complaining about being
|
|
||||||
printed to the console, and the user just sees a dead system.
|
|
||||||
|
|
||||||
We can fix it by having a trampoline at the beginning of the program
|
|
||||||
check handler that detects we are in the wrong endian, and flips us
|
|
||||||
back to the correct endian.
|
|
||||||
|
|
||||||
We can't flip MSR[LE] using mtmsr (alas), so we have to use rfid. That
|
|
||||||
requires backing up SRR0/1 as well as a GPR. To do that we use
|
|
||||||
SPRG0/2/3 (SPRG1 is already used for the paca). SPRG3 is user
|
|
||||||
readable, but this trampoline is only active very early in boot, and
|
|
||||||
SPRG3 will be reinitialised in vdso_getcpu_init() before userspace
|
|
||||||
starts.
|
|
||||||
|
|
||||||
With this trampoline in place we can survive a WARN early in boot and
|
|
||||||
print a stack trace, which is eventually printed to the console once
|
|
||||||
the console is up, eg:
|
|
||||||
|
|
||||||
[83565.758545] kexec_core: Starting new kernel
|
|
||||||
[ 0.000000] ------------[ cut here ]------------
|
|
||||||
[ 0.000000] static_key_enable_cpuslocked(): static key '0xc000000000ea6160' used before call to jump_label_init()
|
|
||||||
[ 0.000000] WARNING: CPU: 0 PID: 0 at kernel/jump_label.c:166 static_key_enable_cpuslocked+0xfc/0x120
|
|
||||||
[ 0.000000] Modules linked in:
|
|
||||||
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.0-gcc-8.2.0-dirty #618
|
|
||||||
[ 0.000000] NIP: c0000000002fd46c LR: c0000000002fd468 CTR: c000000000170660
|
|
||||||
[ 0.000000] REGS: c000000001227940 TRAP: 0700 Not tainted (5.10.0-gcc-8.2.0-dirty)
|
|
||||||
[ 0.000000] MSR: 9000000002823003 <SF,HV,VEC,VSX,FP,ME,RI,LE> CR: 24882422 XER: 20040000
|
|
||||||
[ 0.000000] CFAR: 0000000000000730 IRQMASK: 1
|
|
||||||
[ 0.000000] GPR00: c0000000002fd468 c000000001227bd0 c000000001228300 0000000000000065
|
|
||||||
[ 0.000000] GPR04: 0000000000000001 0000000000000065 c0000000010cf970 000000000000000d
|
|
||||||
[ 0.000000] GPR08: 0000000000000000 0000000000000000 0000000000000000 c00000000122763f
|
|
||||||
[ 0.000000] GPR12: 0000000000002000 c000000000f8a980 0000000000000000 0000000000000000
|
|
||||||
[ 0.000000] GPR16: 0000000000000000 0000000000000000 c000000000f88c8e c000000000f88c9a
|
|
||||||
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
|
|
||||||
[ 0.000000] GPR24: 0000000000000000 c000000000dea3a8 0000000000000000 c000000000f35114
|
|
||||||
[ 0.000000] GPR28: 0000002800000000 c000000000f88c9a c000000000f88c8e c000000000ea6160
|
|
||||||
[ 0.000000] NIP [c0000000002fd46c] static_key_enable_cpuslocked+0xfc/0x120
|
|
||||||
[ 0.000000] LR [c0000000002fd468] static_key_enable_cpuslocked+0xf8/0x120
|
|
||||||
[ 0.000000] Call Trace:
|
|
||||||
[ 0.000000] [c000000001227bd0] [c0000000002fd468] static_key_enable_cpuslocked+0xf8/0x120 (unreliable)
|
|
||||||
[ 0.000000] [c000000001227c40] [c0000000002fd4c0] static_key_enable+0x30/0x50
|
|
||||||
[ 0.000000] [c000000001227c70] [c000000000f6629c] early_page_poison_param+0x58/0x9c
|
|
||||||
[ 0.000000] [c000000001227cb0] [c000000000f351b8] do_early_param+0xa4/0x10c
|
|
||||||
[ 0.000000] [c000000001227d30] [c00000000011e020] parse_args+0x270/0x5e0
|
|
||||||
[ 0.000000] [c000000001227e20] [c000000000f35864] parse_early_options+0x48/0x5c
|
|
||||||
[ 0.000000] [c000000001227e40] [c000000000f358d0] parse_early_param+0x58/0x84
|
|
||||||
[ 0.000000] [c000000001227e70] [c000000000f3a368] early_init_devtree+0xc4/0x490
|
|
||||||
[ 0.000000] [c000000001227f10] [c000000000f3bca0] early_setup+0xc8/0x1c8
|
|
||||||
[ 0.000000] [c000000001227f90] [000000000000c320] 0xc320
|
|
||||||
[ 0.000000] Instruction dump:
|
|
||||||
[ 0.000000] 4bfffddd 7c2004ac 39200001 913f0000 4bffffb8 7c651b78 3c82ffac 3c62ffc0
|
|
||||||
[ 0.000000] 38841b00 3863f310 4bdf03a5 60000000 <0fe00000> 4bffff38 60000000 60000000
|
|
||||||
[ 0.000000] random: get_random_bytes called from print_oops_end_marker+0x40/0x80 with crng_init=0
|
|
||||||
[ 0.000000] ---[ end trace 0000000000000000 ]---
|
|
||||||
[ 0.000000] dt-cpu-ftrs: setup for ISA 3000
|
|
||||||
|
|
||||||
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
|
||||||
Link: https://lore.kernel.org/r/20210202130207.1303975-2-mpe@ellerman.id.au
|
|
||||||
---
|
|
||||||
arch/powerpc/kernel/exceptions-64s.S | 45 ++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 45 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
|
|
||||||
index b3793f982b2be..c51c436d5845f 100644
|
|
||||||
--- a/arch/powerpc/kernel/exceptions-64s.S
|
|
||||||
+++ b/arch/powerpc/kernel/exceptions-64s.S
|
|
||||||
@@ -1630,6 +1630,51 @@ INT_DEFINE_BEGIN(program_check)
|
|
||||||
INT_DEFINE_END(program_check)
|
|
||||||
|
|
||||||
EXC_REAL_BEGIN(program_check, 0x700, 0x100)
|
|
||||||
+
|
|
||||||
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
|
|
||||||
+ /*
|
|
||||||
+ * There's a short window during boot where although the kernel is
|
|
||||||
+ * running little endian, any exceptions will cause the CPU to switch
|
|
||||||
+ * back to big endian. For example a WARN() boils down to a trap
|
|
||||||
+ * instruction, which will cause a program check, and we end up here but
|
|
||||||
+ * with the CPU in big endian mode. The first instruction of the program
|
|
||||||
+ * check handler (in GEN_INT_ENTRY below) is an mtsprg, which when
|
|
||||||
+ * executed in the wrong endian is an lhzu with a ~3GB displacement from
|
|
||||||
+ * r3. The content of r3 is random, so that is a load from some random
|
|
||||||
+ * location, and depending on the system can easily lead to a checkstop,
|
|
||||||
+ * or an infinitely recursive page fault.
|
|
||||||
+ *
|
|
||||||
+ * So to handle that case we have a trampoline here that can detect we
|
|
||||||
+ * are in the wrong endian and flip us back to the correct endian. We
|
|
||||||
+ * can't flip MSR[LE] using mtmsr, so we have to use rfid. That requires
|
|
||||||
+ * backing up SRR0/1 as well as a GPR. To do that we use SPRG0/2/3, as
|
|
||||||
+ * SPRG1 is already used for the paca. SPRG3 is user readable, but this
|
|
||||||
+ * trampoline is only active very early in boot, and SPRG3 will be
|
|
||||||
+ * reinitialised in vdso_getcpu_init() before userspace starts.
|
|
||||||
+ */
|
|
||||||
+BEGIN_FTR_SECTION
|
|
||||||
+ tdi 0,0,0x48 // Trap never, or in reverse endian: b . + 8
|
|
||||||
+ b 1f // Skip trampoline if endian is correct
|
|
||||||
+ .long 0xa643707d // mtsprg 0, r11 Backup r11
|
|
||||||
+ .long 0xa6027a7d // mfsrr0 r11
|
|
||||||
+ .long 0xa643727d // mtsprg 2, r11 Backup SRR0 in SPRG2
|
|
||||||
+ .long 0xa6027b7d // mfsrr1 r11
|
|
||||||
+ .long 0xa643737d // mtsprg 3, r11 Backup SRR1 in SPRG3
|
|
||||||
+ .long 0xa600607d // mfmsr r11
|
|
||||||
+ .long 0x01006b69 // xori r11, r11, 1 Invert MSR[LE]
|
|
||||||
+ .long 0xa6037b7d // mtsrr1 r11
|
|
||||||
+ .long 0x34076039 // li r11, 0x734
|
|
||||||
+ .long 0xa6037a7d // mtsrr0 r11
|
|
||||||
+ .long 0x2400004c // rfid
|
|
||||||
+ mfsprg r11, 3
|
|
||||||
+ mtsrr1 r11 // Restore SRR1
|
|
||||||
+ mfsprg r11, 2
|
|
||||||
+ mtsrr0 r11 // Restore SRR0
|
|
||||||
+ mfsprg r11, 0 // Restore r11
|
|
||||||
+1:
|
|
||||||
+END_FTR_SECTION(0, 1) // nop out after boot
|
|
||||||
+#endif /* CONFIG_CPU_LITTLE_ENDIAN */
|
|
||||||
+
|
|
||||||
GEN_INT_ENTRY program_check, virt=0
|
|
||||||
EXC_REAL_END(program_check, 0x700, 0x100)
|
|
||||||
EXC_VIRT_BEGIN(program_check, 0x4700, 0x100)
|
|
|
@ -1,23 +0,0 @@
|
||||||
These are experimental fixes for running 32-bit little endian binaries on
|
|
||||||
Linux/ppc64le. While this may seem pointless, it does work, does not break
|
|
||||||
anything, and may allow enablement of things we couldn't do before (e.g.
|
|
||||||
support for box86 and thus reasonably fast emulation of 32-bit x86 games).
|
|
||||||
|
|
||||||
The first part is a signal handler fix, the second part enables the 32-bit
|
|
||||||
VDSO by removing the ppc32/big endian restriction.
|
|
||||||
|
|
||||||
Source: @eerykitty
|
|
||||||
|
|
||||||
--- a/arch/powerpc/kernel/signal_32.c
|
|
||||||
+++ b/arch/powerpc/kernel/signal_32.c
|
|
||||||
@@ -1427,8 +1427,9 @@ int handle_signal32(struct ksignal *ksig, sigset_t *oldset,
|
|
||||||
regs->gpr[3] = ksig->sig;
|
|
||||||
regs->gpr[4] = (unsigned long) sc;
|
|
||||||
regs->nip = (unsigned long)ksig->ka.sa.sa_handler;
|
|
||||||
- /* enter the signal handler in big-endian mode */
|
|
||||||
+ /* enter the signal handler in native-endian mode */
|
|
||||||
regs->msr &= ~MSR_LE;
|
|
||||||
+ regs->msr |= (MSR_KERNEL & MSR_LE);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
badframe:
|
|
|
@ -1,107 +0,0 @@
|
||||||
From 98014e4b27063ed74313878233e91b7b52b2a031 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Will Springer <skirmisher@protonmail.com>
|
|
||||||
Date: Tue, 9 Jun 2020 02:11:36 -0700
|
|
||||||
Subject: [PATCH] powerpc/compat32: swap hi/lo parts of 64-bit syscall args on
|
|
||||||
32LE
|
|
||||||
|
|
||||||
This allows compat_sys calls with 64-bit args to function correctly
|
|
||||||
when called by ppcle userlands on ppc64le.
|
|
||||||
|
|
||||||
Tested with `file /bin/bash` (pread64) and `truncate -s 5G test` (ftruncate64).
|
|
||||||
---
|
|
||||||
arch/powerpc/kernel/sys_ppc32.c | 49 +++++++++++++++++++--------------
|
|
||||||
1 file changed, 28 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
|
|
||||||
index d36c6391eaf5..16ff0399a257 100644
|
|
||||||
--- a/arch/powerpc/kernel/sys_ppc32.c
|
|
||||||
+++ b/arch/powerpc/kernel/sys_ppc32.c
|
|
||||||
@@ -59,57 +59,64 @@ unsigned long compat_sys_mmap2(unsigned long addr, size_t len,
|
|
||||||
/*
|
|
||||||
* long long munging:
|
|
||||||
* The 32 bit ABI passes long longs in an odd even register pair.
|
|
||||||
+ * High and low parts are swapped depending on endian mode,
|
|
||||||
+ * so define a macro (similar to mips linux32) to handle that.
|
|
||||||
*/
|
|
||||||
+#ifdef __LITTLE_ENDIAN__
|
|
||||||
+#define merge_64(low, high) ((u64)high << 32) | low
|
|
||||||
+#else
|
|
||||||
+#define merge_64(high, low) ((u64)high << 32) | low
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
compat_ssize_t compat_sys_pread64(unsigned int fd, char __user *ubuf, compat_size_t count,
|
|
||||||
- u32 reg6, u32 poshi, u32 poslo)
|
|
||||||
+ u32 reg6, u32 pos1, u32 pos2)
|
|
||||||
{
|
|
||||||
- return ksys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo);
|
|
||||||
+ return ksys_pread64(fd, ubuf, count, merge_64(pos1, pos2));
|
|
||||||
}
|
|
||||||
|
|
||||||
compat_ssize_t compat_sys_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count,
|
|
||||||
- u32 reg6, u32 poshi, u32 poslo)
|
|
||||||
+ u32 reg6, u32 pos1, u32 pos2)
|
|
||||||
{
|
|
||||||
- return ksys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo);
|
|
||||||
+ return ksys_pwrite64(fd, ubuf, count, merge_64(pos1, pos2));
|
|
||||||
}
|
|
||||||
|
|
||||||
-compat_ssize_t compat_sys_readahead(int fd, u32 r4, u32 offhi, u32 offlo, u32 count)
|
|
||||||
+compat_ssize_t compat_sys_readahead(int fd, u32 r4, u32 offset1, u32 offset2, u32 count)
|
|
||||||
{
|
|
||||||
- return ksys_readahead(fd, ((loff_t)offhi << 32) | offlo, count);
|
|
||||||
+ return ksys_readahead(fd, merge_64(offset1, offset2), count);
|
|
||||||
}
|
|
||||||
|
|
||||||
asmlinkage int compat_sys_truncate64(const char __user * path, u32 reg4,
|
|
||||||
- unsigned long high, unsigned long low)
|
|
||||||
+ unsigned long len1, unsigned long len2)
|
|
||||||
{
|
|
||||||
- return ksys_truncate(path, (high << 32) | low);
|
|
||||||
+ return ksys_truncate(path, merge_64(len1, len2));
|
|
||||||
}
|
|
||||||
|
|
||||||
-asmlinkage long compat_sys_fallocate(int fd, int mode, u32 offhi, u32 offlo,
|
|
||||||
- u32 lenhi, u32 lenlo)
|
|
||||||
+asmlinkage long compat_sys_fallocate(int fd, int mode, u32 offset1, u32 offset2,
|
|
||||||
+ u32 len1, u32 len2)
|
|
||||||
{
|
|
||||||
- return ksys_fallocate(fd, mode, ((loff_t)offhi << 32) | offlo,
|
|
||||||
- ((loff_t)lenhi << 32) | lenlo);
|
|
||||||
+ return ksys_fallocate(fd, mode, ((loff_t)offset1 << 32) | offset2,
|
|
||||||
+ merge_64(len1, len2));
|
|
||||||
}
|
|
||||||
|
|
||||||
-asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long high,
|
|
||||||
- unsigned long low)
|
|
||||||
+asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long len1,
|
|
||||||
+ unsigned long len2)
|
|
||||||
{
|
|
||||||
- return ksys_ftruncate(fd, (high << 32) | low);
|
|
||||||
+ return ksys_ftruncate(fd, merge_64(len1, len2));
|
|
||||||
}
|
|
||||||
|
|
||||||
-long ppc32_fadvise64(int fd, u32 unused, u32 offset_high, u32 offset_low,
|
|
||||||
+long ppc32_fadvise64(int fd, u32 unused, u32 offset1, u32 offset2,
|
|
||||||
size_t len, int advice)
|
|
||||||
{
|
|
||||||
- return ksys_fadvise64_64(fd, (u64)offset_high << 32 | offset_low, len,
|
|
||||||
+ return ksys_fadvise64_64(fd, merge_64(offset1, offset2), len,
|
|
||||||
advice);
|
|
||||||
}
|
|
||||||
|
|
||||||
asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int flags,
|
|
||||||
- unsigned offset_hi, unsigned offset_lo,
|
|
||||||
- unsigned nbytes_hi, unsigned nbytes_lo)
|
|
||||||
+ unsigned offset1, unsigned offset2,
|
|
||||||
+ unsigned nbytes1, unsigned nbytes2)
|
|
||||||
{
|
|
||||||
- loff_t offset = ((loff_t)offset_hi << 32) | offset_lo;
|
|
||||||
- loff_t nbytes = ((loff_t)nbytes_hi << 32) | nbytes_lo;
|
|
||||||
+ loff_t offset = merge_64(offset1, offset2);
|
|
||||||
+ loff_t nbytes = merge_64(nbytes1, nbytes2);
|
|
||||||
|
|
||||||
return ksys_sync_file_range(fd, offset, nbytes, flags);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
|
@ -1,329 +0,0 @@
|
||||||
# Template file for 'linux5.11'
|
|
||||||
pkgname=linux5.11
|
|
||||||
version=5.11.22
|
|
||||||
revision=1
|
|
||||||
wrksrc="linux-${version%.*}"
|
|
||||||
short_desc="Linux kernel and modules (${version%.*} series)"
|
|
||||||
maintainer="Érico Nogueira <ericonr@disroot.org>"
|
|
||||||
license="GPL-2.0-only"
|
|
||||||
homepage="https://www.kernel.org"
|
|
||||||
distfiles="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${version%.*}.tar.xz
|
|
||||||
https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-${version}.xz"
|
|
||||||
checksum="04f07b54f0d40adfab02ee6cbd2a942c96728d87c1ef9e120d0cb9ba3fe067b4
|
|
||||||
07aac31956d3f483a91506524befd45962f3bbfda2f8d43cf90713caf872d9ba"
|
|
||||||
skip_extraction="patch-${version}.xz"
|
|
||||||
python_version=3
|
|
||||||
|
|
||||||
# XXX Restrict archs until a proper <arch>-dotconfig is available in FILESDIR.
|
|
||||||
archs="x86_64* i686* aarch64* ppc*"
|
|
||||||
|
|
||||||
nodebug=yes # -dbg package is generated below manually
|
|
||||||
nostrip=yes
|
|
||||||
noverifyrdeps=yes
|
|
||||||
noshlibprovides=yes
|
|
||||||
preserve=yes
|
|
||||||
|
|
||||||
hostmakedepends="tar xz bc elfutils-devel flex gmp-devel kmod libmpc-devel
|
|
||||||
openssl-devel perl uboot-mkimage cpio pahole python3"
|
|
||||||
|
|
||||||
_kernver="${version}_${revision}"
|
|
||||||
triggers="kernel-hooks"
|
|
||||||
kernel_hooks_version="${_kernver}"
|
|
||||||
|
|
||||||
# These files could be modified when an external module is built.
|
|
||||||
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"
|
|
||||||
|
|
||||||
# reproducible build
|
|
||||||
export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0}
|
|
||||||
export KBUILD_BUILD_USER=voidlinux
|
|
||||||
export KBUILD_BUILD_HOST=voidlinux
|
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
|
||||||
_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pre_patch() {
|
|
||||||
xzcat $XBPS_SRCDISTDIR/$pkgname-$version/patch-${version}.xz | patch -Np1
|
|
||||||
}
|
|
||||||
|
|
||||||
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; subarch=ppc;;
|
|
||||||
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 ${_cross} 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 ${_cross} oldconfig
|
|
||||||
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 _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 ${_cross} ${makejobs} prepare
|
|
||||||
make ARCH=$arch ${_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 - makes depmod.sh a noop
|
|
||||||
sed -i '2iexit 0' scripts/depmod.sh
|
|
||||||
|
|
||||||
# Install kernel, firmware and modules
|
|
||||||
make ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} ${_cross} 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} ${_cross} 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} ${_cross} 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} ${_cross} dtbs_install
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Switch to /usr.
|
|
||||||
vmkdir usr
|
|
||||||
mv ${DESTDIR}/lib ${DESTDIR}/usr
|
|
||||||
|
|
||||||
cd ${DESTDIR}/usr/lib/modules/${_kernver}
|
|
||||||
rm -f source build
|
|
||||||
ln -sf ../../../src/kernel-headers-${_kernver} build
|
|
||||||
|
|
||||||
cd ${wrksrc}
|
|
||||||
# Install required headers to build external modules
|
|
||||||
install -Dm644 Makefile ${hdrdest}/Makefile
|
|
||||||
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
|
|
||||||
install -Dm644 .config ${hdrdest}/.config
|
|
||||||
for file in $(find . -name Kconfig\*); do
|
|
||||||
mkdir -p ${hdrdest}/$(dirname $file)
|
|
||||||
install -Dm644 $file ${hdrdest}/${file}
|
|
||||||
done
|
|
||||||
for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
|
|
||||||
mkdir -p ${hdrdest}/$(dirname $file)
|
|
||||||
install -Dm644 $file ${hdrdest}/${file}
|
|
||||||
done
|
|
||||||
mkdir -p ${hdrdest}/include
|
|
||||||
# Remove firmware stuff provided by the "linux-firmware" pkg.
|
|
||||||
rm -rf ${DESTDIR}/usr/lib/firmware
|
|
||||||
|
|
||||||
for i in acpi asm-generic clocksource config crypto drm generated linux vdso \
|
|
||||||
math-emu media net pcmcia scsi sound trace uapi video xen dt-bindings; do
|
|
||||||
if [ -d include/$i ]; then
|
|
||||||
cp -a include/$i ${hdrdest}/include
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
cd ${wrksrc}
|
|
||||||
mkdir -p ${hdrdest}/arch/${arch}
|
|
||||||
cp -a arch/${arch}/include ${hdrdest}/arch/${arch}
|
|
||||||
|
|
||||||
# Remove helper binaries built for host,
|
|
||||||
# if generated files from the scripts/ directory need to be included,
|
|
||||||
# they need to be copied to ${hdrdest} before this step
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
|
||||||
make ${makejobs} ARCH=${subarch:-$arch} ${_cross} _mrproper_scripts
|
|
||||||
# remove host specific objects as well
|
|
||||||
find scripts -name '*.o' -delete
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy files necessary for later builds, like nvidia and vmware
|
|
||||||
cp Module.symvers ${hdrdest}
|
|
||||||
cp -a scripts ${hdrdest}
|
|
||||||
mkdir -p ${hdrdest}/security/selinux
|
|
||||||
cp -a security/selinux/include ${hdrdest}/security/selinux
|
|
||||||
mkdir -p ${hdrdest}/tools/include
|
|
||||||
cp -a tools/include/tools ${hdrdest}/tools/include
|
|
||||||
|
|
||||||
mkdir -p ${hdrdest}/arch/${arch}/kernel
|
|
||||||
cp arch/${arch}/Makefile ${hdrdest}/arch/${arch}
|
|
||||||
if [ "$subarch" = "i386" ]; then
|
|
||||||
mkdir -p ${hdrdest}/arch/x86
|
|
||||||
cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86
|
|
||||||
fi
|
|
||||||
if [ "$arch" = "x86" ]; then
|
|
||||||
mkdir -p ${hdrdest}/arch/x86/kernel
|
|
||||||
cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel
|
|
||||||
elif [ "$arch" = "arm64" ]; then
|
|
||||||
mkdir -p ${hdrdest}/arch/arm64/kernel
|
|
||||||
cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# add headers for lirc package
|
|
||||||
# pci
|
|
||||||
for i in bt8xx cx88 saa7134; do
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/pci/${i}
|
|
||||||
cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i}
|
|
||||||
done
|
|
||||||
# usb
|
|
||||||
for i in cpia2 em28xx pwc; do
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/usb/${i}
|
|
||||||
cp -a drivers/media/usb/${i}/*.h ${hdrdest}/drivers/media/usb/${i}
|
|
||||||
done
|
|
||||||
# i2c
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/i2c
|
|
||||||
cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c
|
|
||||||
for i in cx25840; do
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/i2c/${i}
|
|
||||||
cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i}
|
|
||||||
done
|
|
||||||
|
|
||||||
# Add md headers
|
|
||||||
mkdir -p ${hdrdest}/drivers/md
|
|
||||||
cp drivers/md/*.h ${hdrdest}/drivers/md
|
|
||||||
|
|
||||||
# Add inotify.h
|
|
||||||
mkdir -p ${hdrdest}/include/linux
|
|
||||||
cp include/linux/inotify.h ${hdrdest}/include/linux
|
|
||||||
|
|
||||||
# Add wireless headers
|
|
||||||
mkdir -p ${hdrdest}/net/mac80211/
|
|
||||||
cp net/mac80211/*.h ${hdrdest}/net/mac80211
|
|
||||||
|
|
||||||
# add dvb headers for external modules
|
|
||||||
mkdir -p ${hdrdest}/include/config/dvb/
|
|
||||||
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
|
|
||||||
|
|
||||||
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
|
|
||||||
cp drivers/media/dvb-frontends/lgdt330x.h \
|
|
||||||
${hdrdest}/drivers/media/dvb-frontends/
|
|
||||||
cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/
|
|
||||||
|
|
||||||
# add dvb headers
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb
|
|
||||||
cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/dvb-frontends
|
|
||||||
cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/
|
|
||||||
mkdir -p ${hdrdest}/drivers/media/tuners
|
|
||||||
cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/
|
|
||||||
|
|
||||||
# Add xfs and shmem for aufs building
|
|
||||||
mkdir -p ${hdrdest}/fs/xfs/libxfs
|
|
||||||
mkdir -p ${hdrdest}/mm
|
|
||||||
cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h
|
|
||||||
|
|
||||||
# Add objtool binary, needed to build external modules with dkms
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
x86_64*)
|
|
||||||
mkdir -p ${hdrdest}/tools/objtool
|
|
||||||
cp tools/objtool/objtool ${hdrdest}/tools/objtool
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Remove unneeded architectures
|
|
||||||
case "$arch" in
|
|
||||||
i386|x86_64) _args="arm* m* p*";;
|
|
||||||
arm|arm64) _args="x86* m* p*";;
|
|
||||||
powerpc) _args="arm* m* x86* parisc";;
|
|
||||||
mips) _args="arm* x86* p*";;
|
|
||||||
esac
|
|
||||||
for arch in alpha avr32 blackfin cris frv h8300 \
|
|
||||||
ia64 s* um v850 xtensa ${_args}; do
|
|
||||||
rm -rf ${hdrdest}/arch/${arch}
|
|
||||||
done
|
|
||||||
# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
|
|
||||||
mkdir -p ${hdrdest}/arch/x86/ras
|
|
||||||
cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
|
|
||||||
|
|
||||||
# Extract debugging symbols and compress modules
|
|
||||||
msg_normal "$pkgver: extracting debug info and compressing modules, please wait...\n"
|
|
||||||
install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver}
|
|
||||||
(
|
|
||||||
cd ${DESTDIR}
|
|
||||||
export DESTDIR
|
|
||||||
find ./ -name '*.ko' -print0 | \
|
|
||||||
xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug
|
|
||||||
)
|
|
||||||
# ... and run depmod again.
|
|
||||||
depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
|
|
||||||
}
|
|
||||||
linux5.11-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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
linux5.11-dbg_package() {
|
|
||||||
preserve=yes
|
|
||||||
nostrip=yes
|
|
||||||
noverifyrdeps=yes
|
|
||||||
noshlibprovides=yes
|
|
||||||
repository=debug
|
|
||||||
short_desc+=" - debugging symbols"
|
|
||||||
pkg_install() {
|
|
||||||
vmove usr/lib/debug
|
|
||||||
vmove "boot/System.map-${_kernver}"
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue