summaryrefslogtreecommitdiffstats
path: root/courgette/assembly_program.h
diff options
context:
space:
mode:
authordgarrett@chromium.org <dgarrett@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-07 22:49:15 +0000
committerdgarrett@chromium.org <dgarrett@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-07 22:49:15 +0000
commit88da5078df0e51dc1c56dac1aa92608a53a03803 (patch)
tree93c6b467379da5dd3ef243e3f0e3bc353b4f3333 /courgette/assembly_program.h
parent2ca59863a57ed182b9b5a3c89b6212c10e94ec06 (diff)
downloadchromium_src-88da5078df0e51dc1c56dac1aa92608a53a03803.zip
chromium_src-88da5078df0e51dc1c56dac1aa92608a53a03803.tar.gz
chromium_src-88da5078df0e51dc1c56dac1aa92608a53a03803.tar.bz2
Add Elf 32 Support to Courgette.
This change takes advantage of recent refactoring and adds support for Elf X86 32 executables to courgette. It should have no effect on handling of Windows PE executables. We have planned ahead to be able to restrict the code size of the courgette library in different cases to reduce patcher sizes, but this change does not yet take advantage of that (all platforms are supported everywhere). Also, the patcher class currently contains a very small amount of Elf/PE specific code for recreating relocation tables that cannot (currently) be compiled out. BUG=chromium-os:22149 TEST=Please verify that Chrome/Chromium patches can still be generated and work. Also, please see how much the updater executable which is downloaded to users has changed in size since R16. Review URL: http://codereview.chromium.org/8428009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'courgette/assembly_program.h')
-rw-r--r--courgette/assembly_program.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/courgette/assembly_program.h b/courgette/assembly_program.h
index 5c6b1b1..3d231c2 100644
--- a/courgette/assembly_program.h
+++ b/courgette/assembly_program.h
@@ -69,7 +69,10 @@ class AssemblyProgram {
// Instructions will be assembled in the order they are emitted.
// Generates an entire base relocation table.
- CheckBool EmitMakeRelocsInstruction() WARN_UNUSED_RESULT;
+ CheckBool EmitPeRelocsInstruction() WARN_UNUSED_RESULT;
+
+ // Generates an ELF style relocation table.
+ CheckBool EmitElfRelocationInstruction() WARN_UNUSED_RESULT;
// Following instruction will be assembled at address 'rva'.
CheckBool EmitOriginInstruction(RVA rva) WARN_UNUSED_RESULT;