diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2016-08-09 22:50:40 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-08-09 22:57:36 +0200 |
commit | 9d4cd7b4ed413a1371997ce74da39900b2a8473b (patch) | |
tree | 6e4865a2cb57b9ad3e03fc7ad6b5b9d5c3b2c64e /pc-bios/optionrom/flat.lds | |
parent | b0e8f5cadcce7c1e2047e1e2c96f827a26171f58 (diff) |
optionrom: fix compilation with mingw docker target
Two fixes are needed. First, mingw does not have -D_FORTIFY_SOURCE,
hence --enable-debug disables optimization. This is not acceptable
for ROMs, which should override CFLAGS to force inclusion of -O2.
Second, PE stores global constructors and destructors using the
following linker script snippet:
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);
The LONG directives cause the .img files to be 16 bytes too large;
the recently added check to signrom.py catches this. To fix this,
replace -T and -e options with a linker script.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'pc-bios/optionrom/flat.lds')
-rw-r--r-- | pc-bios/optionrom/flat.lds | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pc-bios/optionrom/flat.lds b/pc-bios/optionrom/flat.lds new file mode 100644 index 0000000000..cee2eda195 --- /dev/null +++ b/pc-bios/optionrom/flat.lds @@ -0,0 +1,6 @@ +SECTIONS +{ + . = 0; + .text : { *(.text) *(.text.$) } +} +ENTRY(_start) |