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 \
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to