Author: emaste
Date: Fri Dec 18 03:06:39 2015
New Revision: 292423
URL: https://svnweb.freebsd.org/changeset/base/292423

Log:
  MFC r281674: crunchide: always include both 32- and 64-bit ELF support
  
  This avoids the need to build a target-specific crunchide for cross-
  builds.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/10/usr.sbin/crunch/crunchide/Makefile
  stable/10/usr.sbin/crunch/crunchide/exec_elf32.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/crunch/crunchide/Makefile
==============================================================================
--- stable/10/usr.sbin/crunch/crunchide/Makefile        Fri Dec 18 02:34:01 
2015        (r292422)
+++ stable/10/usr.sbin/crunch/crunchide/Makefile        Fri Dec 18 03:06:39 
2015        (r292423)
@@ -1,19 +1,9 @@
 # $FreeBSD$
 
 PROG=   crunchide
-SRCS=  crunchide.c
+SRCS=  crunchide.c exec_elf32.c exec_elf64.c
 
-TARGET_ARCH?=  ${MACHINE_ARCH}
-
-.if ${TARGET_ARCH} == ia64 || ${TARGET_ARCH} == powerpc64 || \
-    ${TARGET_ARCH} == sparc64 || ${TARGET_ARCH} == amd64 || \
-    ${TARGET_ARCH:Mmips64*}
-CFLAGS+=-DNLIST_ELF64
-SRCS+= exec_elf64.c
+CFLAGS+=-DNLIST_ELF32 -DNLIST_ELF64
 exec_elf64.o: exec_elf32.c
-.else
-CFLAGS+=-DNLIST_ELF32
-SRCS+= exec_elf32.c
-.endif
 
 .include <bsd.prog.mk>

Modified: stable/10/usr.sbin/crunch/crunchide/exec_elf32.c
==============================================================================
--- stable/10/usr.sbin/crunch/crunchide/exec_elf32.c    Fri Dec 18 02:34:01 
2015        (r292422)
+++ stable/10/usr.sbin/crunch/crunchide/exec_elf32.c    Fri Dec 18 03:06:39 
2015        (r292423)
@@ -79,6 +79,9 @@ __FBSDID("$FreeBSD$");
 #define ELFNAME2(x,y)   CONCAT(x,CONCAT(_elf,CONCAT(ELFSIZE,CONCAT(_,y))))
 #define ELFNAMEEND(x)   CONCAT(x,CONCAT(_elf,ELFSIZE))
 #define ELFDEFNNAME(x)  CONCAT(ELF,CONCAT(ELFSIZE,CONCAT(_,x)))
+#ifndef ELFCLASS
+#define ELFCLASS       CONCAT(ELFCLASS,ELFSIZE)
+#endif
 
 #define        xe16toh(x)      ((data == ELFDATA2MSB) ? be16toh(x) : 
le16toh(x))
 #define        xe32toh(x)      ((data == ELFDATA2MSB) ? be32toh(x) : 
le32toh(x))
@@ -167,7 +170,7 @@ ELFNAMEEND(check)(int fd, const char *fn
        if (read(fd, &eh, sizeof eh) != sizeof eh)
                return 0;
 
-       if (IS_ELF(eh) == 0)
+       if (IS_ELF(eh) == 0 || eh.e_ident[EI_CLASS] != ELFCLASS)
                 return 0;
 
        data = eh.e_ident[EI_DATA];
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to