[lld-macho] Follow-up to D77893
authorJez Ng <jezng@fb.com>
Wed, 6 May 2020 00:25:58 +0000 (17:25 -0700)
committerJez Ng <jezng@fb.com>
Sun, 10 May 2020 03:56:22 +0000 (20:56 -0700)
commitdb157d27337fcd13017051d125bf6e1439138da1
tree4dbc5543c8eb446f42a810c97aa810d0d4f656bd
parenta72b9dfd45cdbe079a2a48b4d1e0b83a7f3a95bd
[lld-macho] Follow-up to D77893

Summary:
1. Don't have isHidden() depend on isNeeded(). Whether a section is
  hidden is orthogonal from whether it is needed: hidden sections will
  never have a header regardless of whether they have a body. (I know we
  override this method with return false for synthetic sections, but
  regardless I think it's confusing to write it this way for non-synthetic
  sections.)

2. Don't call writeTo() on unneeded sections. D78270 assumes that this
  is true when implementing the stub helper section.

3. Filter out the unneeded sections early on to avoid having to deal
   with them in multiple places.

4. Remove assumption in test that the referenced file has no other symbols.
  (We should create separate input files for future tests to avoid such
  issues.)

Reviewers: ruiu, pcc, MaskRay, smeenai, alexshap, gkm, Ktwu, christylee

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79460
lld/MachO/OutputSection.h
lld/MachO/OutputSegment.cpp
lld/MachO/OutputSegment.h
lld/MachO/Writer.cpp
lld/test/MachO/section-merge.s