diff options
-rw-r--r-- | contrib/binutils/binutils/readelf.c | 2 | ||||
-rw-r--r-- | contrib/binutils/include/elf/common.h | 1 | ||||
-rw-r--r-- | lib/csu/arm/crt1.c | 14 | ||||
-rw-r--r-- | lib/csu/common/notes.h | 1 |
4 files changed, 18 insertions, 0 deletions
diff --git a/contrib/binutils/binutils/readelf.c b/contrib/binutils/binutils/readelf.c index a4adb78..d2e2aef 100644 --- a/contrib/binutils/binutils/readelf.c +++ b/contrib/binutils/binutils/readelf.c @@ -9169,6 +9169,8 @@ get_freebsd_note_type (unsigned e_type) return _("NT_FREEBSD_ABI_TAG"); case NT_FREEBSD_NOINIT_TAG: return _("NT_FREEBSD_NOINIT_TAG"); + case NT_FREEBSD_ARCH_TAG: + return _("NT_FREEBSD_ARCH_TAG"); default: break; } diff --git a/contrib/binutils/include/elf/common.h b/contrib/binutils/include/elf/common.h index 17ca0d5..d4d9d7b 100644 --- a/contrib/binutils/include/elf/common.h +++ b/contrib/binutils/include/elf/common.h @@ -456,6 +456,7 @@ #define NT_FREEBSD_TAG 1 #define NT_FREEBSD_NOINIT_TAG 2 +#define NT_FREEBSD_ARCH_TAG 3 /* These three macros disassemble and assemble a symbol table st_info field, which contains the symbol binding and symbol type. The STB_ and STT_ diff --git a/lib/csu/arm/crt1.c b/lib/csu/arm/crt1.c index e3529b8..d9f8a2d 100644 --- a/lib/csu/arm/crt1.c +++ b/lib/csu/arm/crt1.c @@ -115,6 +115,20 @@ __start(int argc, char **argv, char **env, struct ps_strings *ps_strings, exit(main(argc, argv, env)); } +static const struct { + int32_t namesz; + int32_t descsz; + int32_t type; + char name[sizeof(NOTE_FREEBSD_VENDOR)]; + char desc[sizeof(MACHINE_ARCH)]; +} archtag __attribute__ ((section (NOTE_SECTION), aligned(4))) __used = { + .namesz = sizeof(NOTE_FREEBSD_VENDOR), + .descsz = sizeof(int32_t), + .type = ARCH_NOTETYPE, + .name = NOTE_FREEBSD_VENDOR, + .desc = MACHINE_ARCH +}; + #ifdef GCRT __asm__(".text"); __asm__("eprol:"); diff --git a/lib/csu/common/notes.h b/lib/csu/common/notes.h index fcc2b66..b2c53bf 100644 --- a/lib/csu/common/notes.h +++ b/lib/csu/common/notes.h @@ -34,5 +34,6 @@ #define ABI_NOTETYPE 1 #define CRT_NOINIT_NOTETYPE 2 +#define ARCH_NOTETYPE 3 #endif |