* [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large
@ 2024-01-09 13:34 Naveen N Rao
2024-01-09 15:15 ` Christophe Leroy
0 siblings, 1 reply; 4+ messages in thread
From: Naveen N Rao @ 2024-01-09 13:34 UTC (permalink / raw)
To: linuxppc-dev
All supported compilers today (gcc v5.1+ and clang v11+) have support for
-mcmodel=medium. As such, NO_MINIMAL_TOC is no longer being set. Remove
NO_MINIMAL_TOC as well as the fallback to -mminimal-toc.
Signed-off-by: Naveen N Rao <naveen@kernel.org>
---
arch/powerpc/Makefile | 6 +-----
arch/powerpc/kernel/Makefile | 3 ---
arch/powerpc/lib/Makefile | 2 --
arch/powerpc/mm/Makefile | 2 --
arch/powerpc/mm/book3s64/Makefile | 2 --
arch/powerpc/mm/nohash/Makefile | 2 --
arch/powerpc/platforms/pseries/Makefile | 1 -
arch/powerpc/sysdev/Makefile | 2 --
arch/powerpc/xmon/Makefile | 2 --
9 files changed, 1 insertion(+), 21 deletions(-)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 051247027da0..a0eb0fb1aba8 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -114,7 +114,6 @@ LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y)
ifdef CONFIG_PPC64
ifndef CONFIG_PPC_KERNEL_PCREL
-ifeq ($(call cc-option-yn,-mcmodel=medium),y)
# -mcmodel=medium breaks modules because it uses 32bit offsets from
# the TOC pointer to create pointers where possible. Pointers into the
# percpu data area are created by this method.
@@ -124,9 +123,6 @@ ifeq ($(call cc-option-yn,-mcmodel=medium),y)
# kernel percpu data space (starting with 0xc...). We need a full
# 64bit relocation for this to work, hence -mcmodel=large.
KBUILD_CFLAGS_MODULE += -mcmodel=large
-else
- export NO_MINIMAL_TOC := -mno-minimal-toc
-endif
endif
endif
@@ -139,7 +135,7 @@ CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcall-aixdesc)
endif
endif
-CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
+CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium)
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mno-pointers-to-nested-functions)
CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mlong-double-128)
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 2919433be355..2b0567926259 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -3,9 +3,6 @@
# Makefile for the linux kernel.
#
-ifdef CONFIG_PPC64
-CFLAGS_prom_init.o += $(NO_MINIMAL_TOC)
-endif
ifdef CONFIG_PPC32
CFLAGS_prom_init.o += -fPIC
CFLAGS_btext.o += -fPIC
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index 6eac63e79a89..50d88651d04f 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -3,8 +3,6 @@
# Makefile for ppc-specific library files..
#
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-
CFLAGS_code-patching.o += -fno-stack-protector
CFLAGS_feature-fixups.o += -fno-stack-protector
diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
index 503a6e249940..0fe2f085c05a 100644
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
@@ -3,8 +3,6 @@
# Makefile for the linux ppc-specific parts of the memory manager.
#
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-
obj-y := fault.o mem.o pgtable.o maccess.o pageattr.o \
init_$(BITS).o pgtable_$(BITS).o \
pgtable-frag.o ioremap.o ioremap_$(BITS).o \
diff --git a/arch/powerpc/mm/book3s64/Makefile b/arch/powerpc/mm/book3s64/Makefile
index cad2abc1730f..33af5795856a 100644
--- a/arch/powerpc/mm/book3s64/Makefile
+++ b/arch/powerpc/mm/book3s64/Makefile
@@ -1,7 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
-ccflags-y := $(NO_MINIMAL_TOC)
-
obj-y += mmu_context.o pgtable.o trace.o
ifdef CONFIG_PPC_64S_HASH_MMU
CFLAGS_REMOVE_slb.o = $(CC_FLAGS_FTRACE)
diff --git a/arch/powerpc/mm/nohash/Makefile b/arch/powerpc/mm/nohash/Makefile
index f3894e79d5f7..b3f0498dd42f 100644
--- a/arch/powerpc/mm/nohash/Makefile
+++ b/arch/powerpc/mm/nohash/Makefile
@@ -1,7 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-
obj-y += mmu_context.o tlb.o tlb_low.o kup.o
obj-$(CONFIG_PPC_BOOK3E_64) += tlb_low_64e.o book3e_pgtable.o
obj-$(CONFIG_40x) += 40x.o
diff --git a/arch/powerpc/platforms/pseries/Makefile b/arch/powerpc/platforms/pseries/Makefile
index f936962a2946..7bf506f6b8c8 100644
--- a/arch/powerpc/platforms/pseries/Makefile
+++ b/arch/powerpc/platforms/pseries/Makefile
@@ -1,5 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
ccflags-$(CONFIG_PPC_PSERIES_DEBUG) += -DDEBUG
obj-y := lpar.o hvCall.o nvram.o reconfig.o \
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index 9cb1d029511a..24a177d164f1 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -1,7 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-
mpic-msi-obj-$(CONFIG_PCI_MSI) += mpic_msi.o mpic_u3msi.o
obj-$(CONFIG_MPIC) += mpic.o $(mpic-msi-obj-y)
obj-$(CONFIG_MPIC_TIMER) += mpic_timer.o
diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
index 682c7c0a6f77..d778011060a8 100644
--- a/arch/powerpc/xmon/Makefile
+++ b/arch/powerpc/xmon/Makefile
@@ -10,8 +10,6 @@ KCSAN_SANITIZE := n
# Disable ftrace for the entire directory
ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
-
# Clang stores addresses on the stack causing the frame size to blow
# out. See https://github.com/ClangBuiltLinux/linux/issues/252
ccflags-$(CONFIG_CC_IS_CLANG) += -Wframe-larger-than=4096
base-commit: 414e92af226ede4935509b0b5e041810c92e003f
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large
2024-01-09 13:34 [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large Naveen N Rao
@ 2024-01-09 15:15 ` Christophe Leroy
2024-01-09 18:39 ` Segher Boessenkool
0 siblings, 1 reply; 4+ messages in thread
From: Christophe Leroy @ 2024-01-09 15:15 UTC (permalink / raw)
To: Naveen N Rao, linuxppc-dev
Le 09/01/2024 à 14:34, Naveen N Rao a écrit :
> All supported compilers today (gcc v5.1+ and clang v11+) have support for
> -mcmodel=medium. As such, NO_MINIMAL_TOC is no longer being set. Remove
> NO_MINIMAL_TOC as well as the fallback to -mminimal-toc.
>
> Signed-off-by: Naveen N Rao <naveen@kernel.org>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Small comment below,
> ---
> arch/powerpc/Makefile | 6 +-----
> arch/powerpc/kernel/Makefile | 3 ---
> arch/powerpc/lib/Makefile | 2 --
> arch/powerpc/mm/Makefile | 2 --
> arch/powerpc/mm/book3s64/Makefile | 2 --
> arch/powerpc/mm/nohash/Makefile | 2 --
> arch/powerpc/platforms/pseries/Makefile | 1 -
> arch/powerpc/sysdev/Makefile | 2 --
> arch/powerpc/xmon/Makefile | 2 --
> 9 files changed, 1 insertion(+), 21 deletions(-)
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 051247027da0..a0eb0fb1aba8 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -114,7 +114,6 @@ LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y)
>
> ifdef CONFIG_PPC64
> ifndef CONFIG_PPC_KERNEL_PCREL
> -ifeq ($(call cc-option-yn,-mcmodel=medium),y)
> # -mcmodel=medium breaks modules because it uses 32bit offsets from
> # the TOC pointer to create pointers where possible. Pointers into the
> # percpu data area are created by this method.
> @@ -124,9 +123,6 @@ ifeq ($(call cc-option-yn,-mcmodel=medium),y)
> # kernel percpu data space (starting with 0xc...). We need a full
> # 64bit relocation for this to work, hence -mcmodel=large.
> KBUILD_CFLAGS_MODULE += -mcmodel=large
> -else
> - export NO_MINIMAL_TOC := -mno-minimal-toc
> -endif
> endif
> endif
>
> @@ -139,7 +135,7 @@ CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
> CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcall-aixdesc)
> endif
> endif
> -CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
> +CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium)
Should we still use $(call cc-option here ?
As we only deal with medium model now, shouldn't we make it such that it
fails in case the compiler doesn't support -mcmodel=medium ?
> CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mno-pointers-to-nested-functions)
> CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mlong-double-128)
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large
2024-01-09 15:15 ` Christophe Leroy
@ 2024-01-09 18:39 ` Segher Boessenkool
2024-01-10 13:49 ` Naveen N Rao
0 siblings, 1 reply; 4+ messages in thread
From: Segher Boessenkool @ 2024-01-09 18:39 UTC (permalink / raw)
To: Christophe Leroy; +Cc: linuxppc-dev, Naveen N Rao
On Tue, Jan 09, 2024 at 03:15:35PM +0000, Christophe Leroy wrote:
> > CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcall-aixdesc)
> > endif
> > endif
> > -CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
> > +CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium)
>
> Should we still use $(call cc-option here ?
> As we only deal with medium model now, shouldn't we make it such that it
> fails in case the compiler doesn't support -mcmodel=medium ?
The -mcmodel= flag has been supported since 2010. The kernel requires
a GCC from 2015 or later (GCC 5.1 is the minimum). -mcmodel=medium is
(and always has been) the default, so it is always supported, yes.
Segher
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large
2024-01-09 18:39 ` Segher Boessenkool
@ 2024-01-10 13:49 ` Naveen N Rao
0 siblings, 0 replies; 4+ messages in thread
From: Naveen N Rao @ 2024-01-10 13:49 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: linuxppc-dev
On Tue, Jan 09, 2024 at 12:39:36PM -0600, Segher Boessenkool wrote:
> On Tue, Jan 09, 2024 at 03:15:35PM +0000, Christophe Leroy wrote:
> > > CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcall-aixdesc)
> > > endif
> > > endif
> > > -CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
> > > +CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mcmodel=medium)
> >
> > Should we still use $(call cc-option here ?
> > As we only deal with medium model now, shouldn't we make it such that it
> > fails in case the compiler doesn't support -mcmodel=medium ?
Yup, v2 on its way.
>
> The -mcmodel= flag has been supported since 2010. The kernel requires
> a GCC from 2015 or later (GCC 5.1 is the minimum). -mcmodel=medium is
> (and always has been) the default, so it is always supported, yes.
Thanks for confirming!
- Naveen
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-01-10 13:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-09 13:34 [PATCH] powerpc/Makefile: Remove bits related to the previous use of -mcmodel=large Naveen N Rao
2024-01-09 15:15 ` Christophe Leroy
2024-01-09 18:39 ` Segher Boessenkool
2024-01-10 13:49 ` Naveen N Rao
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).