Re: [PATCH 2/2] s390/nospec: remove unneeded header includes

Vasily Gorbik
2023-03-17T11:17:43Z

On Thu, Mar 16, 2023 at 12:14:27PM +0100, Jiri Slaby wrote:
> On 27. 06. 22, 14:50, Vasily Gorbik wrote:
> > With that, expoline.S doesn't require asm-offsets.h and
> > expoline_prepare target dependency could be removed.
> >
> > +++ b/arch/s390/Makefile
> > @@ -166,7 +166,7 @@ vdso_prepare: prepare0
> > ifdef CONFIG_EXPOLINE_EXTERN
> > modules_prepare: expoline_prepare
> > -expoline_prepare: prepare0
> > +expoline_prepare:
>
> this likely broke s390 build as expolines still depend on
> scripts/basic/fixdep. And build of expolines can now race with fixdep build:
> make[1]: *** Deleting file 'arch/s390/lib/expoline/expoline.o'
> /bin/sh: line 1: scripts/basic/fixdep: Permission denied
> make[1]: *** [../scripts/Makefile.build:385:
> arch/s390/lib/expoline/expoline.o] Error 126
> make: *** [../arch/s390/Makefile:166: expoline_prepare] Error 2
>
> I returned there:
> expoline_prepare: prepare0
> and it looks good so far. Maybe even:
> expoline_prepare: scripts
> would be enough.

Hi Jiri, thanks for looking into this!

Probably even scripts_basic would be enough to add explicit dependency
to fixdep. But I just couldn't reproduce missing scripts/basic/fixdep
neither with modules_prepare nor expoline_prepare targets.

With which specific build command were you able to get those error
messages? I wonder where
make[1]: *** Deleting file 'arch/s390/lib/expoline/expoline.o'
is coming from. Could it be smth like?

make ARCH=s390 CROSS_COMPILE=s390x-12.2.0- -j64 arch/s390/lib/expoline/expoline.o

Playing around with this build target I found it is broken:

AS arch/s390/lib/expoline/expoline.o
AS arch/s390/lib/expoline/expoline.o
fixdep: error opening file: arch/s390/lib/expoline/.expoline.o.d: No such file or directory
make[3]: *** [scripts/Makefile.build:374: arch/s390/lib/expoline/expoline.o] Error 2
make[3]: *** Deleting file 'arch/s390/lib/expoline/expoline.o'
make[2]: *** [scripts/Makefile.build:494: arch/s390/lib/expoline] Error 2
make[1]: *** [scripts/Makefile.build:494: arch/s390/lib] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:2028: .] Error 2

Notice dup AS call, which is probably causing this:
make[3]: *** Deleting file 'arch/s390/lib/expoline/expoline.o'

But that would be a different issue from the one you are trying to fix.