Re: con3270.o is built twice, leading to errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux