svn commit: r335645 - in head: . etc/mtree lib lib/geom sbin/geom sbin/geom/class sbin/geom/core targets/pseudo/userland targets/pseudo/userland/lib

Brooks Davis brooks at FreeBSD.org
Mon Jun 25 19:55:17 UTC 2018


Author: brooks
Date: Mon Jun 25 19:55:15 2018
New Revision: 335645
URL: https://svnweb.freebsd.org/changeset/base/335645

Log:
  Normalize the g(eom,cache,part,...) build.
  
  Rather then combining hardlink creation for the geom(8) binary with
  shared library build, move libraries to src/lib/geom so they are
  built and installed normally.  Create a common Makefile.classes
  which is included by both lib/geom/Makefile and sbin/geom/Makefile
  so the symlink and libraries stay in sync.
  
  The relocation of libraries allows libraries to be build for 32-bit
  compat.  This also reduces the number of non-standard builds in
  the system.
  
  This commit is not sufficent to run a 32-bit /sbin/geom on a 64-bit
  system out of the box as it will look in the wrong place for libraries
  unless GEOM_LIBRARY_PATH is set appropriatly in the environment.
  
  Reviewed by:	bdrewery
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D15360

Added:
  head/lib/geom/
     - copied from r335644, head/sbin/geom/class/
Deleted:
  head/sbin/geom/Makefile.inc
  head/sbin/geom/class/
  head/sbin/geom/core/Makefile
Modified:
  head/Makefile.inc1
  head/etc/mtree/BSD.lib32.dist
  head/lib/Makefile
  head/lib/geom/Makefile
  head/lib/geom/Makefile.inc
  head/sbin/geom/Makefile
  head/targets/pseudo/userland/Makefile.depend
  head/targets/pseudo/userland/lib/Makefile.depend

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/Makefile.inc1	Mon Jun 25 19:55:15 2018	(r335645)
@@ -952,7 +952,7 @@ _worldtmp: .PHONY
 	@touch ${WORLDTMP}/${.TARGET}
 
 .for _dir in \
-    lib lib/casper usr legacy/bin legacy/usr
+    lib lib/casper lib/geom usr legacy/bin legacy/usr
 	mkdir -p ${WORLDTMP}/${_dir}
 .endfor
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
@@ -2507,6 +2507,7 @@ _prebuild_libs=	${_kerberos5_lib_libasn1} \
 		${_cddl_lib_libavl} \
 		${_cddl_lib_libzfs_core} \
 		${_cddl_lib_libctf} \
+		lib/libufs \
 		lib/libutil lib/libpjdlog ${_lib_libypclnt} lib/libz lib/msun \
 		${_secure_lib_libcrypto} ${_lib_libldns} \
 		${_secure_lib_libssh} ${_secure_lib_libssl}

Modified: head/etc/mtree/BSD.lib32.dist
==============================================================================
--- head/etc/mtree/BSD.lib32.dist	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/etc/mtree/BSD.lib32.dist	Mon Jun 25 19:55:15 2018	(r335645)
@@ -8,6 +8,8 @@
     lib32
         dtrace
         ..
+        geom
+        ..
         i18n
         ..
     ..

Modified: head/lib/Makefile
==============================================================================
--- head/lib/Makefile	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/lib/Makefile	Mon Jun 25 19:55:15 2018	(r335645)
@@ -24,6 +24,7 @@ SUBDIR_BOOTSTRAP= \
 
 SUBDIR=	${SUBDIR_BOOTSTRAP} \
 	.WAIT \
+	geom \
 	libalias \
 	libarchive \
 	libauditd \
@@ -100,6 +101,7 @@ SUBDIR=	${SUBDIR_BOOTSTRAP} \
 # Inter-library dependencies.  When the makefile for a library contains LDADD
 # libraries, those libraries should be listed as build order dependencies here.
 
+SUBDIR_DEPEND_geom=	libufs
 SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma libmd
 SUBDIR_DEPEND_libauditdm= libbsm
 SUBDIR_DEPEND_libbsnmp= ${_libnetgraph}

Modified: head/lib/geom/Makefile
==============================================================================
--- head/sbin/geom/class/Makefile	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/lib/geom/Makefile	Mon Jun 25 19:55:15 2018	(r335645)
@@ -1,24 +1,6 @@
 # $FreeBSD$
 
-.include <src.opts.mk>
+SUBDIR=${GEOM_CLASSES}
 
-SUBDIR=	cache
-SUBDIR+=concat
-.if ${MK_OPENSSL} != "no"
-SUBDIR+=eli
-.endif
-SUBDIR+=journal
-SUBDIR+=label
-SUBDIR+=mirror
-SUBDIR+=mountver
-SUBDIR+=multipath
-SUBDIR+=nop
-SUBDIR+=part
-SUBDIR+=raid
-SUBDIR+=raid3
-SUBDIR+=sched
-SUBDIR+=shsec
-SUBDIR+=stripe
-SUBDIR+=virstor
-
+.include "Makefile.inc"
 .include <bsd.subdir.mk>

Modified: head/lib/geom/Makefile.inc
==============================================================================
--- head/sbin/geom/class/Makefile.inc	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/lib/geom/Makefile.inc	Mon Jun 25 19:55:15 2018	(r335645)
@@ -1,13 +1,16 @@
 # $FreeBSD$
 
-SHLIBDIR?=${GEOM_CLASS_DIR}
+.include <src.opts.mk>
+
+SHLIBDIR=${GEOM_CLASS_DIR}
 SHLIB_NAME?=geom_${GEOM_CLASS}.so
-LINKS=	${BINDIR}/geom ${BINDIR}/g${GEOM_CLASS}
 MAN=	g${GEOM_CLASS}.8
 SRCS+=	geom_${GEOM_CLASS}.c subr.c
+CFLAGS+=-I${SRCTOP}/sbin/geom
 
+.PATH: ${SRCTOP}/sbin/geom/misc
+
 NO_WMISSING_VARIABLE_DECLARATIONS=
 
-CFLAGS+= -I${.CURDIR:H:H}
-
+.include "Makefile.classes"
 .include "../Makefile.inc"

Modified: head/sbin/geom/Makefile
==============================================================================
--- head/sbin/geom/Makefile	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/sbin/geom/Makefile	Mon Jun 25 19:55:15 2018	(r335645)
@@ -1,28 +1,30 @@
 # $FreeBSD$
 
-PACKAGE=runtime
-.if defined(RESCUE) || defined(RELEASE_CRUNCH)
+.include <src.opts.mk>
 
-.PATH:	${.CURDIR}/class/part \
-	${.CURDIR}/class/label \
-	${.CURDIR}/core \
-	${.CURDIR}/misc
+.PATH: ${.CURDIR}/core ${.CURDIR}/misc
 
-PROG=	geom
-SRCS=	geom.c geom_label.c geom_part.c subr.c
-MAN=
+PACKAGE=runtime
+PROG=		geom
+SRCS=		geom.c subr.c
+MAN=		geom.8
+CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/core
+CFLAGS+=	-DGEOM_CLASS_DIR=\"${GEOM_CLASS_DIR}\"
 
-WARNS?=	2
-CFLAGS+=-I${.CURDIR} -I${.CURDIR}/core -DSTATIC_GEOM_CLASSES
+LIBADD=		geom util
 
-LIBADD=	geom util
+.if defined(RESCUE) || defined(RELEASE_CRUNCH)
+.PATH:	${SRCTOP}/lib/geom/part \
+	${SRCTOP}/lib/geom/label
 
-.include <bsd.prog.mk>
+SRCS+=	geom_label.c geom_part.c
+MAN=
 
+WARNS?=	2
+CFLAGS+=-DSTATIC_GEOM_CLASSES
 .else
-
-SUBDIR=	core class
-
-.include <bsd.subdir.mk>
-
+.include "${SRCTOP}/lib/geom/Makefile.classes"
+LINKS=		${GEOM_CLASSES:S|^|${BINDIR}/geom ${BINDIR}/g|}
 .endif
+
+.include <bsd.prog.mk>

Modified: head/targets/pseudo/userland/Makefile.depend
==============================================================================
--- head/targets/pseudo/userland/Makefile.depend	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/targets/pseudo/userland/Makefile.depend	Mon Jun 25 19:55:15 2018	(r335645)
@@ -70,22 +70,6 @@ DIRDEPS+= \
 	sbin/fsdb \
 	sbin/fsirand \
 	sbin/gbde \
-	sbin/geom/class/cache \
-	sbin/geom/class/concat \
-	sbin/geom/class/eli \
-	sbin/geom/class/journal \
-	sbin/geom/class/label \
-	sbin/geom/class/mirror \
-	sbin/geom/class/mountver \
-	sbin/geom/class/multipath \
-	sbin/geom/class/nop \
-	sbin/geom/class/part \
-	sbin/geom/class/raid \
-	sbin/geom/class/raid3 \
-	sbin/geom/class/sched \
-	sbin/geom/class/shsec \
-	sbin/geom/class/stripe \
-	sbin/geom/class/virstor \
 	sbin/geom/core \
 	sbin/ggate/ggatec \
 	sbin/ggate/ggated \

Modified: head/targets/pseudo/userland/lib/Makefile.depend
==============================================================================
--- head/targets/pseudo/userland/lib/Makefile.depend	Mon Jun 25 19:24:50 2018	(r335644)
+++ head/targets/pseudo/userland/lib/Makefile.depend	Mon Jun 25 19:55:15 2018	(r335645)
@@ -8,6 +8,22 @@ DIRDEPS = \
 	lib/${CSU_DIR} \
 	lib/atf/libatf-c \
 	lib/atf/libatf-c++ \
+	lib/geom/cache \
+	lib/geom/concat \
+	lib/geom/eli \
+	lib/geom/journal \
+	lib/geom/label \
+	lib/geom/mirror \
+	lib/geom/mountver \
+	lib/geom/multipath \
+	lib/geom/nop \
+	lib/geom/part \
+	lib/geom/raid \
+	lib/geom/raid3 \
+	lib/geom/sched \
+	lib/geom/shsec \
+	lib/geom/stripe \
+	lib/geom/virstor \
 	lib/lib80211 \
 	lib/libalias/libalias \
 	lib/libalias/modules/cuseeme \


More information about the svn-src-head mailing list