
Switch to using 5.11 tarball + minor version patch. Allows the tarball
to be shared across updates.
Remove the DocBook makefile stuff. It's been carried over since kernel
4.13 (was introduced in ef67cec73b
),
probably to allow building DKMS modules which depended on it. DKMS
modules which build cleanly on 5.11 will definitely have been updated to
not depend on that Makefile, so remove it.
We are not enabling SGX for Intel due to it being mostly useless for now
and looking generally sketchy. There's also no literature we could find
supporting it not affecting overall system security, but literature
pointing out the opposite definitely does:
- https://arxiv.org/pdf/1702.08719.pdf "Using SGX to Conceal Cache Attacks"
memory poisoning patch necessary for ppc hasn't been rebased yet, so
remove those targets from archs.
86 lines
3.1 KiB
Diff
86 lines
3.1 KiB
Diff
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) {
|