7801a8cef8
[ci skip]
28 lines
1.3 KiB
Diff
28 lines
1.3 KiB
Diff
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))
|