* [PATCH v2 1/4] powerpc/boot: Separate target flags from BOOTCFLAGS
2023-06-06 6:46 [PATCH v2 0/4] powerpc/boot: build flags refactoring Nicholas Piggin
@ 2023-06-06 6:46 ` Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 2/4] powerpc/boot: Separate CPP " Nicholas Piggin
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Nicholas Piggin @ 2023-06-06 6:46 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Nicholas Piggin
Add BOOTTARGETFLAGS variable with target / ABI options common to
CFLAGS and AFLAGS.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
arch/powerpc/boot/Makefile | 41 ++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 771b79423bbc..ae80f7f1774e 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -39,33 +39,44 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
$(LINUXINCLUDE)
ifdef CONFIG_PPC64_BOOT_WRAPPER
-BOOTCFLAGS += -m64
+BOOTTARGETFLAGS += -m64
+BOOTTARGETFLAGS += -mabi=elfv2
ifdef CONFIG_PPC64_ELF_ABI_V2
-BOOTCFLAGS += $(call cc-option,-mabi=elfv2)
+BOOTTARGETFLAGS += $(call cc-option,-mabi=elfv2)
endif
else
-BOOTCFLAGS += -m32
+BOOTTARGETFLAGS := -m32
endif
ifdef CONFIG_TARGET_CPU_BOOL
-BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU)
+BOOTTARGETFLAGS += -mcpu=$(CONFIG_TARGET_CPU)
else ifdef CONFIG_PPC64_BOOT_WRAPPER
ifdef CONFIG_CPU_LITTLE_ENDIAN
-BOOTCFLAGS += -mcpu=powerpc64le
+BOOTTARGETFLAGS += -mcpu=powerpc64le
else
-BOOTCFLAGS += -mcpu=powerpc64
+BOOTTARGETFLAGS += -mcpu=powerpc64
endif
endif
+$(obj)/4xx.o: BOOTTARGETFLAGS += -mcpu=405
+$(obj)/ebony.o: BOOTTARGETFLAGS += -mcpu=440
+$(obj)/cuboot-hotfoot.o: BOOTTARGETFLAGS += -mcpu=405
+$(obj)/cuboot-taishan.o: BOOTTARGETFLAGS += -mcpu=440
+$(obj)/cuboot-katmai.o: BOOTTARGETFLAGS += -mcpu=440
+$(obj)/cuboot-acadia.o: BOOTTARGETFLAGS += -mcpu=405
+$(obj)/treeboot-iss4xx.o: BOOTTARGETFLAGS += -mcpu=405
+$(obj)/treeboot-currituck.o: BOOTTARGETFLAGS += -mcpu=405
+$(obj)/treeboot-akebono.o: BOOTTARGETFLAGS += -mcpu=405
+
BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
ifdef CONFIG_CPU_BIG_ENDIAN
-BOOTCFLAGS += -mbig-endian
+BOOTTARGETFLAGS += -mbig-endian
else
-BOOTCFLAGS += -mlittle-endian
+BOOTTARGETFLAGS += -mlittle-endian
endif
-BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -nostdinc
+BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) $(BOOTCFLAGS) -nostdinc
BOOTARFLAGS := -crD
@@ -73,6 +84,8 @@ BOOTCFLAGS += $(call cc-option,-mno-prefixed) \
$(call cc-option,-mno-pcrel) \
$(call cc-option,-mno-mma)
+BOOTCFLAGS += $(BOOTTARGETFLAGS)
+
ifdef CONFIG_CC_IS_CLANG
BOOTCFLAGS += $(CLANG_FLAGS)
BOOTAFLAGS += $(CLANG_FLAGS)
@@ -91,16 +104,6 @@ BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
DTC_FLAGS ?= -p 1024
-$(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
-$(obj)/ebony.o: BOOTCFLAGS += -mcpu=440
-$(obj)/cuboot-hotfoot.o: BOOTCFLAGS += -mcpu=405
-$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=440
-$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=440
-$(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405
-$(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405
-$(obj)/treeboot-currituck.o: BOOTCFLAGS += -mcpu=405
-$(obj)/treeboot-akebono.o: BOOTCFLAGS += -mcpu=405
-
# The pre-boot decompressors pull in a lot of kernel headers and other source
# files. This creates a bit of a dependency headache since we need to copy
# these files into the build dir, fix up any includes and ensure that dependent
--
2.40.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2 2/4] powerpc/boot: Separate CPP flags from BOOTCFLAGS
2023-06-06 6:46 [PATCH v2 0/4] powerpc/boot: build flags refactoring Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 1/4] powerpc/boot: Separate target flags from BOOTCFLAGS Nicholas Piggin
@ 2023-06-06 6:46 ` Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 3/4] powerpc/boot: Separate BOOTCFLAGS from BOOTASFLAGS Nicholas Piggin
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Nicholas Piggin @ 2023-06-06 6:46 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Nicholas Piggin
Add BOOTCPPFLAGS variable for the CPP options required by C and AS.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
arch/powerpc/boot/Makefile | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index ae80f7f1774e..9445ec442512 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -32,11 +32,13 @@ else
BOOTAR := $(AR)
endif
+BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
+BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
+
BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
$(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
- -pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
- $(LINUXINCLUDE)
+ -pipe -fomit-frame-pointer -fno-builtin -fPIC
ifdef CONFIG_PPC64_BOOT_WRAPPER
BOOTTARGETFLAGS += -m64
@@ -68,15 +70,13 @@ $(obj)/treeboot-iss4xx.o: BOOTTARGETFLAGS += -mcpu=405
$(obj)/treeboot-currituck.o: BOOTTARGETFLAGS += -mcpu=405
$(obj)/treeboot-akebono.o: BOOTTARGETFLAGS += -mcpu=405
-BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
-
ifdef CONFIG_CPU_BIG_ENDIAN
BOOTTARGETFLAGS += -mbig-endian
else
BOOTTARGETFLAGS += -mlittle-endian
endif
-BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) $(BOOTCFLAGS) -nostdinc
+BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) $(BOOTCFLAGS)
BOOTARFLAGS := -crD
@@ -227,10 +227,10 @@ clean-files := $(zlib-) $(zlibheader-) $(zliblinuxheader-) \
empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
quiet_cmd_bootcc = BOOTCC $@
- cmd_bootcc = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTCFLAGS) -c -o $@ $<
+ cmd_bootcc = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTCPPFLAGS) $(BOOTCFLAGS) -c -o $@ $<
quiet_cmd_bootas = BOOTAS $@
- cmd_bootas = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTAFLAGS) -c -o $@ $<
+ cmd_bootas = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTCPPFLAGS) $(BOOTAFLAGS) -c -o $@ $<
quiet_cmd_bootar = BOOTAR $@
cmd_bootar = $(BOOTAR) $(BOOTARFLAGS) $@.$$$$ $(real-prereqs); mv $@.$$$$ $@
--
2.40.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2 3/4] powerpc/boot: Separate BOOTCFLAGS from BOOTASFLAGS
2023-06-06 6:46 [PATCH v2 0/4] powerpc/boot: build flags refactoring Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 1/4] powerpc/boot: Separate target flags from BOOTCFLAGS Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 2/4] powerpc/boot: Separate CPP " Nicholas Piggin
@ 2023-06-06 6:46 ` Nicholas Piggin
2023-06-06 6:46 ` [PATCH v2 4/4] powerpc/boot: Clean up Makefile after cflags and asflags separation Nicholas Piggin
2023-07-03 5:26 ` [PATCH v2 0/4] powerpc/boot: build flags refactoring Michael Ellerman
4 siblings, 0 replies; 6+ messages in thread
From: Nicholas Piggin @ 2023-06-06 6:46 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Linus Torvalds, Nicholas Piggin
BOOTCFLAGS no longer contains anything that BOOTASFLAGS needs (except
-pipe). Separate them to avoid fragility with cross-contamination of
flags which has caused several build problems.
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/lkml/CAHk-=whyWUdJDeOBN1hRWYSkQkvzYiQ5RbSW5rJjExgnbSNX9Q@mail.gmail.com/
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
arch/powerpc/boot/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 9445ec442512..9cdc0858b256 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -76,7 +76,7 @@ else
BOOTTARGETFLAGS += -mlittle-endian
endif
-BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) $(BOOTCFLAGS)
+BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) -pipe
BOOTARFLAGS := -crD
--
2.40.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 4/4] powerpc/boot: Clean up Makefile after cflags and asflags separation
2023-06-06 6:46 [PATCH v2 0/4] powerpc/boot: build flags refactoring Nicholas Piggin
` (2 preceding siblings ...)
2023-06-06 6:46 ` [PATCH v2 3/4] powerpc/boot: Separate BOOTCFLAGS from BOOTASFLAGS Nicholas Piggin
@ 2023-06-06 6:46 ` Nicholas Piggin
2023-07-03 5:26 ` [PATCH v2 0/4] powerpc/boot: build flags refactoring Michael Ellerman
4 siblings, 0 replies; 6+ messages in thread
From: Nicholas Piggin @ 2023-06-06 6:46 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Nicholas Piggin
Tidy pass over boot Makefile. Move variables together where possible.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
arch/powerpc/boot/Makefile | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 9cdc0858b256..6f9ef031bfc7 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -32,14 +32,6 @@ else
BOOTAR := $(AR)
endif
-BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
-BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
-
-BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
- -fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
- $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
- -pipe -fomit-frame-pointer -fno-builtin -fPIC
-
ifdef CONFIG_PPC64_BOOT_WRAPPER
BOOTTARGETFLAGS += -m64
BOOTTARGETFLAGS += -mabi=elfv2
@@ -76,15 +68,22 @@ else
BOOTTARGETFLAGS += -mlittle-endian
endif
-BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTTARGETFLAGS) -pipe
-
-BOOTARFLAGS := -crD
+BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
+BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
-BOOTCFLAGS += $(call cc-option,-mno-prefixed) \
+BOOTCFLAGS := -pipe $(BOOTTARGETFLAGS) \
+ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
+ -fno-strict-aliasing -O2 \
+ -msoft-float -mno-altivec -mno-vsx \
+ $(call cc-option,-mno-prefixed) \
$(call cc-option,-mno-pcrel) \
- $(call cc-option,-mno-mma)
+ $(call cc-option,-mno-mma) \
+ $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
+ -fomit-frame-pointer -fno-builtin -fPIC
-BOOTCFLAGS += $(BOOTTARGETFLAGS)
+BOOTAFLAGS := -pipe $(BOOTTARGETFLAGS) -D__ASSEMBLY__
+
+BOOTARFLAGS := -crD
ifdef CONFIG_CC_IS_CLANG
BOOTCFLAGS += $(CLANG_FLAGS)
--
2.40.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v2 0/4] powerpc/boot: build flags refactoring
2023-06-06 6:46 [PATCH v2 0/4] powerpc/boot: build flags refactoring Nicholas Piggin
` (3 preceding siblings ...)
2023-06-06 6:46 ` [PATCH v2 4/4] powerpc/boot: Clean up Makefile after cflags and asflags separation Nicholas Piggin
@ 2023-07-03 5:26 ` Michael Ellerman
4 siblings, 0 replies; 6+ messages in thread
From: Michael Ellerman @ 2023-07-03 5:26 UTC (permalink / raw)
To: linuxppc-dev, Nicholas Piggin
On Tue, 06 Jun 2023 16:46:53 +1000, Nicholas Piggin wrote:
> This is a rebase of the series here. It's no longer a fix because
> the clang build issue got a minimal fix. A couple were merged, and
> I pulled the rest of the boot specific ones into this series.
>
> https://lore.kernel.org/linuxppc-dev/20230426055848.402993-1-npiggin@gmail.com/
>
> Thanks,
> Nick
>
> [...]
Applied to powerpc/next.
[1/4] powerpc/boot: Separate target flags from BOOTCFLAGS
https://git.kernel.org/powerpc/c/689d592e406983debe919acb87855cab0f25b7bc
[2/4] powerpc/boot: Separate CPP flags from BOOTCFLAGS
https://git.kernel.org/powerpc/c/d1b7d40d4ffa02d59e72abf31ee2119778c6673e
[3/4] powerpc/boot: Separate BOOTCFLAGS from BOOTASFLAGS
https://git.kernel.org/powerpc/c/54194a2fab4f78b96347882cf27894f76833c631
[4/4] powerpc/boot: Clean up Makefile after cflags and asflags separation
https://git.kernel.org/powerpc/c/8bce81dbce4f3563fffca48ebfce208b1112ab09
cheers
^ permalink raw reply [flat|nested] 6+ messages in thread