~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

« back to all changes in this revision

Viewing changes to mozilla/build/unix/elfhack/README

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2013-09-13 16:02:15 UTC
  • mfrom: (0.12.16)
  • Revision ID: package-import@ubuntu.com-20130913160215-u3g8nmwa0pdwagwc
Tags: 2:1.5.2-0ubuntu0.12.10.1
* New upstream release v1.5.2 for Thunderbird 24

* Build enigmail using a stripped down Thunderbird 17 build system, as it's
  now quite difficult to build the way we were doing previously, with the
  latest Firefox build system
* Add debian/patches/no_libxpcom.patch - Don't link against libxpcom, as it
  doesn't exist anymore (but exists in the build system)
* Add debian/patches/use_sdk.patch - Use the SDK version of xpt.py and
  friends
* Drop debian/patches/ipc-pipe_rename.diff (not needed anymore)
* Drop debian/patches/makefile_depth.diff (not needed anymore)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Elfhack is a program to optimize ELF binaries for size and cold startup
 
2
speed.
 
3
 
 
4
Presently, it is quite experimental, though it works well for the target
 
5
it was created for: Firefox's libxul.so.
 
6
 
 
7
Elfhack currently only does one thing: packing dynamic relocations ;
 
8
which ends up being a quite complex task, that can be summarized this
 
9
way:
 
10
- Remove RELATIVE relocations from the .rel.dyn/.rela.dyn section.
 
11
- Inject a small code able to apply relative relocations "by hand"
 
12
  after the .rel.dyn/.rela.dyn section.
 
13
- Inject a section containing relocative relocations in a different
 
14
  and more packed format, after the small code.
 
15
- Register the small code as DT_INIT function. Make the small code call
 
16
  what was initially the DT_INIT function, if there was one.
 
17
- Remove the hole between the new section containing relative
 
18
  relocations and the following sections, adjusting offsets and base
 
19
  addresses accordingly.
 
20
- Adjust PT_LOAD entries to fit new offsets, and add an additional
 
21
  PT_LOAD entry when that is necessary to handle the discrepancy between
 
22
  offsets and base addresses, meaning the section offsets may yet again
 
23
  need adjustments.
 
24
- Adjust various DT_* dynamic tags to fit the new ELF layout.
 
25
- Adjust section headers.
 
26
- Adjust ELF headers.
 
27
 
 
28
See http://glandium.org/blog/?p=1177#relocations for some figures.