On 15. 07. 23, 7:04, Masahiro Yamada wrote:
On Fri, Jul 14, 2023 at 3:33 PM Jiri Slaby <jirislaby@xxxxxxxxxx> wrote:
Hi,
if I create an s390 defconfig:
mkdir /tmp/s390/
make O=/tmp/s390/ ARCH=s390 CROSS_COMPILE=s390x-suse-linux- defconfig
And then if I try for a couple times:
make O=/tmp/s390/ -j17 ARCH=s390 CROSS_COMPILE=s390x-suse-linux-
drivers/s390/char/con3270.o
Most of the time, I get:
make[1]: Entering directory '/tmp/s390'
GEN Makefile
CALL /home/latest/linux/scripts/checksyscalls.sh
CC drivers/s390/char/con3270.o
CC drivers/s390/char/con3270.o
I.e. it is built twice.
Sometimes, I also get an error:
fixdep: error opening file: drivers/s390/char/.con3270.o.d: No such file
or directory
make[4]: *** [/home/latest/linux/scripts/Makefile.build:243:
drivers/s390/char/con3270.o] Error 2
make[4]: *** Deleting file 'drivers/s390/char/con3270.o'
make[3]: *** [/home/latest/linux/scripts/Makefile.build:477: drivers]
Obviously due to some race.
Any ideas what is going on?
The reason is because ARCH=s390 descends into
drivers/s390/ in a non-standard way.
See arch/s390/Makefile line 122.
This is a corner case in single builds, and I
do not know how to make it work.
I really hope arch maintainers will follow the standard
obj-y syntax unless there is a strong reason to opt out.
The following patch will fix the issue.
Tested-by: Jiri Slaby <jirislaby@xxxxxxxxxx>
Will you send it as a patch?
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index 5ed242897b0d..a53a36ee0731 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -119,7 +119,6 @@ export KBUILD_CFLAGS_DECOMPRESSOR
OBJCOPYFLAGS := -O binary
libs-y += arch/s390/lib/
-drivers-y += drivers/s390/
boot := arch/s390/boot
syscalls := arch/s390/kernel/syscalls
diff --git a/drivers/Makefile b/drivers/Makefile
index 7241d80a7b29..a7459e77df37 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -195,3 +195,5 @@ obj-$(CONFIG_PECI) += peci/
obj-$(CONFIG_HTE) += hte/
obj-$(CONFIG_DRM_ACCEL) += accel/
obj-$(CONFIG_CDX_BUS) += cdx/
+
+obj-$(CONFIG_S390) += s390/
thanks,
--
js
suse labs