Fix ldscripts such that ld(1) collects the .fini_array section in the same
order as the .init_array section. Finalisation routines need to be called in the opposite order as their corresponding initialisation routines but rtld(1) handles that by calling the function pointers in .fini_array in reverse order. Reviewed by: kib MFC after: 2 weeks
This commit is contained in:
parent
8774c01832
commit
99e1a2bc3a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=278586
@ -402,8 +402,8 @@ cat <<EOF
|
|||||||
.fini_array ${RELOCATING-0} :
|
.fini_array ${RELOCATING-0} :
|
||||||
{
|
{
|
||||||
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
|
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
|
||||||
KEEP (*(.fini_array))
|
|
||||||
KEEP (*(SORT(.fini_array.*)))
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
KEEP (*(.fini_array))
|
||||||
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
|
${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
|
||||||
}
|
}
|
||||||
${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
|
${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
|
||||||
|
Loading…
Reference in New Issue
Block a user