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