summaryrefslogtreecommitdiffstats
path: root/tests/multiboot
diff options
context:
space:
mode:
authorKevin Wolf2019-07-22 11:26:15 +0200
committerKevin Wolf2019-07-30 12:25:43 +0200
commit6078a0b64f23b40a9f5405bb39662412f536d7d6 (patch)
treec4017cd326bfd8895a1e7c42cd5cf6c4929cf451 /tests/multiboot
parentMerge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (diff)
downloadqemu-6078a0b64f23b40a9f5405bb39662412f536d7d6.tar.gz
qemu-6078a0b64f23b40a9f5405bb39662412f536d7d6.tar.xz
qemu-6078a0b64f23b40a9f5405bb39662412f536d7d6.zip
tests/multiboot: Fix load address of test kernels
While older toolchains produced binaries where the physical load address of ELF segments was the same as the virtual address, newer versions seem to choose a different physical address if it isn't specified explicitly. The means that the test kernel doesn't use the right addresses to access e.g. format strings any more and the whole output disappears, causing all test cases to fail. Fix this by specifying the physical load address of sections explicitly. Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'tests/multiboot')
-rw-r--r--tests/multiboot/link.ld6
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/multiboot/link.ld b/tests/multiboot/link.ld
index 3d49b58c60..2eafcffc4f 100644
--- a/tests/multiboot/link.ld
+++ b/tests/multiboot/link.ld
@@ -3,14 +3,14 @@ ENTRY(_start)
SECTIONS
{
. = 0x100000;
- .text : {
+ .text : AT(ADDR(.text)) {
*(multiboot)
*(.text)
}
- .data ALIGN(4096) : {
+ .data ALIGN(4096) : AT(ADDR(.data)) {
*(.data)
}
- .rodata ALIGN(4096) : {
+ .rodata ALIGN(4096) : AT(ADDR(.rodata)) {
*(.rodata)
}
.bss ALIGN(4096) : {