diff options
author | jkim <jkim@FreeBSD.org> | 2015-11-24 23:04:03 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2015-11-24 23:04:03 +0000 |
commit | 4aff854e252d1261ea4b6a3810379b7870f68d4a (patch) | |
tree | 0c11e36d592ffa3623fd90f3e02a637ef8ca6368 /usr.bin | |
parent | 8bb94b7d79b01edd4e77b4e00f7ae41a79162d4a (diff) | |
download | FreeBSD-src-4aff854e252d1261ea4b6a3810379b7870f68d4a.zip FreeBSD-src-4aff854e252d1261ea4b6a3810379b7870f68d4a.tar.gz |
MFC: r289425
Add support for ARM EABI. Note it is not a direct MFC because some macros
are not defined in this branch.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/ldd/ldd.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.bin/ldd/ldd.c b/usr.bin/ldd/ldd.c index bc4dbb6..f0e70b3 100644 --- a/usr.bin/ldd/ldd.c +++ b/usr.bin/ldd/ldd.c @@ -377,9 +377,19 @@ is_executable(const char *fname, int fd, int *is_shlib, int *type) return (0); } if (hdr.elf.e_type == ET_DYN) { - if (hdr.elf.e_ident[EI_OSABI] == ELFOSABI_FREEBSD) { + switch (hdr.elf.e_ident[EI_OSABI]) { + case ELFOSABI_FREEBSD: *is_shlib = 1; return (1); +#ifdef __ARM_EABI__ + case ELFOSABI_NONE: + if (hdr.elf.e_machine != EM_ARM) + break; + if (((hdr.elf.e_flags & 0xff000000) >> 24) < 4) + break; + *is_shlib = 1; + return (1); +#endif } warnx("%s: not a FreeBSD ELF shared object", fname); return (0); |