Github messages for voidlinux
 help / color / mirror / Atom feed
From: voidlinux-github@inbox.vuxu.org
To: ml@inbox.vuxu.org
Subject: [PR PATCH] linux4.19/5.1/5.2: build with ELFv2 ABI on ppc64 big endian
Date: Fri, 12 Jul 2019 19:48:24 +0200	[thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-13064@inbox.vuxu.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 1376 bytes --]

There is a new pull request by q66 against master on the void-packages repository

https://github.com/void-power/void-packages kernel-elfv2
https://github.com/void-linux/void-packages/pull/13064

linux4.19/5.1/5.2: build with ELFv2 ABI on ppc64 big endian
This adds patches to build the kernel as ELFv2 binaries for big endian ppc64, just like is default for little endian. While IBM does not officially support this and the upstream is not interested in it (because of the former), it has some mainly performance benefits (on unrelated note, we build all big endian userland as ELFv2 also, which IBM does not support either, but musl requires it and glibc at least allows it).

I tested this on a Power Mac G5 as well as in a virtual machine and it seems to be working very nicely. It's also a small patch that shouldn't conflict with anything much ever and is trivlal to redo or even ditch if needed (userland ABI does not affect kernel ABI or the other way around), it also fixes the GCC 9.1 build by side effect (as `-mcall-aixdesc` is no longer necessary).

@pullmoll / @stenstorp, mind giving this a spin also? I think it's worth a try at least. From my side there's still some stuff to confirm, so consider WIP for now, though I'm not expecting any changes to be necessary.

A patch file from https://github.com/void-linux/void-packages/pull/13064.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-kernel-elfv2-13064.patch --]
[-- Type: application/text/x-diff, Size: 16548 bytes --]

From 52374ae0df5e37e557b24004b7d35da779fe36d2 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Fri, 12 Jul 2019 19:36:34 +0200
Subject: [PATCH 1/3] linux5.1: build ppc64 BE with ELFv2

---
 srcpkgs/linux5.1/patches/ppc64-be-elfv2.patch | 84 +++++++++++++++++++
 srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch | 28 -------
 2 files changed, 84 insertions(+), 28 deletions(-)
 create mode 100644 srcpkgs/linux5.1/patches/ppc64-be-elfv2.patch
 delete mode 100644 srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch

diff --git a/srcpkgs/linux5.1/patches/ppc64-be-elfv2.patch b/srcpkgs/linux5.1/patches/ppc64-be-elfv2.patch
new file mode 100644
index 00000000000..ec65b442bdb
--- /dev/null
+++ b/srcpkgs/linux5.1/patches/ppc64-be-elfv2.patch
@@ -0,0 +1,84 @@
+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
++++ b/arch/powerpc/Makefile
+@@ -93,10 +93,8 @@ MULTIPLEWORD	:= -mmultiple
+ endif
+ 
+ ifdef CONFIG_PPC64
+-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
+ 
+ ifndef CONFIG_CC_IS_CLANG
+@@ -144,14 +142,8 @@ endif
+ endif
+ 
+ CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+-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))
+ 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
++++ b/drivers/crypto/vmx/Makefile
+@@ -5,7 +5,7 @@ vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes
+ ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
+ TARGET := linux-ppc64le
+ else
+-TARGET := linux-ppc64
++TARGET := 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) {
diff --git a/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch b/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch
deleted file mode 100644
index f168c161e6c..00000000000
--- a/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Since gcc 9.1, adding `-mcall-aixdesc` to cflags makes it no longer define
-`__linux__`, which breaks compilation of the kernel in places where the macro
-is checked (which is multiple). This behavior is actually more correct than
-it was before, as `-mcall-aixdesc` is only meant to be used when compiling
-for AIX.
-
-However, it is not enough to just drop it and use `-mabi=elfv1`, as that
-results in a ton of undefined references all over the place when linking.
-So work around it until upstream sorts it out.
-
---- a/arch/powerpc/Makefile
-+++ b/arch/powerpc/Makefile
-@@ -96,6 +96,7 @@ endif
- ifdef CONFIG_PPC64
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
-+cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= -D__linux__
- aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
- endif
-@@ -151,6 +152,7 @@ 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)
-+CFLAGS-$(CONFIG_PPC64)	+= -D__linux__
- AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
- endif
- CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))

From fceb49a9fd5af0e2c3b0f16f6283f5f19e938b99 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Fri, 12 Jul 2019 19:37:24 +0200
Subject: [PATCH 2/3] linux5.2: build ppc64 BE with ELFv2

---
 srcpkgs/linux5.2/patches/ppc64-be-elfv2.patch | 84 +++++++++++++++++++
 srcpkgs/linux5.2/patches/ppc64-be-gcc91.patch | 28 -------
 2 files changed, 84 insertions(+), 28 deletions(-)
 create mode 100644 srcpkgs/linux5.2/patches/ppc64-be-elfv2.patch
 delete mode 100644 srcpkgs/linux5.2/patches/ppc64-be-gcc91.patch

diff --git a/srcpkgs/linux5.2/patches/ppc64-be-elfv2.patch b/srcpkgs/linux5.2/patches/ppc64-be-elfv2.patch
new file mode 100644
index 00000000000..ec65b442bdb
--- /dev/null
+++ b/srcpkgs/linux5.2/patches/ppc64-be-elfv2.patch
@@ -0,0 +1,84 @@
+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
++++ b/arch/powerpc/Makefile
+@@ -93,10 +93,8 @@ MULTIPLEWORD	:= -mmultiple
+ endif
+ 
+ ifdef CONFIG_PPC64
+-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
+ 
+ ifndef CONFIG_CC_IS_CLANG
+@@ -144,14 +142,8 @@ endif
+ endif
+ 
+ CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+-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))
+ 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
++++ b/drivers/crypto/vmx/Makefile
+@@ -5,7 +5,7 @@ vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes
+ ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
+ TARGET := linux-ppc64le
+ else
+-TARGET := linux-ppc64
++TARGET := 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) {
diff --git a/srcpkgs/linux5.2/patches/ppc64-be-gcc91.patch b/srcpkgs/linux5.2/patches/ppc64-be-gcc91.patch
deleted file mode 100644
index f168c161e6c..00000000000
--- a/srcpkgs/linux5.2/patches/ppc64-be-gcc91.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Since gcc 9.1, adding `-mcall-aixdesc` to cflags makes it no longer define
-`__linux__`, which breaks compilation of the kernel in places where the macro
-is checked (which is multiple). This behavior is actually more correct than
-it was before, as `-mcall-aixdesc` is only meant to be used when compiling
-for AIX.
-
-However, it is not enough to just drop it and use `-mabi=elfv1`, as that
-results in a ton of undefined references all over the place when linking.
-So work around it until upstream sorts it out.
-
---- a/arch/powerpc/Makefile
-+++ b/arch/powerpc/Makefile
-@@ -96,6 +96,7 @@ endif
- ifdef CONFIG_PPC64
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
-+cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= -D__linux__
- aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
- endif
-@@ -151,6 +152,7 @@ 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)
-+CFLAGS-$(CONFIG_PPC64)	+= -D__linux__
- AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
- endif
- CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))

From a60f4676506ee8acc627cd59f24d37f55fb7ef4d Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Fri, 12 Jul 2019 19:37:56 +0200
Subject: [PATCH 3/3] linux4.19: build ppc64 BE with ELFv2

[ci skip]
---
 .../linux4.19/patches/ppc64-be-elfv2.patch    | 84 +++++++++++++++++++
 .../linux4.19/patches/ppc64-be-gcc91.patch    | 28 -------
 2 files changed, 84 insertions(+), 28 deletions(-)
 create mode 100644 srcpkgs/linux4.19/patches/ppc64-be-elfv2.patch
 delete mode 100644 srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch

diff --git a/srcpkgs/linux4.19/patches/ppc64-be-elfv2.patch b/srcpkgs/linux4.19/patches/ppc64-be-elfv2.patch
new file mode 100644
index 00000000000..ec65b442bdb
--- /dev/null
+++ b/srcpkgs/linux4.19/patches/ppc64-be-elfv2.patch
@@ -0,0 +1,84 @@
+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
++++ b/arch/powerpc/Makefile
+@@ -93,10 +93,8 @@ MULTIPLEWORD	:= -mmultiple
+ endif
+ 
+ ifdef CONFIG_PPC64
+-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
+ 
+ ifndef CONFIG_CC_IS_CLANG
+@@ -144,14 +142,8 @@ endif
+ endif
+ 
+ CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+-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))
+ 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
++++ b/drivers/crypto/vmx/Makefile
+@@ -5,7 +5,7 @@ vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes
+ ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
+ TARGET := linux-ppc64le
+ else
+-TARGET := linux-ppc64
++TARGET := 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) {
diff --git a/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch b/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch
deleted file mode 100644
index f168c161e6c..00000000000
--- a/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Since gcc 9.1, adding `-mcall-aixdesc` to cflags makes it no longer define
-`__linux__`, which breaks compilation of the kernel in places where the macro
-is checked (which is multiple). This behavior is actually more correct than
-it was before, as `-mcall-aixdesc` is only meant to be used when compiling
-for AIX.
-
-However, it is not enough to just drop it and use `-mabi=elfv1`, as that
-results in a ton of undefined references all over the place when linking.
-So work around it until upstream sorts it out.
-
---- a/arch/powerpc/Makefile
-+++ b/arch/powerpc/Makefile
-@@ -96,6 +96,7 @@ endif
- ifdef CONFIG_PPC64
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
-+cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= -D__linux__
- aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
- aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
- endif
-@@ -151,6 +152,7 @@ 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)
-+CFLAGS-$(CONFIG_PPC64)	+= -D__linux__
- AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
- endif
- CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))

             reply	other threads:[~2019-07-12 17:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-12 17:48 voidlinux-github [this message]
2019-07-13  3:01 ` voidlinux-github
2019-07-13  4:05 ` voidlinux-github
2019-07-13  4:29 ` voidlinux-github
2019-07-13  7:19 ` [PR PATCH] [Merged]: " voidlinux-github
2019-07-13 13:27 ` voidlinux-github

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-13064@inbox.vuxu.org \
    --to=voidlinux-github@inbox.vuxu.org \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).