diff options
author | Andrew Turner <andrew@FreeBSD.org> | 2015-03-18 13:59:04 +0000 |
---|---|---|
committer | Andrew Turner <andrew@FreeBSD.org> | 2015-03-18 13:59:04 +0000 |
commit | e1f65999b6099f392b079fc4a695bcf2ef378f73 (patch) | |
tree | b63c643d2df004ed435455cd08499d94c3dcfa71 /usr.bin/ldd | |
parent | 667a4af397dadc9123d138fa25c7a36f03d51b7c (diff) | |
download | src-e1f65999b6099f392b079fc4a695bcf2ef378f73.tar.gz src-e1f65999b6099f392b079fc4a695bcf2ef378f73.zip |
Allowus to exclude a.out support from ldd and use it with arm64 as it won't
support the a.out format.
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Notes
Notes:
svn path=/head/; revision=280220
Diffstat (limited to 'usr.bin/ldd')
-rw-r--r-- | usr.bin/ldd/ldd.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.bin/ldd/ldd.c b/usr.bin/ldd/ldd.c index bc4dbb6204ae..2f48e04a911d 100644 --- a/usr.bin/ldd/ldd.c +++ b/usr.bin/ldd/ldd.c @@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include <arpa/inet.h> -#include <a.out.h> #include <dlfcn.h> #include <err.h> #include <errno.h> @@ -49,6 +48,12 @@ __FBSDID("$FreeBSD$"); #include "extern.h" +/* We don't support a.out executables on arm64 */ +#ifndef __aarch64__ +#include <a.out.h> +#define AOUT_SUPPORTED +#endif + /* * 32-bit ELF data structures can only be used if the system header[s] declare * them. There is no official macro for determining whether they are declared, @@ -274,7 +279,9 @@ static int is_executable(const char *fname, int fd, int *is_shlib, int *type) { union { +#ifdef AOUT_SUPPORTED struct exec aout; +#endif #if __ELF_WORD_SIZE > 32 && defined(ELF32_SUPPORTED) Elf32_Ehdr elf32; #endif @@ -290,6 +297,7 @@ is_executable(const char *fname, int fd, int *is_shlib, int *type) return (0); } +#ifdef AOUT_SUPPORTED if ((size_t)n >= sizeof(hdr.aout) && !N_BADMAG(hdr.aout)) { /* a.out file */ if ((N_GETFLAG(hdr.aout) & EX_DPMASK) != EX_DYNAMIC @@ -303,6 +311,7 @@ is_executable(const char *fname, int fd, int *is_shlib, int *type) *type = TYPE_AOUT; return (1); } +#endif #if __ELF_WORD_SIZE > 32 && defined(ELF32_SUPPORTED) if ((size_t)n >= sizeof(hdr.elf32) && IS_ELF(hdr.elf32) && |