svn commit: r336026 - in head: lib/libnv usr.sbin/config

Kyle Evans kevans at freebsd.org
Sat Jul 7 17:07:59 UTC 2018


On Fri, Jul 6, 2018 at 6:23 AM, Kyle Evans <kevans at freebsd.org> wrote:
> Author: kevans
> Date: Fri Jul  6 11:23:14 2018
> New Revision: 336026
> URL: https://svnweb.freebsd.org/changeset/base/336026
>
> Log:
>   config(8): Fix broken ABI
>
>   r336019 introduced ${SRCTOP}/sys to the include paths in order to pull in a
>   new sys/{c,}nv.h. This is wrong, because the build tree's ABI isn't
>   guaranteed to match what's running on the host system.
>
>   Fix instead by removing -I${SRCTOP}/sys and installing the libnv headers
>   with `make -C lib/libnv includes`... this may or may not get re-worked in
>   the future so that a userland lib isn't installing includes from sys/.
>
>   Reported by:  bdrewery
>
> Modified:
>   head/lib/libnv/Makefile
>   head/usr.sbin/config/Makefile
>
> Modified: head/lib/libnv/Makefile
> ==============================================================================
> --- head/lib/libnv/Makefile     Fri Jul  6 10:13:42 2018        (r336025)
> +++ head/lib/libnv/Makefile     Fri Jul  6 11:23:14 2018        (r336026)
> @@ -17,6 +17,9 @@ SRCS+=        msgio.c
>  SRCS+= nvlist.c
>  SRCS+= nvpair.c
>
> +INCSDIR=       ${INCLUDEDIR}/sys
> +INCS=  ${SRCTOP}/sys/sys/cnv.h ${SRCTOP}/sys/sys/nv.h
> +
>  HAS_TESTS=
>  SUBDIR.${MK_TESTS}+= tests
>

It seems that this isn't a sustainable solution, as it creates a
conflict between runtime-development and libnv-development packages as
both try to install these headers from sys/. If we want to use libnv
from legacy build in a bootstrap tool, though, we need lib/libnv to
setup INCS correctly.

Is there a better solution to either only do this if we're
BOOTSTRAPPING < 1200070 and staging worldtmp or just pull these from
sys/sys while still allowing them to be used in kernel as expected?


More information about the svn-src-all mailing list