Module Name:    src
Committed By:   thorpej
Date:           Mon Dec 21 18:21:18 UTC 2009

Modified Files:
        src/external/bsd/libelf/dist: libelf.h
        src/tools: Makefile Makefile.disklabel
Added Files:
        src/tools/libelf: Makefile libelf.inc

Log Message:
Add support for building libelf in a host-tool environment.

XXX Makefile.disklabel is really mis-named, but I'm not going to tackle
that problem right now.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/libelf/dist/libelf.h
cvs rdiff -u -r1.129 -r1.130 src/tools/Makefile
cvs rdiff -u -r1.13 -r1.14 src/tools/Makefile.disklabel
cvs rdiff -u -r0 -r1.1 src/tools/libelf/Makefile src/tools/libelf/libelf.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/libelf/dist/libelf.h
diff -u src/external/bsd/libelf/dist/libelf.h:1.4 src/external/bsd/libelf/dist/libelf.h:1.5
--- src/external/bsd/libelf/dist/libelf.h:1.4	Sun Dec 20 05:52:15 2009
+++ src/external/bsd/libelf/dist/libelf.h	Mon Dec 21 18:21:17 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: libelf.h,v 1.4 2009/12/20 05:52:15 thorpej Exp $	*/
+/*	$NetBSD: libelf.h,v 1.5 2009/12/21 18:21:17 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2006 Joseph Koshy
@@ -33,17 +33,23 @@
 
 #include <sys/types.h>
 #include <sys/queue.h>
+#include <inttypes.h>
 
-#if defined(__NetBSD__)
+#if HAVE_NBTOOL_CONFIG_H
+# include <nbinclude/sys/exec_elf.h>
+# define __LIBELF_HAVE_ELF_CAP          1
+# define __LIBELF_HAVE_ELF_MOVE         1
+# define __LIBELF_HAVE_ELF_NOTE         1
+# define __LIBELF_HAVE_ELF_SYMINFO      1
+# define __LIBELF_HAVE_ELF_VERS         1
+#elif defined(__NetBSD__)
 # include <sys/exec_elf.h>
 # define __LIBELF_HAVE_ELF_CAP		1
 # define __LIBELF_HAVE_ELF_MOVE		1
 # define __LIBELF_HAVE_ELF_NOTE		1
 # define __LIBELF_HAVE_ELF_SYMINFO	1
 # define __LIBELF_HAVE_ELF_VERS		1
-#endif /* __NetBSD__ */
-
-#if defined(__FreeBSD__)
+#elif defined(__FreeBSD__)
 # include <sys/elf32.h>
 # include <sys/elf64.h>
 # include <osreldate.h>
@@ -56,7 +62,7 @@
 # if __FreeBSD_version >= 700009
 #  define __LIBELF_HAVE_ELF_VERS	1
 # endif /* __FreeBSD_version >= 700009 */
-#endif /* __FreeBSD__ */
+#endif
 
 /* Library private data structures */
 typedef struct _Elf Elf;

Index: src/tools/Makefile
diff -u src/tools/Makefile:1.129 src/tools/Makefile:1.130
--- src/tools/Makefile:1.129	Thu Oct 29 13:07:12 2009
+++ src/tools/Makefile	Mon Dec 21 18:21:17 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.129 2009/10/29 13:07:12 christos Exp $
+#	$NetBSD: Makefile,v 1.130 2009/12/21 18:21:17 thorpej Exp $
 
 .include <bsd.own.mk>
 
@@ -43,6 +43,7 @@
 	yacc .WAIT \
 	awk .WAIT \
 	lex .WAIT \
+	libelf .WAIT \
 	${TOOLCHAIN_BITS} \
 		asn1_compile atf-compile cat cksum compile_et config db \
 		file lint1 \

Index: src/tools/Makefile.disklabel
diff -u src/tools/Makefile.disklabel:1.13 src/tools/Makefile.disklabel:1.14
--- src/tools/Makefile.disklabel:1.13	Mon Sep 14 13:44:05 2009
+++ src/tools/Makefile.disklabel	Mon Dec 21 18:21:17 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.disklabel,v 1.13 2009/09/14 13:44:05 he Exp $
+#	$NetBSD: Makefile.disklabel,v 1.14 2009/12/21 18:21:17 thorpej Exp $
 
 # NOxxx definitions are copied from Makefile.host, and are
 # required before .include <bsd.own.mk>.   The include of bsd.own.mk
@@ -29,7 +29,8 @@
 _INCS=		disktab.h
 _SYSINCS=	bootblock.h \
 		disklabel.h disklabel_acorn.h disklabel_gpt.h disklabel_rdb.h \
-		dkbad.h
+		dkbad.h \
+		exec_elf.h
 
 HOST_CPPFLAGS+=	-I${TOOLDIR}/include
 

Added files:

Index: src/tools/libelf/Makefile
diff -u /dev/null src/tools/libelf/Makefile:1.1
--- /dev/null	Mon Dec 21 18:21:18 2009
+++ src/tools/libelf/Makefile	Mon Dec 21 18:21:18 2009
@@ -0,0 +1,79 @@
+#	$NetBSD: Makefile,v 1.1 2009/12/21 18:21:18 thorpej Exp $
+
+HOSTLIB=	elf
+
+SRCS=		elf_begin.c						\
+		elf_cntl.c						\
+		elf_end.c elf_errmsg.c elf_errno.c			\
+		elf_data.c						\
+		elf_fill.c elf_flag.c					\
+		elf_getarhdr.c elf_getarsym.c elf_getbase.c		\
+		    elf_getident.c					\
+		elf_hash.c						\
+		elf_kind.c						\
+		elf_memory.c						\
+		elf_next.c						\
+		elf_rand.c elf_rawfile.c				\
+		elf_phnum.c						\
+		elf_shnum.c elf_shstrndx.c elf_scn.c elf_strptr.c	\
+		elf_update.c						\
+		elf_version.c						\
+		gelf_cap.c						\
+		gelf_checksum.c						\
+		gelf_dyn.c						\
+		gelf_ehdr.c						\
+		gelf_getclass.c						\
+		gelf_fsize.c						\
+		gelf_move.c						\
+		gelf_phdr.c						\
+		gelf_rel.c gelf_rela.c					\
+		gelf_shdr.c gelf_sym.c gelf_syminfo.c gelf_symshndx.c	\
+		gelf_xlate.c						\
+		libelf.c						\
+		libelf_align.c libelf_allocate.c libelf_ar.c		\
+		libelf_checksum.c					\
+		libelf_data.c						\
+		libelf_ehdr.c libelf_extended.c				\
+		libelf_phdr.c						\
+		libelf_shdr.c						\
+		libelf_xlate.c						\
+		${LIBELF_GENSRCS}
+
+LIBELF_GENSRCS=	libelf_fsize.c libelf_msize.c libelf_convert.c
+
+LIBELF_DIR=	${.CURDIR}/../../external/bsd/libelf/dist
+
+CLEANFILES+=	${LIBELF_GENSRCS}
+CPPFLAGS+=	-I${.CURDIR}/../compat -I${LIBELF_DIR}
+
+CPPFLAGS+=	-DLIBELF_TEST_HOOKS
+
+libelf_convert.c:	elf_types.m4 libelf_convert.m4
+libelf_fsize.c:		elf_types.m4 libelf_fsize.m4
+libelf_msize.c:		elf_types.m4 libelf_msize.m4
+
+BUILD_OSTYPE!=  uname -s
+
+# Disable use of pre-compiled headers on Darwin.
+.if ${BUILD_OSTYPE} == "Darwin"
+CPPFLAGS+=	-no-cpp-precomp
+.endif
+
+# -D_FILE_OFFSET_BITS=64 produces a much more amenable `struct stat', and
+# other file ops, on many systems, without changing function names.
+
+CPPFLAGS+=	-DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64
+
+.PATH:		${LIBELF_DIR}
+
+HOST_CPPFLAGS:=	${CPPFLAGS}
+CPPFLAGS:=	# empty
+
+.include "${.CURDIR}/../Makefile.disklabel"
+.include <bsd.hostlib.mk>
+
+# Keep the .SUFFIXES line after the include of bsd.hostlib.mk
+M4OBJDIR!=	cd ${.CURDIR}/../m4 && ${PRINTOBJDIR}
+.SUFFIXES:	.m4 .c
+.m4.c:
+	${M4OBJDIR}/m4 -D SRCDIR=${LIBELF_DIR} ${.IMPSRC} > ${.TARGET}
Index: src/tools/libelf/libelf.inc
diff -u /dev/null src/tools/libelf/libelf.inc:1.1
--- /dev/null	Mon Dec 21 18:21:18 2009
+++ src/tools/libelf/libelf.inc	Mon Dec 21 18:21:18 2009
@@ -0,0 +1,4 @@
+#	$NetBSD: libelf.inc,v 1.1 2009/12/21 18:21:18 thorpej Exp $
+
+LIBELFSRCDIR=	${.CURDIR}/../../external/bsd/libelf/dist
+LIBELFOBJDIR!=	cd ${.CURDIR}/../libelf && ${PRINTOBJDIR}

Reply via email to