• Nathan Chancellor's avatar
    s390: vmlinux.lds.S: explicitly handle '.got' and '.plt' sections · 30226853
    Nathan Chancellor authored
    When building with CONFIG_LD_ORPHAN_WARN after selecting
    CONFIG_ARCH_HAS_LD_ORPHAN_WARN, there are a lot of warnings around the
    GOT and PLT sections:
    
      s390-linux-ld: warning: orphan section `.plt' from `arch/s390/kernel/head64.o' being placed in section `.plt'
      s390-linux-ld: warning: orphan section `.got' from `arch/s390/kernel/head64.o' being placed in section `.got'
      s390-linux-ld: warning: orphan section `.got.plt' from `arch/s390/kernel/head64.o' being placed in section `.got.plt'
      s390-linux-ld: warning: orphan section `.iplt' from `arch/s390/kernel/head64.o' being placed in section `.iplt'
      s390-linux-ld: warning: orphan section `.igot.plt' from `arch/s390/kernel/head64.o' being placed in section `.igot.plt'
    
      s390-linux-ld: warning: orphan section `.iplt' from `arch/s390/boot/head.o' being placed in section `.iplt'
      s390-linux-ld: warning: orphan section `.igot.plt' from `arch/s390/boot/head.o' being placed in section `.igot.plt'
      s390-linux-ld: warning: orphan section `.got' from `arch/s390/boot/head.o' being placed in section `.got'
    
    Currently, only the '.got' section is actually emitted in the final
    binary. In a manner similar to other architectures, put the '.got'
    section near the '.data' section and coalesce the PLT sections,
    checking that the final section is zero sized, which is a safe/tested
    approach versus full discard.
    Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Tested-by: default avatarJustin Stitt <justinstitt@google.com>
    Link: https://lore.kernel.org/r/20240207-s390-lld-and-orphan-warn-v1-3-8a665b3346ab@kernel.orgSigned-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    30226853
vmlinux.lds.S 2.61 KB