• Masahiro Yamada's avatar
    scripts/kallsyms: skip ppc compiler stub *.long_branch.* / *.plt_branch.* · 516d980f
    Masahiro Yamada authored
    
    
    PowerPC allmodconfig often fails to build as follows:
    
        LD      .tmp_vmlinux.kallsyms1
        KSYM    .tmp_vmlinux.kallsyms1.o
        LD      .tmp_vmlinux.kallsyms2
        KSYM    .tmp_vmlinux.kallsyms2.o
        LD      .tmp_vmlinux.kallsyms3
        KSYM    .tmp_vmlinux.kallsyms3.o
        LD      vmlinux
        SORTTAB vmlinux
        SYSMAP  System.map
      Inconsistent kallsyms data
      Try make KALLSYMS_EXTRA_PASS=1 as a workaround
      make[2]: *** [../Makefile:1162: vmlinux] Error 1
    
    Setting KALLSYMS_EXTRA_PASS=1 does not help.
    
    This is caused by the compiler inserting stubs such as *.long_branch.*
    and *.plt_branch.*
    
      $ powerpc-linux-nm -n .tmp_vmlinux.kallsyms2
       [ snip ]
      c00000000210c010 t 00000075.plt_branch.da9:19
      c00000000210c020 t 00000075.plt_branch.1677:5
      c00000000210c030 t 00000075.long_branch.memmove
      c00000000210c034 t 00000075.plt_branch.9e0:5
      c00000000210c044 t 00000075.plt_branch.free_initrd_mem
        ...
    
    Actually, the problem mentioned in scripts/link-vmlinux.sh comments;
    "In theory it's possible this results in even more stubs, but unlikely"
    is happening here, and ends up with another kallsyms step required.
    
    scripts/kallsyms.c already ignores various compiler stubs. Let's do
    similar to make kallsysms for PowerPC always succeed in 2 steps.
    
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
    516d980f