mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
ppc: Don't hardcode "ppc" arch for openbios-qemu.elf
Use $(ARCH) to allow using a different linker script for ppc64. v2: * Add ppc64/qemu/ldscript, derived from ppc/qemu/ldscript. Signed-off-by: Andreas Färber <andreas.faerber@web.de> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@929 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
committed by
Andreas Färber
parent
fe0ba35811
commit
545998848f
@@ -178,7 +178,7 @@
|
||||
|
||||
<executable name="openbios-qemu.elf" target="target" condition="QEMU">
|
||||
<rule>
|
||||
$(call quiet-command,$(LD) --warn-common -N -T $(SRCDIR)/arch/ppc/qemu/ldscript -o $@.nostrip --whole-archive $^," LINK $(TARGET_DIR)$@")
|
||||
$(call quiet-command,$(LD) --warn-common -N -T $(SRCDIR)/arch/$(ARCH)/qemu/ldscript -o $@.nostrip --whole-archive $^," LINK $(TARGET_DIR)$@")
|
||||
$(call quiet-command,$(NM) $@.nostrip | sort > $(ODIR)/openbios-qemu.syms," GEN $(TARGET_DIR)$@.syms")
|
||||
$(call quiet-command,$(STRIP) $@.nostrip -o $@," STRIP $(TARGET_DIR)$@")</rule>
|
||||
<object source="qemu/start.S"/>
|
||||
|
||||
68
arch/ppc64/qemu/ldscript
Normal file
68
arch/ppc64/qemu/ldscript
Normal file
@@ -0,0 +1,68 @@
|
||||
OUTPUT_FORMAT(elf64-powerpc)
|
||||
OUTPUT_ARCH(powerpc:common64)
|
||||
|
||||
/* Initial load address
|
||||
*/
|
||||
BASE_ADDR = 0xfff00000;
|
||||
|
||||
/* As NVRAM is at 0xfff04000, the .text needs to be after that
|
||||
*/
|
||||
TEXT_ADDR = 0xfff08000;
|
||||
|
||||
/* Hard reset vector address
|
||||
*/
|
||||
HRESET_ADDR = 0xfffffffc;
|
||||
|
||||
CSTACK_SIZE = 32768; /* client stack size */
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = BASE_ADDR;
|
||||
|
||||
_start = BASE_ADDR + 0x0100;
|
||||
.text.vectors ALIGN(4096): {
|
||||
*(.text.vectors)
|
||||
}
|
||||
|
||||
. = TEXT_ADDR;
|
||||
/* Normal sections */
|
||||
.text ALIGN(4096): {
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
}
|
||||
|
||||
.rodata ALIGN(4096): {
|
||||
_rodata = .;
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
*(.note.ELFBoot)
|
||||
}
|
||||
.data ALIGN(4096): {
|
||||
_data = .;
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
_edata = .;
|
||||
}
|
||||
|
||||
.bss ALIGN(4096): {
|
||||
_bss = .;
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(COMMON)
|
||||
_ebss = .;
|
||||
}
|
||||
|
||||
. = HRESET_ADDR;
|
||||
|
||||
.romentry : { *(.romentry) }
|
||||
|
||||
. = ALIGN(4096);
|
||||
_end = .;
|
||||
|
||||
/* We discard .note sections other than .note.ELFBoot,
|
||||
* because some versions of GCC generates useless ones. */
|
||||
|
||||
/DISCARD/ : { *(.comment*) *(.note.*) }
|
||||
}
|
||||
Reference in New Issue
Block a user