9cc305ec20
* elf32-spu.h (spu_elf_params): Add member emit_fixups. (spu_elf_size_sections): Declare prototype. * elf32-spu.c (spu_link_hash_table): Add member sfixup. (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros. (spu_elf_emit_fixup): New function. (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32. (spu_elf_size_sections): New function. ld/ * emulparams/elf32_spu.sh (OTHER_READONLY_SECTIONS): Add .fixup section and __fixup_start symbol. * emultempl/spuelf.em (params): Initialize emit_fixups member. (spu_before_allocation): Call spu_elf_size_sections. (OPTION_SPU_EMIT_FIXUPS): Define. (PARSE_AND_LIST_LONGOPTS): Add --emit-fixups. (PARSE_AND_LIST_ARGS_CASES): Handle --emit-fixups. * ld.texinfo (--emit-fixups): Document. ld/testsuite/ * ld-spu/fixup.d: New. * ld-spu/fixup.s: New.
24 lines
276 B
ArmAsm
24 lines
276 B
ArmAsm
.global _end
|
|
.global _start
|
|
.global glob
|
|
.global after
|
|
.global before
|
|
.weak undef
|
|
|
|
.section .text,"ax"
|
|
_start:
|
|
stop
|
|
|
|
|
|
.data
|
|
.p2align 4
|
|
before:
|
|
.long _end, 0, _start, after
|
|
.long 0, 0, 0, glob
|
|
loc:
|
|
.long 1,0,0,0
|
|
glob:
|
|
.long 2,0,0,0
|
|
after:
|
|
.long 0, 0, 0, before
|
|
|