mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-04 09:09:56 +00:00
Craft the FreeBSD/ARM ABI by hacking the New ARM ABI source.
Submitted by: cognet
This commit is contained in:
parent
da07c79f6a
commit
6b31c6b17f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=162243
@ -19,3 +19,27 @@ VECS+= bfd_elf32_littlearm_vec
|
||||
.else
|
||||
VECS+= bfd_elf32_bigarm_vec
|
||||
.end
|
||||
|
||||
CLEANFILES+= elf32-arm-fbsd.c
|
||||
|
||||
# XXX: We should really add the FreeBSD case in elf32_arm_nabi_grok_prstatus
|
||||
# instead of defining our own elf32_fbsd_arm_grok_prstatus.
|
||||
#
|
||||
elf32-arm-fbsd.c: elfarm-nabi.c
|
||||
cat ${.ALLSRC} | sed \
|
||||
-e s/ELFOSABI_ARM/ELFOSABI_FREEBSD/g \
|
||||
-e "s/\(.*#define.*\)elf32_arm_nabi_grok_prstatus/\1elf32_fbsd_arm_grok_prstatus/"
|
||||
-e s/"#include.*elf32-arm.h.*//" >${.TARGET}
|
||||
echo '\
|
||||
static bfd_boolean \
|
||||
elf32_fbsd_arm_grok_prstatus(bfd *abfd, Elf_Internal_Note *note) \
|
||||
{ size_t raw_size =68 ; int offset = 28; \
|
||||
if (note->descsz != 96) return (FALSE); \
|
||||
if (elf_tdata(abfd)->core_signal == 0) \
|
||||
elf_tdata (abfd)->core_signal = ((int *)(note->descdata))[5]; \
|
||||
elf_tdata (abfd)->core_pid = ((int *)(note->descdata))[6]; \
|
||||
/* Make a ".reg/999" section. */ \
|
||||
return _bfd_elfcore_make_pseudosection (abfd, ".reg",raw_size, \
|
||||
note->descpos + offset); \
|
||||
}' >> ${.TARGET}
|
||||
echo '#include "elf32-arm.h"' >> ${.TARGET}
|
||||
|
Loading…
Reference in New Issue
Block a user