Commit graph

28 commits

Author SHA1 Message Date
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Mike Hommey
66921ba849 Bug 1499915 - Remove support for the elfhack filler segment r=froydnj
This effectively backs out bug 822584, which worked around a similar
problem to what we are facing with Android xpcshell, being that the
crash reporter doesn't handle the address space "fragmentation" induced
by elfhack. The work around worked, at the expense of some added
complexity.

It was used for B2G only, and has effectively been unused since B2G was
retired.

Differential Revision: https://phabricator.services.mozilla.com/D9622

--HG--
extra : moz-landing-system : lando
2018-10-24 13:42:31 +00:00
Mike Hommey
0824d18204 Bug 1423822 - Check segments overlapping later. r=froydnj
We treat segments overlapping as a fatal error, rather than a condition
to do nothing, because it happening is usually the result of some bad
assumptions on the input ELF, and we don't want to silently ignore
those.

However, there are cases where a setup /could/ lead to overlapping
segments, but would be skipped because elfhack wouldn't be a win
anyways. By checking segments overlap later, we allow those to not
hard fail.

--HG--
extra : rebase_source : deca2051722aeaa959c5e4dae06642908f6d843a
2018-08-01 11:17:07 +09:00
Mike Hommey
8bb6a1a03e Bug 1423821 - Add a consistency check for section offsets to elfhack. r=froydnj
lld is being too smart for its own good, and places non-relocatable data
right after the program headers, which prevents the program headers from
growing. But elfhack wasn't checking for that, so happily placed the
non-relocatable data at its non-relocated location, overwriting the last
item of the program headers.

--HG--
extra : rebase_source : 6f26d475f0a19d88ddf21399dbce8ceac62b492d
2017-12-07 15:34:58 +09:00
Mike Hommey
b54839958c Bug 1378986 - Adjust the fake phdr section properly. r=froydnj
The PT_PHDR segment is optional, but the Android toolchain decides to
create one in some cases, and places it first. When that happens, the
work around for bug 1233963 fails, because the fake phdr section has not
been adjusted yet (it only happens when we see a PT_LOAD).

So we adjust the fake phdr section when we see a PT_PHDR segment (and
avoid re-updating it when we see a subsequent PT_LOAD).

--HG--
extra : rebase_source : 2190ec2f20ba9d144b8828874f9f8d70dd5ad2f6
2017-07-07 18:29:06 +09:00
Mike Hommey
687d9646b3 Bug 1233963 - Work around recent GNU gold behavior with segments starting before the first section they contain. r=froydnj 2016-01-21 13:54:03 +09:00
Birunthan Mohanathas
1bde8d50d8 Bug 784739 - Switch from NULL to nullptr in build/; r=ehsan 2013-11-11 14:13:38 -05:00
Mike Hommey
5f391d02b5 Bug 654087 - Don't error out on gold special treatment of PT_TLS segment memsize. r=nfroyd 2013-01-16 09:15:07 +01:00
Mike Hommey
82eee42d03 Bug 822584 - Workaround in elfhack to accomodate for breakpad not handling the memory mapping induced by the elfhack/bionic linker combination. r=nfroyd 2013-01-02 10:17:32 +01:00
Mike Hommey
943f5b03eb Bug 816494 part 4 - Add a -r option to elfhack that re-merges the split PT_LOADs. r=nfroyd
Sections are positioned accordingly, which means the resulting ELF binary will
have a big gap full of zero between .rel.plt and .plt.
2012-12-10 10:33:08 +01:00
Mike Hommey
f237cd4109 Bug 816494 part 2 - Move the PT_LOAD splitting logic in elfhack.cpp. r=nfroyd
Also, section offsets are not adjusted until the split is done.
2012-12-10 10:33:08 +01:00
Mike Hommey
0ab3403918 Bug 716295 part 4 - Interpose elfhack injected code in DT_INIT_ARRAY's first entry when possible. r=nfroyd 2012-08-09 16:34:25 +02:00
Mike Hommey
62ef24ad74 Bug 716295 part 1 - Fail more gracefully when .dynamic section can't be grown. r=nfroyd 2012-08-09 16:34:24 +02:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Mike Hommey
c3d9ce8c6d Bug 725284 - Preserve PT_LOAD alignment, except when it's the default on x86-64. r=tglek 2012-02-21 08:08:41 +01:00
Mike Hommey
a827925ebe Bug 674888 - Allow elfhack to move .interp sections. r=tglek 2011-08-03 10:28:47 +02:00
Mike Hommey
7eff9066a4 Bug 651892 part 1 - Add a helper function to lookup symbols in a ElfSymtab_Section. r=tglek 2011-06-23 04:07:30 +02:00
Mike Hommey
5807380164 Bug 649965 - Remove inlines on Elf_*::swap functions. r=tglek 2011-06-03 01:21:07 +02:00
Mike Hommey
80c3bdea1e Bug 629635 part 4 - Make elfhack keep PT_GNU_RELRO segments as they were originally. r=tglek,a=blocking2.0:final 2011-02-12 10:28:34 +01:00
Mike Hommey
6b2a02f26f Bug 629635 part 3 - Add ElfSegment::getOffset and ElfSegment::getAddr functions. r=tglek,a=blocking2.0:final 2011-02-12 10:28:34 +01:00
Mike Hommey
6ed7532810 Bug 629635 part 1 - Make elfhack fail if different blocks need to be mapped to the same address. r=tglek,a=blocking2.0:final 2011-02-12 10:28:26 +01:00
Mike Hommey
8eb36d7f97 Bug 628988 part 2 - Adapt symbol tables content to elfhack changes. r=tglek,a=sdwilsh 2011-01-28 09:22:58 +01:00
Mike Hommey
4a0181e110 Bug 628627 part 1 - Raise hard errors in some more cases in elfhack. r=tglek,a=sdwilsh 2011-01-28 09:22:58 +01:00
Mike Hommey
b42bea9dc1 Bug 628618 part 6 - Delay refreshing of ElfSection addresses and offsets. r=tglek,a=sdwilsh 2011-01-28 09:22:58 +01:00
Mike Hommey
5aa5d025fd Bug 628618 part 5 - Don't set DT_REL*COUNT if it wasn't already set. r=tglek,a=sdwilsh 2011-01-28 09:22:58 +01:00
Mike Hommey
276396ec0a Bug 628618 part 4 - Initially set an address for the fake phdr ElfSection. r=tglek,a=sdwilsh 2011-01-28 09:22:58 +01:00
Mike Hommey
c886f4609d Bug 628283 - Make elfhack handle GNU_RELRO segments better. r=tglek,a=dbaron 2011-01-24 23:11:46 +01:00
Mike Hommey
82dcf6256c Bug 606145 part 2 - Import elfhack code. r=tglek,a=bsmedberg 2011-01-24 09:56:40 +01:00