[v3,0/7] ELF: Strip section header in ELF objects

Message ID 20230605153222.1728119-1-hjl.tools@gmail.com
Headers
Series ELF: Strip section header in ELF objects |

Message

H.J. Lu June 5, 2023, 3:32 p.m. UTC
  Changes in v3:

1. Fix indentation.
2. Update tests to allow extra symbols.
3. Limit ld-elf/hash-2.d to targets with shared library support.

Changes in v2:

1. Rename the objcopy and strip option to --strip-section-headers.
2. Also strip non-alloc sections.

Section header isn't mandatory on ELF executable nor shared library.
This patch set adds a new linker option, -z nosectionheader, to omit ELF
section header, a new objcopy and strip option, --strip-section-headers,
to remove ELF section header.

H.J. Lu (5):
  ELF: Discard non-alloc sections without section header
  bfd: Improve nm and objdump without section header
  binutils: Add a --strip-section-headers test
  ld: Add tests for -z nosectionheader and --strip-section-headers
  ld: Add -z nosectionheader test to bootstrap.exp

Kaylee Blake (2):
  ELF: Strip section header in ELF objects
  ld: Add a simple test for -z nosectionheader

 bfd/bfd-in2.h                                 |   6 +-
 bfd/bfd.c                                     |   6 +-
 bfd/elf-bfd.h                                 |  15 +
 bfd/elf.c                                     | 755 ++++++++++++++++--
 bfd/elfcode.h                                 |  91 ++-
 bfd/elflink.c                                 |  12 +
 bfd/elfxx-target.h                            |   4 +-
 binutils/NEWS                                 |   5 +-
 binutils/doc/binutils.texi                    |  10 +
 binutils/objcopy.c                            |  38 +-
 binutils/testsuite/binutils-all/objcopy.exp   |   5 +
 .../binutils-all/strip-section-headers-1.d    |   5 +
 ld/NEWS                                       |   3 +
 ld/emultempl/elf.em                           |   4 +
 ld/ld.h                                       |   3 +
 ld/ld.texi                                    |   5 +
 ld/ldlang.c                                   |   8 +
 ld/lexsup.c                                   |   8 +
 ld/testsuite/ld-bootstrap/bootstrap.exp       |  10 +-
 ld/testsuite/ld-elf/hash-2.d                  |  11 +
 ld/testsuite/ld-elf/no-section-header.exp     | 370 +++++++++
 ld/testsuite/ld-elf/nosectionheader.d         |  14 +
 ld/testsuite/ld-elf/pr25617-1-no-sec-hdr.nd   |   3 +
 ld/testsuite/ld-elf/pr25617-1-no-sec-hdr.rd   |  20 +
 .../ld-elf/pr25617-1-static-no-sec-hdr.rd     |  12 +
 ld/testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd  |   3 +
 ld/testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd  |  20 +
 ld/testsuite/ld-elf/pr25617-1a-sec-hdr.rd     |  19 +
 ld/testsuite/ld-elf/pr25617-1a.c              |  11 +
 ld/testsuite/ld-elf/pr25617-1b.c              |  15 +
 ld/testsuite/ld-elf/start-noheader.rd         |  11 +
 .../ld-elf/start-shared-noheader-gnu.rd       |  26 +
 .../ld-elf/start-shared-noheader-sysv.rd      |  26 +
 ld/testsuite/ld-elf/start-shared-noheader.nd  |  11 +
 34 files changed, 1478 insertions(+), 87 deletions(-)
 create mode 100644 binutils/testsuite/binutils-all/strip-section-headers-1.d
 create mode 100644 ld/testsuite/ld-elf/hash-2.d
 create mode 100644 ld/testsuite/ld-elf/no-section-header.exp
 create mode 100644 ld/testsuite/ld-elf/nosectionheader.d
 create mode 100644 ld/testsuite/ld-elf/pr25617-1-no-sec-hdr.nd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1-no-sec-hdr.rd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1-static-no-sec-hdr.rd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1a-sec-hdr.rd
 create mode 100644 ld/testsuite/ld-elf/pr25617-1a.c
 create mode 100644 ld/testsuite/ld-elf/pr25617-1b.c
 create mode 100644 ld/testsuite/ld-elf/start-noheader.rd
 create mode 100644 ld/testsuite/ld-elf/start-shared-noheader-gnu.rd
 create mode 100644 ld/testsuite/ld-elf/start-shared-noheader-sysv.rd
 create mode 100644 ld/testsuite/ld-elf/start-shared-noheader.nd
  

Comments

Alan Modra June 6, 2023, 6:48 a.m. UTC | #1
On Mon, Jun 05, 2023 at 08:32:15AM -0700, H.J. Lu wrote:
> Changes in v3:

Looks OK to me, except for some minor issues in 3/7 and 6/7.  Please
see replies to those emails.  OK to commit with those fixed.  No need
to repost.
  
H.J. Lu June 29, 2023, 5:21 p.m. UTC | #2
On Mon, Jun 5, 2023 at 11:48 PM Alan Modra <amodra@gmail.com> wrote:
>
> On Mon, Jun 05, 2023 at 08:32:15AM -0700, H.J. Lu wrote:
> > Changes in v3:
>
> Looks OK to me, except for some minor issues in 3/7 and 6/7.  Please
> see replies to those emails.  OK to commit with those fixed.  No need
> to repost.
>
> --
> Alan Modra
> Australia Development Lab, IBM

I will check in the v4 patch:

https://sourceware.org/pipermail/binutils/2023-June/127780.html

Thanks.