summaryrefslogtreecommitdiffstats
path: root/usr.bin/ldd
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2015-11-24 23:04:03 +0000
committerjkim <jkim@FreeBSD.org>2015-11-24 23:04:03 +0000
commit4aff854e252d1261ea4b6a3810379b7870f68d4a (patch)
tree0c11e36d592ffa3623fd90f3e02a637ef8ca6368 /usr.bin/ldd
parent8bb94b7d79b01edd4e77b4e00f7ae41a79162d4a (diff)
downloadFreeBSD-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/ldd')
-rw-r--r--usr.bin/ldd/ldd.c12
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);
OpenPOWER on IntegriCloud