binutils-gdb/ld/testsuite/ld-powerpc/aix-gc-1.s
Richard Sandiford 7d504122ef bfd/
* xcofflink.c (xcoff_mark_symbol_by_name): New function.
	(bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
	init and fini functions.  Do garbage collection for objects
	without an entry point too.

ld/testsuite/
	* ld-powerpc/aix-gc-1.s, ld-powerpc/aix-gc-1.ex,
	ld-powerpc/aix-gc-1-32.dd, ld-powerpc/aix-gc-1-64.dd,
	ld-powerpc/aix-weak-1-gcdso.dnd, ld-powerpc/aix-weak-1-gcdso.hd,
	ld-powerpc/aix-weak-1-gcdso.nd: New tests.
	* ld-powerpc/aix52.exp: Run them.
2009-03-14 09:35:06 +00:00

56 lines
816 B
ArmAsm

.macro loadtoc,sym
.if size == 32
lwz 1,\sym(2)
.else
ld 1,\sym(2)
.endif
.endm
.toc
LC01: .tc indirect1[TC],indirect1[RW]
LC02: .tc block[TC],block[RW]
.csect .unused_local[PR]
.unused_local:
bl .unused_global
.globl .init_function
.csect .init_function[PR]
.init_function:
loadtoc LC01
.globl .fini_function
.csect .fini_function[PR]
.fini_function:
loadtoc LC02
.globl .unused_global
.csect .unused_global[PR]
.unused_global:
bl .unused_local
.globl .exported_global
.csect .exported_global[PR]
.exported_global:
bl .indirect2
.globl .indirect1
.csect .indirect1[PR]
.indirect1:
lwz 8,4(8)
.csect .indirect2[PR]
.indirect2:
lwz 8,8(8)
.globl .indirect3
.csect .indirect3[PR]
.indirect3:
lwz 8,12(8)
.globl block
.csect block[RW]
block:
.long indirect3
.long 0x11223344