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 -#include #include #include #include @@ -49,6 +48,12 @@ __FBSDID("$FreeBSD$"); #include "extern.h" +/* We don't support a.out executables on arm64 */ +#ifndef __aarch64__ +#include +#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) &&