Author: arichardson
Date: Mon Jul  1 11:52:54 2019
New Revision: 349577
URL: https://svnweb.freebsd.org/changeset/base/349577

Log:
  Allow bootstrapping elftoolchain on MacOS and Linux
  
  This is required in order to build on non-FreeBSD systems without setting
  all the XAR/XSTRINGS/etc. variables
  
  Reviewed By:  emaste
  Differential Revision: https://reviews.freebsd.org/D16771

Modified:
  head/contrib/elftoolchain/common/_elftc.h
  head/contrib/elftoolchain/libelftc/elftc_set_timestamps.c
  head/lib/libelf/Makefile

Modified: head/contrib/elftoolchain/common/_elftc.h
==============================================================================
--- head/contrib/elftoolchain/common/_elftc.h   Mon Jul  1 11:47:45 2019        
(r349576)
+++ head/contrib/elftoolchain/common/_elftc.h   Mon Jul  1 11:52:54 2019        
(r349577)
@@ -374,11 +374,14 @@ extern const char *__progname;
 
 #include <libkern/OSByteOrder.h>
 #define        htobe32(x)      OSSwapHostToBigInt32(x)
+#define        htole32(x)      OSSwapHostToLittleInt32(x)
+#ifndef roundup2
 #define        roundup2        roundup
+#endif
 
-#define        ELFTC_BYTE_ORDER                        _BYTE_ORDER
-#define        ELFTC_BYTE_ORDER_LITTLE_ENDIAN          _LITTLE_ENDIAN
-#define        ELFTC_BYTE_ORDER_BIG_ENDIAN             _BIG_ENDIAN
+#define        ELFTC_BYTE_ORDER                        __DARWIN_BYTE_ORDER
+#define        ELFTC_BYTE_ORDER_LITTLE_ENDIAN          __DARWIN_LITTLE_ENDIAN
+#define        ELFTC_BYTE_ORDER_BIG_ENDIAN             __DARWIN_BIG_ENDIAN
 
 #define        ELFTC_HAVE_MMAP                         1
 #define        ELFTC_HAVE_STRMODE                      1
@@ -418,7 +421,9 @@ extern const char *__progname;
 /* Whether we need to supply {be,le}32dec. */
 #define ELFTC_NEED_BYTEORDER_EXTENSIONS                1
 
+#ifndef roundup2
 #define        roundup2        roundup
+#endif
 
 #endif /* __GLIBC__ || __linux__ */
 

Modified: head/contrib/elftoolchain/libelftc/elftc_set_timestamps.c
==============================================================================
--- head/contrib/elftoolchain/libelftc/elftc_set_timestamps.c   Mon Jul  1 
11:47:45 2019        (r349576)
+++ head/contrib/elftoolchain/libelftc/elftc_set_timestamps.c   Mon Jul  1 
11:52:54 2019        (r349577)
@@ -37,7 +37,7 @@ ELFTC_VCSID("$Id$");
  * stat'.
  */
 
-#if    defined(__FreeBSD__) || defined(__NetBSD__)
+#if    defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
 #define        ATIME   st_atimespec
 #define        MTIME   st_mtimespec
 #define        LIBELFTC_HAVE_UTIMES    1

Modified: head/lib/libelf/Makefile
==============================================================================
--- head/lib/libelf/Makefile    Mon Jul  1 11:47:45 2019        (r349576)
+++ head/lib/libelf/Makefile    Mon Jul  1 11:52:54 2019        (r349577)
@@ -79,6 +79,13 @@ INCS=                libelf.h gelf.h
 #
 SRCS+= sys/elf32.h sys/elf64.h sys/elf_common.h
 
+# Allow bootstrapping elftoolchain on Linux:
+.if defined(BOOTSTRAPPING) && ${.MAKE.OS} == "Linux"
+native-elf-format.h:
+       ${ELFTCDIR}/common/native-elf-format > ${.TARGET} || rm ${.TARGET}
+SRCS+= native-elf-format.h
+.endif
+
 GENSRCS=       libelf_fsize.c libelf_msize.c libelf_convert.c
 CLEANFILES=    ${GENSRCS}
 CLEANDIRS=     sys
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to