Module Name:    src
Committed By:   pooka
Date:           Wed Dec 10 00:37:30 UTC 2014

Modified Files:
        src/lib/libc: Makefile Makefile.inc
        src/lib/libc/sys: Makefile.inc

Log Message:
Add hooks for RUMPRUN build of libc

If "yes", does the following (default "no"):
  * prevents ASM syscalls from being built (librump provides syscalls)
  * does not include compat (useless when application is linked with libc)
  * does not build tags (no /var/db to install them to)
  * does not include tls

==> libc for rumprun can now be built against unmodified NetBSD sources


To generate a diff of this commit:
cvs rdiff -u -r1.166 -r1.167 src/lib/libc/Makefile
cvs rdiff -u -r1.16 -r1.17 src/lib/libc/Makefile.inc
cvs rdiff -u -r1.225 -r1.226 src/lib/libc/sys/Makefile.inc

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

Modified files:

Index: src/lib/libc/Makefile
diff -u src/lib/libc/Makefile:1.166 src/lib/libc/Makefile:1.167
--- src/lib/libc/Makefile:1.166	Sun Aug 10 23:39:08 2014
+++ src/lib/libc/Makefile	Wed Dec 10 00:37:30 2014
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.166 2014/08/10 23:39:08 matt Exp $
+#	$NetBSD: Makefile,v 1.167 2014/12/10 00:37:30 pooka Exp $
 #	@(#)Makefile	8.2 (Berkeley) 2/3/94
 #
 # All library objects contain sccsid strings by default; they may be
@@ -41,6 +41,7 @@ assym.h: ${ARCHDIR}/genassym.cf
 	mv -f assym.h.tmp assym.h
 .endif
 
+.if ${RUMPRUN} != "yes"
 # The following controls how to build compatibility code for old NetBSD
 # binaries. If BUILD_LEGACY is yes, then we build a separate library; otherwise
 # we include the code in libc.
@@ -54,6 +55,7 @@ COMPATDIR=${.CURDIR}/compat
 # Marker for compat code that can't be easily isolated
 CPPFLAGS+=	-D__BUILD_LEGACY
 .endif
+.endif
 
 .include "${.CURDIR}/../../common/lib/libc/Makefile.inc"
 .include "${.CURDIR}/atomic/Makefile.inc"
@@ -90,7 +92,9 @@ CPPFLAGS+=	-D__BUILD_LEGACY
 .include "${.CURDIR}/termios/Makefile.inc"
 .include "${.CURDIR}/thread-stub/Makefile.inc"
 .include "${.CURDIR}/time/Makefile.inc"
+.if ${RUMPRUN} != "yes"
 .include "${.CURDIR}/tls/Makefile.inc"
+.endif
 .include "${.CURDIR}/sys/Makefile.inc"
 .if ${HAVE_LIBGCC_EH} == "no"
 .include "${NETBSDSRCDIR}/sys/lib/libunwind/Makefile.inc"
@@ -128,6 +132,7 @@ REGEX_SPECIALS=[][)(^$$.?*\\;]
 MKREPRO_SED=   -e 's;${NETBSDSRCDIR:C/${REGEX_SPECIALS}/\\\\&/g};/usr/src;'
 .endif
 
+.if ${RUMPRUN} != "yes"
 realall: tags
 tags: ${SRCS}
 	${_MKTARGET_CREATE}
@@ -145,6 +150,7 @@ tags: ${SRCS}
 FILES=		tags
 FILESNAME=	libc.tags
 FILESDIR=	/var/db
+.endif
 
 
 # workaround for I18N stuffs: build singlebyte setlocale() for libc.a,

Index: src/lib/libc/Makefile.inc
diff -u src/lib/libc/Makefile.inc:1.16 src/lib/libc/Makefile.inc:1.17
--- src/lib/libc/Makefile.inc:1.16	Thu Sep 19 21:18:17 2013
+++ src/lib/libc/Makefile.inc	Wed Dec 10 00:37:30 2014
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.16 2013/09/19 21:18:17 christos Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2014/12/10 00:37:30 pooka Exp $
 #	@(#)Makefile	8.2 (Berkeley) 2/3/94
 #
 # All library objects contain sccsid strings by default; they may be
@@ -23,6 +23,10 @@ USE_SHLIBDIR=	yes
 
 .include <bsd.own.mk>
 
+# build libc suitable for rumprun software stack, i.e. are system calls
+# rump kernel function calls instead of kernel traps?
+RUMPRUN?=	no
+
 WARNS=5
 CPPFLAGS+=	-D_LIBC -DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT
 CPPFLAGS+=	-D_DIAGNOSTIC -DMLIBDIR=\"${MLIBDIR}\"

Index: src/lib/libc/sys/Makefile.inc
diff -u src/lib/libc/sys/Makefile.inc:1.225 src/lib/libc/sys/Makefile.inc:1.226
--- src/lib/libc/sys/Makefile.inc:1.225	Thu Sep 25 15:08:29 2014
+++ src/lib/libc/sys/Makefile.inc	Wed Dec 10 00:37:30 2014
@@ -1,18 +1,22 @@
-#	$NetBSD: Makefile.inc,v 1.225 2014/09/25 15:08:29 manu Exp $
+#	$NetBSD: Makefile.inc,v 1.226 2014/12/10 00:37:30 pooka Exp $
 #	@(#)Makefile.inc	8.3 (Berkeley) 10/24/94
 
 # sys sources
 .PATH: ${ARCHDIR}/sys ${.CURDIR}/sys
 
+# other sources shared with the kernel, used in syscalls
+SRCS+=	cpuset.c
+# glue to offer userland wrappers for some syscalls
+SRCS+=	posix_fadvise.c posix_madvise.c sched.c sigqueue.c sigtimedwait.c \
+	sigwait.c sigwaitinfo.c statvfs.c swapon.c semctl.c 
+
+.if ${RUMPRUN} != "yes"
 # modules with non-default implementations on at least one architecture:
 SRCS+=	__clone.S __vfork14.S brk.S exect.S fork.S pipe.S \
 	getcontext.S \
 	ptrace.S sbrk.S shmat.S \
 	syscall.S __syscall.S __clone.S cerror.S
 
-# other sources shared with the kernel, used in syscalls
-SRCS+=	cpuset.c
-
 _LSRC+=	Lint___clone.c Lint___vfork14.c Lint_brk.c Lint_clone.c \
 	Lint_getcontext.c Lint_exect.c Lint_pipe.c Lint_ptrace.c \
 	Lint_sbrk.c Lint___sigaction14.c Lint_syscall.c Lint___syscall.c \
@@ -24,10 +28,6 @@ DPSRCS+=	${_LSRC:MLintSys*.c}
 CLEANFILES+=	${_LSRC:MLintSys*.c}
 .endif
 
-# glue to offer userland wrappers for some syscalls
-SRCS+=	posix_fadvise.c posix_madvise.c sched.c sigqueue.c sigtimedwait.c \
-	sigwait.c sigwaitinfo.c statvfs.c swapon.c semctl.c 
-
 # glue to provide compatibility between GCC 1.X and 2.X and for compat
 # with old syscall interfaces.
 GLUE+= fdiscard.c ftruncate.c lseek.c mmap.c posix_fallocate.c \
@@ -170,6 +170,7 @@ ASMDEPS=	${.CURDIR}/sys/Makefile.inc ${A
 		${DESTDIR}/usr/include/sys/syscall.h
 
 _LINTASM=	${ASM:Nsa_*.S} ${WEAKASM:Nsa_*.S}
+.endif # RUMPRUN != yes
 
 ${ASM}: ${ASMDEPS}
 	${_MKTARGET_CREATE}

Reply via email to