From: Randy Dunlap <rdunlap@infradead.org>
To: PowerPC <linuxppc-dev@lists.ozlabs.org>
Cc: linux-kbuild <linux-kbuild@vger.kernel.org>
Subject: powerpc{32,64} randconfigs
Date: Tue, 20 Apr 2021 16:31:27 -0700 [thread overview]
Message-ID: <45afab41-cc5f-dffa-712a-d5fb1a9d0a23@infradead.org> (raw)
Hi,
Is there a way to do this?
$ make ARCH=powerpc randconfig # and force PPC32
and separately
$ make ARCH=powerpc randconfig # and force PPC64
I suppose that I could do something like this (for PPC64):
$ make ARCH=powerpc randconfig
$ ./scripts/config -d PPC32 -e PPC64
$ make ARCH=powerpc olddefconfig
$ make ARCH=powerpc all
but that's awkward and sort of defeats the randomness -- i.e.,
the randomness is done before the ARCH=PPC{32,64} is forced,
and then some of the config items won't be valid during the
'make olddefconfig'.
If the answer is No, then I will try to make a patch (at least
for local use) that does something like x86 does for
i386 | x86_64, or sparc does for sparc32 | sparc64.
[time passes]
OK, I have a patch that seems for work as far as setting
PPC32=y or PPC64=y... but it has a problem during linking
of vmlinux:
crosstool/gcc-9.3.0-nolibc/powerpc-linux/bin/powerpc-linux-ld:./arch/powerpc/kernel/vmlinux.lds:6: syntax error
and the (bad) generated vmlinux.lds file says (at line 6):
OUTPUT_ARCH(1:common)
while it should say:
OUTPUT_ARCH(powerpc:common)
Does anyone have any ideas about this problem?
The ARCH=ppc32 / ARCH=ppc64 patch is below FYI.
It is missing an update to Documentation/kbuild/kbuild.rst (aliases).
thanks.
--
---
Makefile | 8 ++++++++
arch/powerpc/Makefile | 14 +++++++-------
arch/powerpc/kernel/vdso64/Makefile | 2 +-
arch/powerpc/platforms/Kconfig.cputype | 5 +++--
4 files changed, 19 insertions(+), 10 deletions(-)
--- linux-next-20210420.orig/Makefile
+++ linux-next-20210420/Makefile
@@ -411,6 +411,14 @@ ifeq ($(ARCH),sh64)
SRCARCH := sh
endif
+# Additional ARCH settings for powerpc
+ifeq ($(ARCH),ppc32)
+ SRCARCH := powerpc
+endif
+ifeq ($(ARCH),ppc64)
+ SRCARCH := powerpc
+endif
+
export cross_compiling :=
ifneq ($(SRCARCH),$(SUBARCH))
cross_compiling := 1
--- linux-next-20210420.orig/arch/powerpc/platforms/Kconfig.cputype
+++ linux-next-20210420/arch/powerpc/platforms/Kconfig.cputype
@@ -1,11 +1,12 @@
# SPDX-License-Identifier: GPL-2.0
config PPC32
bool
- default y if !PPC64
+ default y if !PPC64 || "$(ARCH)" = "ppc32"
select KASAN_VMALLOC if KASAN && MODULES
config PPC64
- bool "64-bit kernel"
+ bool "64-bit kernel" if "$(ARCH)" = "powerpc"
+ default y if "$(ARCH)" = "ppc64"
select ZLIB_DEFLATE
help
This option selects whether a 32-bit or a 64-bit kernel
--- linux-next-20210420.orig/arch/powerpc/kernel/vdso64/Makefile
+++ linux-next-20210420/arch/powerpc/kernel/vdso64/Makefile
@@ -30,7 +30,7 @@ ccflags-y := -shared -fno-common -fno-bu
asflags-y := -D__VDSO64__ -s
targets += vdso64.lds
-CPPFLAGS_vdso64.lds += -P -C -U$(ARCH)
+CPPFLAGS_vdso64.lds += -P -C -U$(SRCARCH)
# link rule for the .so file, .lds has to be first
$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) $(obj)/vgettimeofday.o FORCE
--- linux-next-20210420.orig/arch/powerpc/Makefile
+++ linux-next-20210420/arch/powerpc/Makefile
@@ -204,7 +204,7 @@ endif
asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1)
-KBUILD_CPPFLAGS += -I $(srctree)/arch/$(ARCH) $(asinstr)
+KBUILD_CPPFLAGS += -I $(srctree)/arch/$(SRCARCH) $(asinstr)
KBUILD_AFLAGS += $(AFLAGS-y)
KBUILD_CFLAGS += $(call cc-option,-msoft-float)
KBUILD_CFLAGS += -pipe $(CFLAGS-y)
@@ -279,7 +279,7 @@ BOOT_TARGETS2 := zImage% dtbImage% treeI
PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
-boot := arch/$(ARCH)/boot
+boot := arch/$(SRCARCH)/boot
$(BOOT_TARGETS1): vmlinux
$(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
@@ -297,8 +297,8 @@ bootwrapper_install:
# without the .config suffix.
define merge_into_defconfig
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
- -m -O $(objtree) $(srctree)/arch/$(ARCH)/configs/$(1) \
- $(foreach config,$(2),$(srctree)/arch/$(ARCH)/configs/$(config).config)
+ -m -O $(objtree) $(srctree)/arch/$(SRCARCH)/configs/$(1) \
+ $(foreach config,$(2),$(srctree)/arch/$(SRCARCH)/configs/$(config).config)
+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
endef
@@ -378,7 +378,7 @@ ppc64_book3e_allmodconfig:
define archhelp
@echo '* zImage - Build default images selected by kernel config'
- @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
+ @echo ' zImage.* - Compressed kernel image (arch/$(SRCARCH)/boot/zImage.*)'
@echo ' uImage - U-Boot native image format'
@echo ' cuImage.<dt> - Backwards compatible U-Boot image for older'
@echo ' versions which do not support device trees'
@@ -389,12 +389,12 @@ define archhelp
@echo ' (your) ~/bin/$(INSTALLKERNEL) or'
@echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
@echo ' install to $$(INSTALL_PATH) and run lilo'
- @echo ' *_defconfig - Select default config from arch/$(ARCH)/configs'
+ @echo ' *_defconfig - Select default config from arch/$(SRCARCH)/configs'
@echo ''
@echo ' Targets with <dt> embed a device tree blob inside the image'
@echo ' These targets support board with firmware that does not'
@echo ' support passing a device tree directly. Replace <dt> with the'
- @echo ' name of a dts file from the arch/$(ARCH)/boot/dts/ directory'
+ @echo ' name of a dts file from the arch/$(SRCARCH)/boot/dts/ directory'
@echo ' (minus the .dts extension).'
endef
next reply other threads:[~2021-04-20 23:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-20 23:31 Randy Dunlap [this message]
2021-04-21 6:03 ` powerpc{32,64} randconfigs Christophe Leroy
2021-04-21 6:12 ` Christophe Leroy
2021-04-21 6:37 ` Christophe Leroy
2021-04-21 6:45 ` Randy Dunlap
2021-04-28 1:31 ` Randy Dunlap
2021-04-21 7:15 ` Michael Ellerman
2021-04-21 10:08 ` Masahiro Yamada
2021-04-27 23:45 ` Randy Dunlap
2022-03-02 16:14 ` Christophe Leroy
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=45afab41-cc5f-dffa-712a-d5fb1a9d0a23@infradead.org \
--to=rdunlap@infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.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).