since .init and .fini are not .text, the toolchain does not seem to
align them for code by default. this yields random breakage depending
on the object sizes the linker is dealing with.
.section .init
.global _init
.section .init
.global _init
_init:
subu $sp,$sp,32
sw $gp,24($sp)
_init:
subu $sp,$sp,32
sw $gp,24($sp)
.section .fini
.global _fini
.section .fini
.global _fini
_fini:
subu $sp,$sp,32
sw $gp,24($sp)
_fini:
subu $sp,$sp,32
sw $gp,24($sp)