Keep input SHF_GNU_RETAIN sections and strip output SHF_GNU_RETAIN for GNU/FreBSD...
authorCary Coutant <ccoutant@gmail.com>
Mon, 14 Dec 2020 23:46:47 +0000 (15:46 -0800)
committerCary Coutant <ccoutant@gmail.com>
Mon, 14 Dec 2020 23:49:27 +0000 (15:49 -0800)
commitff4bc37d77a0ca7286883a477adcb3aa145fc782
treef90757858598811f287e2100b14fa0299d39cdde
parent8cd6d968de17f5dac1601d7cbdda838c9d82c822
Keep input SHF_GNU_RETAIN sections and strip output SHF_GNU_RETAIN for GNU/FreBSD ELFOSABIs.

2020-12-14  H.J. Lu  <hjl.tools@gmail.com>
    Cary Coutant  <ccoutant@gmail.com>

elfcpp/
PR gold/27039
* elfcpp.h (SHF): Add SHF_GNU_RETAIN.

gold/
     PR gold/27039
* layout.cc (Layout::layout): Strip SHF_GNU_RETAIN.
* object.cc (Sized_relobj_file::Sized_relobj_file): Initialize osabi_.
(Sized_relobj_file::do_layout): Keep SHF_GNU_RETAIN sections for
GNU/FreBSD ELFOSABIs.
* object.h (Osabi) New class.
(Sized_relobj_file): Add osabi() and osabi_.
* testsuite/Makefile.am (check_SCRIPTS): Add retain.sh.
(check_DATA): Add retain_1.out retain_2.out.
(MOSTLYCLEANFILES): Add retain_1 retain_2.
(retain_1.out): New target.
(retain_1): Likewise.
(retain_1.o): Likewise.
(retain_2.out): Likewise.
(retain_2): Likewise.
(retain_2.o): Likewise.
* testsuite/Makefile.in: Regenerate.
* testsuite/retain.sh: New file.
* testsuite/retain_1.s: Likewise.
* testsuite/retain_2.s: Likewise.
elfcpp/elfcpp.h
gold/layout.cc
gold/object.cc
gold/object.h
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/retain.sh [new file with mode: 0755]
gold/testsuite/retain_1.s [new file with mode: 0644]
gold/testsuite/retain_2.s [new file with mode: 0644]