Re: latest git kernel (v5.3-11506-gf7c3bf8fa7e5) does not compile

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

 



Hi Anatoly,

On Sun, Sep 22, 2019 at 5:33 PM Anatoly Pugachev <matorola@xxxxxxxxx> wrote:
>
> On Sun, Sep 22, 2019 at 11:13 AM Anatoly Pugachev <matorola@xxxxxxxxx> wrote:
> >
> > Hello!
> >
> > Latest git kernel does not compile for me:
> >
> > ~/linux-2.6$ git desc
> > v5.3-11506-gf7c3bf8fa7e5
> >
> > ~/linux-2.6$ make
> >   CALL    scripts/checksyscalls.sh
> > <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
> >   CALL    scripts/atomic/check-atomics.sh
> >   CHK     include/generated/compile.h
> >   CC      arch/sparc/vdso/vdso32/vclock_gettime.o
> > unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o
> > arch/sparc/vdso/vdso32/vclock_gettime.o: failed
> > make[2]: *** [scripts/Makefile.build:266:
> > arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1
> > make[2]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o'
> > make[1]: *** [scripts/Makefile.build:509: arch/sparc/vdso] Error 2
> > make: *** [Makefile:1667: arch/sparc] Error
> >
> > but I was able to compile successfully v5.3-10169-g574cc4539762


Thanks for the report, and apology for the breakage.

Please check this patch.
https://lore.kernel.org/patchwork/patch/1130469/

I hope it will fix the build error.

Thanks.






> >
> > Not sure my bisect log is right, but here it is:
> >
> > $ git bisect good
> > 54b8ae66ae1a3454a7645d159a482c31cd89ab33 is the first bad commit
> > commit 54b8ae66ae1a3454a7645d159a482c31cd89ab33
> > Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > Date:   Fri Aug 30 13:34:01 2019 +0900
> >
> >     kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
> >
> >     Kbuild provides per-file compiler flag addition/removal:
> >
> >       CFLAGS_<basetarget>.o
> >       CFLAGS_REMOVE_<basetarget>.o
> >       AFLAGS_<basetarget>.o
> >       AFLAGS_REMOVE_<basetarget>.o
> >       CPPFLAGS_<basetarget>.lds
> >       HOSTCFLAGS_<basetarget>.o
> >       HOSTCXXFLAGS_<basetarget>.o
> >
> >     The <basetarget> is the filename of the target with its directory and
> >     suffix stripped.
> >
> >     This syntax comes into a trouble when two files with the same basename
> >     appear in one Makefile, for example:
> >
> >       obj-y += foo.o
> >       obj-y += dir/foo.o
> >       CFLAGS_foo.o := <some-flags>
> >
> >     Here, the <some-flags> applies to both foo.o and dir/foo.o
> >
> >     The real world problem is:
> >
> >       scripts/kconfig/util.c
> >       scripts/kconfig/lxdialog/util.c
> >
> >     Both files are compiled into scripts/kconfig/mconf, but only the
> >     latter should be given with the ncurses flags.
> >
> >     It is more sensible to use the relative path to the Makefile, like this:
> >
> >       obj-y += foo.o
> >       CFLAGS_foo.o := <some-flags>
> >       obj-y += dir/foo.o
> >       CFLAGS_dir/foo.o := <other-flags>
> >
> >     At first, I attempted to replace $(basetarget) with $*. The $* variable
> >     is replaced with the stem ('%') part in a pattern rule. This works with
> >     most of cases, but does not for explicit rules.
> >
> >     For example, arch/ia64/lib/Makefile reuses rule_as_o_S in its own
> >     explicit rules, so $* will be empty, resulting in ignoring the per-file
> >     AFLAGS.
> >
> >     I introduced a new variable, target-stem, which can be used also from
> >     explicit rules.
> >
> >     Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> >     Acked-by: Marc Zyngier <maz@xxxxxxxxxx>
> >
> >  arch/arm/kvm/Makefile                         |  5 +++--
> >  arch/x86/entry/vdso/Makefile                  |  3 ++-
> >  drivers/gpu/drm/amd/display/dc/calcs/Makefile |  6 +++---
> >  drivers/gpu/drm/amd/display/dc/dcn20/Makefile |  2 +-
> >  drivers/gpu/drm/amd/display/dc/dml/Makefile   | 17 +++++++----------
> >  drivers/gpu/drm/amd/display/dc/dsc/Makefile   |  7 +++----
> >  drivers/gpu/drm/i915/Makefile                 |  2 +-
> >  scripts/Makefile.host                         | 22 +++++++++++-----------
> >  scripts/Makefile.lib                          | 13 ++++++++-----
> >  scripts/kconfig/Makefile                      |  8 ++++----
> >  10 files changed, 43 insertions(+), 42 deletions(-)
> > mator@ttip:~/linux-2.6$
> >
> >
> > If someone wants to check how kernel compiles on sparc64, could use
> > gcc compile farm machine (gcc202) to try on.
>
> and i cannot test compile 54b8ae66ae1a3454a7645d159a482c31cd89ab33 as well :
>
> ~/linux-2.6$ git checkout 54b8ae66ae1a3454a7645d159a482c31cd89ab33
> HEAD is now at 54b8ae66ae1a kbuild: change *FLAGS_<basetarget>.o to
> take the path relative to $(obj)
>
> ~/linux-2.6$ make -j clean; make -j olddefconfig && nice make -j24
>   HOSTCC  scripts/basic/fixdep
>   HOSTCC  scripts/kconfig/conf.o
>   HOSTCC  scripts/kconfig/confdata.o
>   HOSTCC  scripts/kconfig/expr.o
>   LEX     scripts/kconfig/lexer.lex.c
>   YACC    scripts/kconfig/parser.tab.[ch]
>   HOSTCC  scripts/kconfig/preprocess.o
>   HOSTCC  scripts/kconfig/symbol.o
>   HOSTCC  scripts/kconfig/lexer.lex.o
>   HOSTCC  scripts/kconfig/parser.tab.o
>   HOSTLD  scripts/kconfig/conf
> scripts/kconfig/conf  --olddefconfig Kconfig
> #
> # No change to .config
> #
> scripts/kconfig/conf  --syncconfig Kconfig
> { command -v gcc; } >/dev/null 2>&1 && echo "n" || echo "y": Cannot
> allocate memory
> make[2]: *** [scripts/kconfig/Makefile:73: syncconfig] Error 1
> make[1]: *** [Makefile:584: syncconfig] Error 2
> make: *** [Makefile:695: include/config/auto.conf.cmd] Error 2
> ~/linux-2.6$
>
>
>
> PS: unable to compile kernel makes its bisection impossible =(



-- 
Best Regards
Masahiro Yamada



[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux