Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] add patches to fix kernels on ppc64 BE with gcc9
@ 2019-07-05  0:24 voidlinux-github
  2019-07-05  6:29 ` [PR PATCH] [Merged]: " voidlinux-github
  0 siblings, 1 reply; 2+ messages in thread
From: voidlinux-github @ 2019-07-05  0:24 UTC (permalink / raw)
  To: ml

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

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

https://github.com/void-power/void-packages linux
https://github.com/void-linux/void-packages/pull/12815

add patches to fix kernels on ppc64 BE with gcc9
See the comment in the patches for rationale. This will be reported and hopefully fixed upstream, for now we need a workaround, this one is fortunately pretty simple.

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

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

From d18e1cceb160238c34806efa5ff817e58618fb1c Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Thu, 4 Jul 2019 21:28:30 +0200
Subject: [PATCH 1/2] linux4.19: add patch to unbreak build on big-endian ppc64
 + gcc9

---
 .../linux4.19/patches/ppc64-be-gcc91.patch    | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch

diff --git a/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch b/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch
new file mode 100644
index 00000000000..f168c161e6c
--- /dev/null
+++ b/srcpkgs/linux4.19/patches/ppc64-be-gcc91.patch
@@ -0,0 +1,28 @@
+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 c45211b5e00a363a3cc1a6986234db11e4e0ea67 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Thu, 4 Jul 2019 21:28:54 +0200
Subject: [PATCH 2/2] linux5.1: add patch to unbreak build on big-endian ppc64
 + gcc9

[ci skip]
---
 srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch

diff --git a/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch b/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch
new file mode 100644
index 00000000000..f168c161e6c
--- /dev/null
+++ b/srcpkgs/linux5.1/patches/ppc64-be-gcc91.patch
@@ -0,0 +1,28 @@
+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))

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PR PATCH] [Merged]: add patches to fix kernels on ppc64 BE with gcc9
  2019-07-05  0:24 [PR PATCH] add patches to fix kernels on ppc64 BE with gcc9 voidlinux-github
@ 2019-07-05  6:29 ` voidlinux-github
  0 siblings, 0 replies; 2+ messages in thread
From: voidlinux-github @ 2019-07-05  6:29 UTC (permalink / raw)
  To: ml

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

There's a merged pull request on the void-packages repository

add patches to fix kernels on ppc64 BE with gcc9
https://github.com/void-linux/void-packages/pull/12815
Description: See the comment in the patches for rationale. This will be reported and hopefully fixed upstream, for now we need a workaround, this one is fortunately pretty simple.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-07-05  6:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-05  0:24 [PR PATCH] add patches to fix kernels on ppc64 BE with gcc9 voidlinux-github
2019-07-05  6:29 ` [PR PATCH] [Merged]: " voidlinux-github

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).