outmacho: don't do encoding magic in the segment index
commitb91b63d164821373072ea908520a03daec0fb7ed
authorH. Peter Anvin <hpa@linux.intel.com>
Fri, 15 Jun 2018 00:14:36 +0000 (14 17:14 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 15 Jun 2018 00:14:36 +0000 (14 17:14 -0700)
treedbe9b0141784fe6ed807d9ef5b2a62bc925df792
parent29695c85fbf1f343b02c49502482727294645728
outmacho: don't do encoding magic in the segment index

Encoding magic (in this case, subsection number) by bitfields in the
segment index has several problems:

1. It limits the number of *external symbols* as well as
   segments/subsections.
2. It is inefficient for the assembler (creates a very large RAA).

This is also a really good opportunity for removing linear lookups in
the MachO backend. We now use an RAA to do look up segment by index,
and a hash table to look up segment by name. Subsections are simply
handled by allocating a new index using seg_alloc() but still point it
to the same section structure in the index RAA.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
output/outmacho.c