• Nicholas Piggin's avatar
    kbuild: handle libs-y archives separately from built-in.o archives · 3a166fc2
    Nicholas Piggin authored
    The thin archives build currently puts all lib.a and built-in.o
    files together and links them with --whole-archive.
    
    This works because thin archives can recursively refer to thin
    archives. However some architectures include libgcc.a, which may
    not be a thin archive, or it may not be constructed with the "P"
    option, in which case its contents do not get linked correctly.
    
    So don't pull .a libs into the root built-in.o archive. These
    libs should already have symbol tables and indexes built, so they
    can be direct linker inputs. Move them out of the --whole-archive
    option, which restore the conditional linking behaviour of lib.a
    to thin archives builds.
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    3a166fc2
link-vmlinux.sh 7.73 KB