Previously, the generated binaries had a single PT_LOAD header all the
way from 0 to the end of the generated code.
When building, the domain builder maps the entire region and
zeroes/copies the data as appropriate. This causes a failure to build
when the header overlaps with unmapped addresses such as the HVM legacy
VGA range.
Link all binaries to load and run at 1MB to avoid the legacy VGA hole in
HVM guests.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
ENTRY(_start)
+PHDRS
+{
+ /* Single loadable section, RWE. */
+ load PT_LOAD FLAGS(7);
+}
+
SECTIONS
{
- . = 0x10000;
+ . = SEGMENT_START("text-segment", MB(1));
.text : {
*(.text)
- } = 0x9090
+ } :load = 0x9090
.rodata : {
*(.rodata)