Date: Mon, 6 Jun 2016 10:21:53 +0000 (UTC) From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301499 - in projects/vnet: . bin/sh contrib/bmake contrib/bmake/mk contrib/elftoolchain/brandelf contrib/elftoolchain/elfcopy contrib/elftoolchain/elfdump contrib/elftoolchain/libdwarf... Message-ID: <201606061021.u56ALrF3075840@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bz Date: Mon Jun 6 10:21:53 2016 New Revision: 301499 URL: https://svnweb.freebsd.org/changeset/base/301499 Log: MfH @r301498 Sponsored by: The FreeBSD Foundation Added: projects/vnet/contrib/libucl/src/mum.h - copied unchanged from r301498, head/contrib/libucl/src/mum.h projects/vnet/etc/rc.d/ypldap - copied unchanged from r301498, head/etc/rc.d/ypldap projects/vnet/lib/clang/freebsd_cc_version.h - copied unchanged from r301498, head/lib/clang/freebsd_cc_version.h projects/vnet/lib/libblacklist/Makefile.depend - copied unchanged from r301498, head/lib/libblacklist/Makefile.depend projects/vnet/lib/libdevdctl/Makefile.depend - copied unchanged from r301498, head/lib/libdevdctl/Makefile.depend projects/vnet/libexec/blacklistd-helper/Makefile.depend - copied unchanged from r301498, head/libexec/blacklistd-helper/Makefile.depend projects/vnet/sys/boot/efi/libefi/time_event.c - copied unchanged from r301498, head/sys/boot/efi/libefi/time_event.c projects/vnet/sys/dev/bhnd/bhnd_nexus.c - copied unchanged from r301498, head/sys/dev/bhnd/bhnd_nexus.c projects/vnet/sys/dev/bhnd/bhnd_nexusvar.h - copied unchanged from r301498, head/sys/dev/bhnd/bhnd_nexusvar.h projects/vnet/sys/dev/bhnd/cores/chipc/chipc_cfi.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_cfi.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_slicer.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_slicer.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_slicer.h - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_slicer.h projects/vnet/sys/dev/bhnd/cores/chipc/chipc_spi.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_spi.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_spi.h - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_spi.h projects/vnet/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c projects/vnet/sys/dev/hyperv/vmbus/hyperv_machdep.h - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/hyperv_machdep.h projects/vnet/sys/dev/hyperv/vmbus/i386/hyperv_machdep.c - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/i386/hyperv_machdep.c projects/vnet/usr.bin/bsdcat/Makefile.depend - copied unchanged from r301498, head/usr.bin/bsdcat/Makefile.depend projects/vnet/usr.bin/resizewin/Makefile.depend - copied unchanged from r301498, head/usr.bin/resizewin/Makefile.depend projects/vnet/usr.bin/sdiff/Makefile.depend - copied unchanged from r301498, head/usr.bin/sdiff/Makefile.depend projects/vnet/usr.sbin/blacklistctl/Makefile.depend - copied unchanged from r301498, head/usr.sbin/blacklistctl/Makefile.depend projects/vnet/usr.sbin/blacklistd/Makefile.depend - copied unchanged from r301498, head/usr.sbin/blacklistd/Makefile.depend projects/vnet/usr.sbin/zonectl/Makefile.depend - copied unchanged from r301498, head/usr.sbin/zonectl/Makefile.depend Deleted: projects/vnet/contrib/libucl/src/xxhash.c projects/vnet/contrib/libucl/src/xxhash.h projects/vnet/sys/dev/bhnd/soc/bhnd_soc.c projects/vnet/sys/dev/bhnd/soc/bhnd_soc.h projects/vnet/sys/dev/siba/siba_cc.c projects/vnet/sys/dev/siba/siba_mips.c projects/vnet/sys/dev/siba/siba_pcib.c projects/vnet/sys/dev/siba/siba_pcibvar.h Modified: projects/vnet/Makefile projects/vnet/Makefile.inc1 projects/vnet/bin/sh/Makefile projects/vnet/bin/sh/miscbltin.c projects/vnet/contrib/bmake/ChangeLog projects/vnet/contrib/bmake/Makefile projects/vnet/contrib/bmake/bmake.1 projects/vnet/contrib/bmake/bmake.cat1 projects/vnet/contrib/bmake/boot-strap projects/vnet/contrib/bmake/main.c projects/vnet/contrib/bmake/make-bootstrap.sh.in projects/vnet/contrib/bmake/make.1 projects/vnet/contrib/bmake/make.h projects/vnet/contrib/bmake/meta.c projects/vnet/contrib/bmake/mk/ChangeLog projects/vnet/contrib/bmake/mk/dpadd.mk projects/vnet/contrib/bmake/mk/install-mk projects/vnet/contrib/bmake/mk/meta.autodep.mk projects/vnet/contrib/bmake/mk/meta.stage.mk projects/vnet/contrib/bmake/nonints.h projects/vnet/contrib/bmake/var.c projects/vnet/contrib/elftoolchain/brandelf/brandelf.c projects/vnet/contrib/elftoolchain/elfcopy/main.c projects/vnet/contrib/elftoolchain/elfdump/elfdump.c projects/vnet/contrib/elftoolchain/libdwarf/libdwarf_reloc.c projects/vnet/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/vnet/contrib/elftoolchain/readelf/readelf.c projects/vnet/contrib/gcclibs/include/objalloc.h projects/vnet/contrib/gcclibs/libiberty/objalloc.c projects/vnet/contrib/libucl/src/Makefile.am projects/vnet/contrib/libucl/src/ucl_hash.c projects/vnet/contrib/libucl/src/ucl_internal.h projects/vnet/contrib/libucl/src/ucl_msgpack.c projects/vnet/contrib/libucl/src/ucl_parser.c projects/vnet/contrib/libucl/src/ucl_util.c projects/vnet/contrib/libucl/uthash/uthash.h projects/vnet/contrib/one-true-awk/b.c projects/vnet/contrib/one-true-awk/lex.c projects/vnet/contrib/one-true-awk/maketab.c projects/vnet/contrib/one-true-awk/parse.c projects/vnet/contrib/one-true-awk/run.c projects/vnet/contrib/one-true-awk/tran.c projects/vnet/crypto/openssl/crypto/opensslv.h projects/vnet/etc/defaults/periodic.conf projects/vnet/etc/defaults/rc.conf projects/vnet/etc/mtree/BSD.usr.dist projects/vnet/etc/rc.d/Makefile projects/vnet/gnu/usr.bin/cc/c++/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc1/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc1plus/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc_tools/Makefile.depend projects/vnet/gnu/usr.bin/cc/cpp/Makefile.depend projects/vnet/gnu/usr.bin/cc/gcov/Makefile.depend projects/vnet/gnu/usr.bin/groff/src/libs/libdriver/Makefile.depend projects/vnet/gnu/usr.bin/groff/src/libs/libgroff/Makefile.depend projects/vnet/kerberos5/Makefile.inc projects/vnet/kerberos5/lib/libasn1/Makefile projects/vnet/kerberos5/lib/libgssapi_spnego/Makefile projects/vnet/kerberos5/lib/libhdb/Makefile projects/vnet/kerberos5/lib/libhx509/Makefile projects/vnet/kerberos5/tools/asn1_compile/Makefile.depend projects/vnet/lib/clang/include/clang/Basic/Version.inc projects/vnet/lib/clang/libclangbasic/Makefile projects/vnet/lib/libc/gen/fnmatch.c projects/vnet/lib/libc/gen/glob.c projects/vnet/lib/libc/locale/collate.h projects/vnet/lib/libc/locale/collcmp.c projects/vnet/lib/libc/regex/regcomp.c projects/vnet/lib/libc/stdlib/random.3 projects/vnet/lib/libc/sys/_umtx_op.2 projects/vnet/lib/libc/sys/cpuset_getaffinity.2 projects/vnet/lib/libc/sys/thr_new.2 projects/vnet/lib/libelftc/Makefile projects/vnet/lib/libthr/libthr.3 projects/vnet/lib/libucl/Makefile projects/vnet/libexec/rlogind/Makefile projects/vnet/libexec/rlogind/rlogind.c projects/vnet/release/release.conf.sample projects/vnet/release/release.sh projects/vnet/sbin/ifconfig/ifconfig.8 projects/vnet/sbin/ifconfig/ifvlan.c projects/vnet/share/examples/Makefile projects/vnet/share/man/man3/pthread_attr_affinity_np.3 projects/vnet/share/man/man3/pthread_create.3 projects/vnet/share/man/man4/bcma.4 projects/vnet/share/man/man4/bhnd.4 projects/vnet/share/man/man4/bhndb.4 projects/vnet/share/man/man4/siba.4 projects/vnet/share/man/man4/vlan.4 projects/vnet/share/man/man5/src.conf.5 projects/vnet/share/mk/bsd.compiler.mk projects/vnet/share/mk/bsd.dep.mk projects/vnet/share/mk/bsd.info.mk projects/vnet/share/mk/bsd.lib.mk projects/vnet/share/mk/bsd.man.mk projects/vnet/share/mk/bsd.nls.mk projects/vnet/share/mk/bsd.prog.mk projects/vnet/share/mk/bsd.snmpmod.mk projects/vnet/share/mk/local.meta.sys.mk projects/vnet/share/mk/meta.stage.mk projects/vnet/share/mk/src.opts.mk projects/vnet/share/mk/sys.mk projects/vnet/sys/amd64/amd64/pmap.c projects/vnet/sys/arm/arm/nexus.c projects/vnet/sys/arm/mv/mv_common.c projects/vnet/sys/arm/nvidia/tegra124/tegra124_cpufreq.c projects/vnet/sys/arm64/arm64/gic_v3.c projects/vnet/sys/arm64/arm64/nexus.c projects/vnet/sys/boot/efi/include/efilib.h projects/vnet/sys/boot/efi/libefi/Makefile projects/vnet/sys/boot/efi/libefi/time.c projects/vnet/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c projects/vnet/sys/boot/efi/loader/arch/arm/exec.c projects/vnet/sys/boot/efi/loader/arch/arm64/exec.c projects/vnet/sys/boot/efi/loader/arch/i386/elf32_freebsd.c projects/vnet/sys/boot/efi/loader/main.c projects/vnet/sys/cam/ctl/ctl_frontend_iscsi.c projects/vnet/sys/cam/ctl/ctl_frontend_iscsi.h projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/vnet/sys/conf/files projects/vnet/sys/conf/files.amd64 projects/vnet/sys/conf/files.i386 projects/vnet/sys/conf/kern.post.mk projects/vnet/sys/conf/kern.pre.mk projects/vnet/sys/conf/kmod.mk projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_mci.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9462_2p0_initvals.h projects/vnet/sys/dev/acpica/acpi_lid.c projects/vnet/sys/dev/ath/ath_hal/ah_btcoex.h projects/vnet/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c projects/vnet/sys/dev/ath/if_ath_btcoex.c projects/vnet/sys/dev/bhnd/bcma/bcma.c projects/vnet/sys/dev/bhnd/bcma/bcma_nexus.c projects/vnet/sys/dev/bhnd/bhnd.h projects/vnet/sys/dev/bhnd/bhnd_bus_if.m projects/vnet/sys/dev/bhnd/bhnd_subr.c projects/vnet/sys/dev/bhnd/cores/chipc/bhnd_chipc_if.m projects/vnet/sys/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc.h projects/vnet/sys/dev/bhnd/cores/chipc/chipcreg.h projects/vnet/sys/dev/bhnd/cores/chipc/chipcvar.h projects/vnet/sys/dev/bhnd/nvram/bhnd_nvram.h projects/vnet/sys/dev/bhnd/nvram/bhnd_sprom.c projects/vnet/sys/dev/bhnd/nvram/bhnd_sprom_subr.c projects/vnet/sys/dev/bhnd/nvram/bhnd_spromvar.h projects/vnet/sys/dev/bhnd/siba/siba.c projects/vnet/sys/dev/bhnd/siba/siba_nexus.c projects/vnet/sys/dev/bhnd/siba/siba_subr.c projects/vnet/sys/dev/bwn/if_bwn.c projects/vnet/sys/dev/bwn/if_bwn_phy_n.c projects/vnet/sys/dev/cesa/cesa.c projects/vnet/sys/dev/cesa/cesa.h projects/vnet/sys/dev/etherswitch/mtkswitch/mtkswitch_mt7620.c projects/vnet/sys/dev/fdt/simplebus.c projects/vnet/sys/dev/filemon/filemon.c projects/vnet/sys/dev/filemon/filemon_wrapper.c projects/vnet/sys/dev/gpio/ofw_gpiobus.c projects/vnet/sys/dev/hyperv/vmbus/hv_channel_mgmt.c projects/vnet/sys/dev/hyperv/vmbus/hv_connection.c projects/vnet/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/vnet/sys/dev/hyperv/vmbus/hyperv.c projects/vnet/sys/dev/hyperv/vmbus/vmbus.c projects/vnet/sys/dev/hyperv/vmbus/vmbus_reg.h projects/vnet/sys/dev/hyperv/vmbus/vmbus_var.h projects/vnet/sys/dev/iicbus/ofw_iicbus.c projects/vnet/sys/dev/ioat/ioat.c projects/vnet/sys/dev/ioat/ioat.h projects/vnet/sys/dev/ioat/ioat_internal.h projects/vnet/sys/dev/iscsi/iscsi.c projects/vnet/sys/dev/iscsi/iscsi_ioctl.h projects/vnet/sys/dev/ntb/ntb_hw/ntb_hw.c projects/vnet/sys/dev/nxge/xgehal/xgehal-device.c projects/vnet/sys/dev/ofw/ofw_bus_subr.c projects/vnet/sys/dev/ofw/ofw_bus_subr.h projects/vnet/sys/dev/ofw/ofwbus.c projects/vnet/sys/dev/pci/pci_host_generic.c projects/vnet/sys/dev/sfxge/common/ef10_ev.c projects/vnet/sys/dev/sfxge/common/ef10_nic.c projects/vnet/sys/dev/sfxge/common/ef10_tlv_layout.h projects/vnet/sys/dev/sfxge/common/efx.h projects/vnet/sys/dev/sfxge/common/efx_ev.c projects/vnet/sys/dev/sfxge/sfxge.c projects/vnet/sys/dev/sfxge/sfxge_ev.c projects/vnet/sys/dev/sfxge/sfxge_intr.c projects/vnet/sys/dev/sfxge/sfxge_rx.c projects/vnet/sys/dev/sfxge/sfxge_tx.c projects/vnet/sys/dev/usb/wlan/if_run.c projects/vnet/sys/dev/vnic/mrml_bridge.c projects/vnet/sys/dev/vnic/thunder_mdio_fdt.c projects/vnet/sys/kern/bus_if.m projects/vnet/sys/kern/init_main.c projects/vnet/sys/kern/kern_fork.c projects/vnet/sys/kern/kern_proc.c projects/vnet/sys/kern/kern_synch.c projects/vnet/sys/kern/kern_thread.c projects/vnet/sys/kern/sched_4bsd.c projects/vnet/sys/kern/sched_ule.c projects/vnet/sys/kern/subr_bus.c projects/vnet/sys/kern/subr_intr.c projects/vnet/sys/mips/broadcom/files.broadcom projects/vnet/sys/mips/broadcom/uart_bus_chipc.c projects/vnet/sys/mips/conf/BCM projects/vnet/sys/mips/conf/BCM.hints projects/vnet/sys/mips/conf/SENTRY5 projects/vnet/sys/mips/conf/SENTRY5.hints projects/vnet/sys/mips/mips/locore.S projects/vnet/sys/mips/mips/nexus.c projects/vnet/sys/modules/hyperv/vmbus/Makefile projects/vnet/sys/modules/sfxge/Makefile projects/vnet/sys/net/if.h projects/vnet/sys/net/if_vlan.c projects/vnet/sys/net/if_vlan_var.h projects/vnet/sys/netinet/icmp6.h projects/vnet/sys/netpfil/ipfw/ip_fw_table_algo.c projects/vnet/sys/sys/bus.h projects/vnet/sys/sys/intr.h projects/vnet/sys/sys/priv.h projects/vnet/sys/sys/proc.h projects/vnet/sys/sys/soundcard.h projects/vnet/sys/x86/x86/local_apic.c projects/vnet/targets/pseudo/bootstrap-tools/Makefile projects/vnet/targets/pseudo/tests/Makefile.depend projects/vnet/targets/pseudo/userland/Makefile.depend projects/vnet/targets/pseudo/userland/lib/Makefile.depend projects/vnet/targets/pseudo/userland/libexec/Makefile.depend projects/vnet/tools/build/mk/OptionalObsoleteFiles.inc projects/vnet/tools/build/options/WITH_META_MODE projects/vnet/usr.bin/bmake/Makefile projects/vnet/usr.bin/elfcopy/Makefile projects/vnet/usr.bin/getent/getent.1 projects/vnet/usr.bin/getent/getent.c projects/vnet/usr.bin/iscsictl/iscsictl.c projects/vnet/usr.sbin/acpi/iasl/Makefile projects/vnet/usr.sbin/bluetooth/btpand/btpand.c projects/vnet/usr.sbin/bsnmpd/bsnmpd/Makefile projects/vnet/usr.sbin/ctladm/ctladm.c projects/vnet/usr.sbin/ctld/ctld.h projects/vnet/usr.sbin/ctld/kernel.c projects/vnet/usr.sbin/ctld/login.c projects/vnet/usr.sbin/pw/pw_group.c projects/vnet/usr.sbin/pw/pw_user.c Directory Properties: projects/vnet/ (props changed) projects/vnet/contrib/bmake/ (props changed) projects/vnet/contrib/elftoolchain/ (props changed) projects/vnet/contrib/elftoolchain/brandelf/ (props changed) projects/vnet/contrib/elftoolchain/elfdump/ (props changed) projects/vnet/contrib/libucl/ (props changed) projects/vnet/contrib/one-true-awk/ (props changed) projects/vnet/crypto/openssl/ (props changed) projects/vnet/gnu/usr.bin/cc/cc_tools/ (props changed) projects/vnet/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/vnet/Makefile ============================================================================== --- projects/vnet/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -103,7 +103,9 @@ # This is included so CC is set to ccache for -V, and COMPILER_TYPE/VERSION # can be cached for sub-makes. +.if ${MAKE_VERSION} >= 20140620 .include <bsd.compiler.mk> +.endif # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. @@ -162,17 +164,26 @@ _MAKEOBJDIRPREFIX!= /usr/bin/env -i PATH # We cannot blindly use a make which may not be the one we want # so be exlicit - until all choice is removed. WANT_MAKE= bmake +.if !empty(.MAKE.MODE:Mmeta) +# 20160604 - support missing-meta,missing-filemon and performance improvements +WANT_MAKE_VERSION= 20160604 +.else # 20160220 - support .dinclude for FAST_DEPEND. WANT_MAKE_VERSION= 20160220 +.endif MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE} .if defined(.PARSEDIR) HAVE_MAKE= bmake .else HAVE_MAKE= fmake .endif +.if ${HAVE_MAKE} != ${WANT_MAKE} || \ + (defined(WANT_MAKE_VERSION) && ${MAKE_VERSION} < ${WANT_MAKE_VERSION}) +NEED_MAKE_UPGRADE= t +.endif .if exists(${MYMAKE}) SUB_MAKE:= ${MYMAKE} -m ${.CURDIR}/share/mk -.elif ${WANT_MAKE} != ${HAVE_MAKE} +.elif defined(NEED_MAKE_UPGRADE) # It may not exist yet but we may cause it to. # In the case of fmake, upgrade_checks may cause a newer version to be built. SUB_MAKE= `test -x ${MYMAKE} && echo ${MYMAKE} || echo ${MAKE}` \ @@ -313,8 +324,7 @@ kernel: buildkernel installkernel # for building the world. # upgrade_checks: -.if ${HAVE_MAKE} != ${WANT_MAKE} || \ - (defined(WANT_MAKE_VERSION) && ${MAKE_VERSION} < ${WANT_MAKE_VERSION}) +.if defined(NEED_MAKE_UPGRADE) @${_+_}(cd ${.CURDIR} && ${MAKE} ${WANT_MAKE:S,^f,,}) .endif Modified: projects/vnet/Makefile.inc1 ============================================================================== --- projects/vnet/Makefile.inc1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/Makefile.inc1 Mon Jun 6 10:21:53 2016 (r301499) @@ -99,7 +99,7 @@ _expected_compiler_type= gcc .if ${_expected_compiler_type} == "clang" CROSS_COMPILER_FREEBSD_VERSION!= \ awk '$$2 == "FREEBSD_CC_VERSION" {printf("%d\n", $$3)}' \ - ${SRCDIR}/lib/clang/include/clang/Basic/Version.inc || echo unknown + ${SRCDIR}/lib/clang/freebsd_cc_version.h || echo unknown CROSS_COMPILER_VERSION!= \ awk '$$2 == "CLANG_VERSION" {split($$3, a, "."); print a[1] * 10000 + a[2] * 100 + a[3]}' \ ${SRCDIR}/lib/clang/include/clang/Basic/Version.inc || echo unknown @@ -118,9 +118,6 @@ CROSS_COMPILER_VERSION!= \ # Everything matches, disable the bootstrap compiler. MK_CLANG_BOOTSTRAP= no MK_GCC_BOOTSTRAP= no -CROSSENV+= COMPILER_VERSION=${COMPILER_VERSION} \ - COMPILER_TYPE=${COMPILER_TYPE} \ - COMPILER_FREEBSD_VERSION=${COMPILER_FREEBSD_VERSION} .if make(buildworld) .info SYSTEM_COMPILER: Determined that CC=${CC} matches the source tree. Not bootstrapping a cross-compiler. .endif @@ -128,6 +125,21 @@ CROSSENV+= COMPILER_VERSION=${COMPILER_V .endif # ${_expected_compiler_type} == ${COMPILER_TYPE} .endif # ${XCC:N${CCACHE_BIN}:M/*} +# For installworld need to ensure that the looked-up compiler metadata is +# passed along rather than trying to run cc from the restricted +# STRICTTMPPATH. +.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" +.if !defined(X_COMPILER_TYPE) +CROSSENV+= COMPILER_VERSION=${COMPILER_VERSION} \ + COMPILER_TYPE=${COMPILER_TYPE} \ + COMPILER_FREEBSD_VERSION=${COMPILER_FREEBSD_VERSION} +.else +CROSSENV+= COMPILER_VERSION=${X_COMPILER_VERSION} \ + COMPILER_TYPE=${X_COMPILER_TYPE} \ + COMPILER_FREEBSD_VERSION=${X_COMPILER_FREEBSD_VERSION} +.endif +.endif + # Handle external binutils. .if defined(CROSS_TOOLCHAIN_PREFIX) CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX} @@ -419,6 +431,9 @@ PACKAGE= kernel # BOOTSTRAPPING?= 0 +# Keep these in sync +MINIMUM_SUPPORTED_OSREL?= 900044 +MINIMUM_SUPPORTED_REL?= 9.1 # Common environment for world related stages CROSSENV+= MAKEOBJDIRPREFIX=${OBJTREE} \ @@ -1500,8 +1515,8 @@ _elftoolchain_libs= lib/libelf lib/libdw .endif legacy: .PHONY -.if ${BOOTSTRAPPING} < 800107 && ${BOOTSTRAPPING} != 0 - @echo "ERROR: Source upgrades from versions prior to 8.0 are not supported."; \ +.if ${BOOTSTRAPPING} < ${MINIMUM_SUPPORTED_OSREL} && ${BOOTSTRAPPING} != 0 + @echo "ERROR: Source upgrades from versions prior to ${MINIMUM_SUPPORTED_REL} are not supported."; \ false .endif .for _tool in tools/build ${_elftoolchain_libs} @@ -1509,8 +1524,9 @@ legacy: .PHONY cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy includes; \ - ${MAKE} DIRPRFX=${_tool}/ all; \ - ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy install + ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no all; \ + ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no \ + DESTDIR=${MAKEOBJDIRPREFIX}/legacy install .endfor # Modified: projects/vnet/bin/sh/Makefile ============================================================================== --- projects/vnet/bin/sh/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/bin/sh/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -39,6 +39,7 @@ CLEANFILES+= ${GENSRCS} ${GENHDRS} build-tools: mknodes mksyntax .ORDER: builtins.c builtins.h +builtins.h: .NOMETA builtins.c builtins.h: mkbuiltins builtins.def sh ${.CURDIR}/mkbuiltins ${.CURDIR} @@ -51,10 +52,12 @@ mknodes: mknodes.o ${BUILD_TOOLS_META} mksyntax: mksyntax.o ${BUILD_TOOLS_META} .ORDER: nodes.c nodes.h +nodes.h: .NOMETA nodes.c nodes.h: mknodes nodetypes nodes.c.pat ${BTOOLSPATH:U.}/mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat .ORDER: syntax.c syntax.h +syntax.h: .NOMETA syntax.c syntax.h: mksyntax ${BTOOLSPATH:U.}/mksyntax Modified: projects/vnet/bin/sh/miscbltin.c ============================================================================== --- projects/vnet/bin/sh/miscbltin.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/bin/sh/miscbltin.c Mon Jun 6 10:21:53 2016 (r301499) @@ -406,7 +406,7 @@ static const struct limits limits[] = { { "swap limit", "kbytes", RLIMIT_SWAP, 1024, 'w' }, #endif #ifdef RLIMIT_SBSIZE - { "sbsize", "bytes", RLIMIT_SBSIZE, 1, 'b' }, + { "socket buffer size", "bytes", RLIMIT_SBSIZE, 1, 'b' }, #endif #ifdef RLIMIT_NPTS { "pseudo-terminals", (char *)0, RLIMIT_NPTS, 1, 'p' }, @@ -415,7 +415,7 @@ static const struct limits limits[] = { { "kqueues", (char *)0, RLIMIT_KQUEUES, 1, 'k' }, #endif #ifdef RLIMIT_UMTXP - { "umtxp", (char *)0, RLIMIT_UMTXP, 1, 'o' }, + { "umtx shared locks", (char *)0, RLIMIT_UMTXP, 1, 'o' }, #endif { (char *) 0, (char *)0, 0, 0, '\0' } }; Modified: projects/vnet/contrib/bmake/ChangeLog ============================================================================== --- projects/vnet/contrib/bmake/ChangeLog Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/ChangeLog Mon Jun 6 10:21:53 2016 (r301499) @@ -1,3 +1,26 @@ +2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160604 + Merge with NetBSD make, pick up + o meta.c: missing filemon data is only relevant if we read a + meta file. + Also do not return oodate for a missing metafile if gn->path + points to .CURDIR + +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160602 + Merge with NetBSD make, pick up + o cached_realpath(): avoid hitting filesystem more than necessary. + o meta.c: refactor need_meta decision, add knobs for + missing meta file and filemon data wrt out-of-datedness. + +2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160528 + + * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160512 Modified: projects/vnet/contrib/bmake/Makefile ============================================================================== --- projects/vnet/contrib/bmake/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.63 2016/05/12 20:34:46 sjg Exp $ +# $Id: Makefile,v 1.66 2016/06/04 22:21:15 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20160512 +_MAKE_VERSION= 20160604 PROG= bmake Modified: projects/vnet/contrib/bmake/bmake.1 ============================================================================== --- projects/vnet/contrib/bmake/bmake.1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/bmake.1 Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -846,7 +846,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -870,6 +870,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. Modified: projects/vnet/contrib/bmake/bmake.cat1 ============================================================================== --- projects/vnet/contrib/bmake/bmake.cat1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/bmake.cat1 Mon Jun 6 10:21:53 2016 (r301499) @@ -531,37 +531,51 @@ VVAARRIIAABBLLEE AASSSSIIGG mode that bbmmaakkee runs in. It can contain a number of key- words: - _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" mode. + _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" + mode. - _m_e_t_a Puts bbmmaakkee into "meta" mode, where meta files - are created for each target to capture the - command run, the output generated and if - filemon(4) is available, the system calls - which are of interest to bbmmaakkee. The captured - output can be very useful when diagnosing - errors. - - _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta files - in `_._C_U_R_D_I_R'. This can be overridden by set- - ting _b_f to a value which represents True. - - _e_n_v For debugging, it can be useful to include - the environment in the .meta file. - - _v_e_r_b_o_s_e If in "meta" mode, print a clue about the - target being built. This is useful if the - build is otherwise running silently. The - message printed the value of: - _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. - - _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which are simply - not stable. This keyword causes them to be - ignored for determining whether a target is - out of date in "meta" mode. See also - ..NNOOMMEETTAA__CCMMPP. + _m_e_t_a Puts bbmmaakkee into "meta" mode, where + meta files are created for each tar- + get to capture the command run, the + output generated and if filemon(4) + is available, the system calls which + are of interest to bbmmaakkee. The cap- + tured output can be very useful when + diagnosing errors. + + _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta + files in `_._C_U_R_D_I_R'. This can be + overridden by setting _b_f to a value + which represents True. + + _m_i_s_s_i_n_g_-_m_e_t_a_= _b_f If _b_f is True, then a missing .meta + file makes the target out-of-date. + + _m_i_s_s_i_n_g_-_f_i_l_e_m_o_n_= _b_f If _b_f is True, then missing filemon + data makes the target out-of-date. + + _n_o_f_i_l_e_m_o_n Do not use filemon(4). + + _e_n_v For debugging, it can be useful to + include the environment in the .meta + file. + + _v_e_r_b_o_s_e If in "meta" mode, print a clue + about the target being built. This + is useful if the build is otherwise + running silently. The message + printed the value of: + _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. + + _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which + are simply not stable. This keyword + causes them to be ignored for deter- + mining whether a target is out of + date in "meta" mode. See also + ..NNOOMMEETTAA__CCMMPP. - _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is created, - mark the target ..SSIILLEENNTT. + _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is + created, mark the target ..SSIILLEENNTT. _._M_A_K_E_._M_E_T_A_._B_A_I_L_I_W_I_C_K In "meta" mode, provides a list of prefixes which match @@ -1475,4 +1489,4 @@ BBUUGGSS There is no way of escaping a space character in a filename. -NetBSD 5.1 May 10, 2016 NetBSD 5.1 +NetBSD 5.1 June 2, 2016 NetBSD 5.1 Modified: projects/vnet/contrib/bmake/boot-strap ============================================================================== --- projects/vnet/contrib/bmake/boot-strap Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/boot-strap Mon Jun 6 10:21:53 2016 (r301499) @@ -111,7 +111,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: boot-strap,v 1.48 2015/10/25 05:20:48 sjg Exp $ +# $Id: boot-strap,v 1.49 2016/05/29 00:09:14 sjg Exp $ # # @(#) Copyright (c) 2001 Simon J. Gerraty # @@ -451,7 +451,7 @@ op_all() { op_install else op_test - MAKE_VERSION=`sed -n '/^MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` + MAKE_VERSION=`sed -n '/^_MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` echo You can install by running: echo echo $0 $cmd_args op=install Modified: projects/vnet/contrib/bmake/main.c ============================================================================== --- projects/vnet/contrib/bmake/main.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/main.c Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $ */ +/* $NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"; #else #include <sys/cdefs.h> #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -1014,7 +1014,7 @@ main(int argc, char **argv) /* * A relative path, canonicalize it. */ - p1 = realpath(argv[0], mdpath); + p1 = cached_realpath(argv[0], mdpath); if (!p1 || *p1 != '/' || stat(p1, &sb) < 0) { p1 = argv[0]; /* realpath failed */ } @@ -1884,6 +1884,40 @@ usage(void) } +/* + * realpath(3) can get expensive, cache results... + */ +char * +cached_realpath(const char *pathname, char *resolved) +{ + static GNode *cache; + char *rp, *cp; + + if (!pathname || !pathname[0]) + return NULL; + + if (!cache) { + cache = Targ_NewGN("Realpath"); +#ifndef DEBUG_REALPATH_CACHE + cache->flags = INTERNAL; +#endif + } + + rp = Var_Value(pathname, cache, &cp); + if (rp) { + /* a hit */ + if (resolved) + strlcpy(resolved, rp, MAXPATHLEN); + else + resolved = bmake_strdup(rp); + } else { + if ((rp = realpath(pathname, resolved))) { + Var_Set(pathname, rp, cache, 0); + } + } + return rp ? resolved : NULL; +} + int PrintAddr(void *a, void *b) { Modified: projects/vnet/contrib/bmake/make-bootstrap.sh.in ============================================================================== --- projects/vnet/contrib/bmake/make-bootstrap.sh.in Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make-bootstrap.sh.in Mon Jun 6 10:21:53 2016 (r301499) @@ -13,7 +13,7 @@ esac CC="@CC@" CFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@" -MAKE_VERSION=`sed -n '/^MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` +MAKE_VERSION=`sed -n '/^_MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` MDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \ -D@force_machine@MACHINE=\"@machine@\" -DMACHINE_ARCH=\"@machine_arch@\" \ Modified: projects/vnet/contrib/bmake/make.1 ============================================================================== --- projects/vnet/contrib/bmake/make.1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make.1 Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -857,7 +857,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -881,6 +881,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. Modified: projects/vnet/contrib/bmake/make.h ============================================================================== --- projects/vnet/contrib/bmake/make.h Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make.h Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.98 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: make.h,v 1.99 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -199,6 +199,7 @@ typedef struct GNode { #define DONE_ALLSRC 0x40 /* We do it once only */ #define CYCLE 0x1000 /* Used by MakePrintStatus */ #define DONECYCLE 0x2000 /* Used by MakePrintStatus */ +#define INTERNAL 0x4000 /* Internal use only */ enum enum_made { UNMADE, DEFERRED, REQUESTED, BEINGMADE, MADE, UPTODATE, ERROR, ABORTED Modified: projects/vnet/contrib/bmake/meta.c ============================================================================== --- projects/vnet/contrib/bmake/meta.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/meta.c Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: meta.c,v 1.57 2016/05/12 20:28:34 sjg Exp $ */ +/* $NetBSD: meta.c,v 1.60 2016/06/04 22:17:14 sjg Exp $ */ /* * Implement 'meta' mode. @@ -73,6 +73,8 @@ static char *metaIgnorePathsStr; /* stri Boolean useMeta = FALSE; static Boolean useFilemon = FALSE; static Boolean writeMeta = FALSE; +static Boolean metaMissing = FALSE; /* oodate if missing */ +static Boolean filemonMissing = FALSE; /* oodate if missing */ static Boolean metaEnv = FALSE; /* don't save env unless asked */ static Boolean metaVerbose = FALSE; static Boolean metaIgnoreCMDs = FALSE; /* ignore CMDs in .meta files */ @@ -237,24 +239,13 @@ eat_dots(char *buf, size_t bufsz, int do static char * meta_name(struct GNode *gn, char *mname, size_t mnamelen, const char *dname, - const char *tname) + const char *tname, + const char *cwd) { char buf[MAXPATHLEN]; - char cwd[MAXPATHLEN]; char *rp; char *cp; char *tp; - char *p[4]; /* >= number of possible uses */ - int i; - - i = 0; - if (!dname) - dname = Var_Value(".OBJDIR", gn, &p[i++]); - if (!tname) - tname = Var_Value(TARGET, gn, &p[i++]); - - if (realpath(dname, cwd)) - dname = cwd; /* * Weed out relative paths from the target file name. @@ -264,7 +255,7 @@ meta_name(struct GNode *gn, char *mname, * basename as given to us. */ if ((cp = strrchr(tname, '/'))) { - if (realpath(tname, buf)) { + if (cached_realpath(tname, buf)) { if ((rp = strrchr(buf, '/'))) { rp++; cp++; @@ -309,9 +300,6 @@ meta_name(struct GNode *gn, char *mname, } } free(tp); - for (i--; i >= 0; i--) { - free(p[i]); - } return (mname); } @@ -391,29 +379,26 @@ printCMD(void *cmdp, void *mfpp) */ #define SKIP_META_TYPE(_type) do { \ if ((gn->type & __CONCAT(OP_, _type))) { \ - if (DEBUG(META)) { \ + if (verbose) { \ fprintf(debug_file, "Skipping meta for %s: .%s\n", \ gn->name, __STRING(_type)); \ } \ - return (NULL); \ + return FALSE; \ } \ } while (0) -static FILE * -meta_create(BuildMon *pbm, GNode *gn) + +/* + * Do we need/want a .meta file ? + */ +static Boolean +meta_needed(GNode *gn, const char *dname, const char *tname, + char *objdir, int verbose) { - meta_file_t mf; - char buf[MAXPATHLEN]; - char objdir[MAXPATHLEN]; - char **ptr; - const char *dname; - const char *tname; - char *fname; - const char *cp; - char *p[4]; /* >= possible uses */ - int i; struct stat fs; + if (verbose) + verbose = DEBUG(META); /* This may be a phony node which we don't want meta data for... */ /* Skip .meta for .BEGIN, .END, .ERROR etc as well. */ @@ -426,48 +411,70 @@ meta_create(BuildMon *pbm, GNode *gn) SKIP_META_TYPE(MAKE); } - mf.fp = NULL; - - i = 0; - - dname = Var_Value(".OBJDIR", gn, &p[i++]); - tname = Var_Value(TARGET, gn, &p[i++]); - - /* The object directory may not exist. Check it.. */ - if (stat(dname, &fs) != 0) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", - gn->name); - goto out; - } /* Check if there are no commands to execute. */ if (Lst_IsEmpty(gn->commands)) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: no commands\n", gn->name); - goto out; + return FALSE; + } + if ((gn->type & (OP_META|OP_SUBMAKE)) == OP_SUBMAKE) { + /* OP_SUBMAKE is a bit too aggressive */ + if (Lst_ForEach(gn->commands, is_submake, gn)) { + if (DEBUG(META)) + fprintf(debug_file, "Skipping meta for %s: .SUBMAKE\n", + gn->name); + return FALSE; + } + } + + /* The object directory may not exist. Check it.. */ + if (stat(dname, &fs) != 0) { + if (verbose) + fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", + gn->name); + return FALSE; } /* make sure these are canonical */ - if (realpath(dname, objdir)) + if (cached_realpath(dname, objdir)) dname = objdir; /* If we aren't in the object directory, don't create a meta file. */ if (!metaCurdirOk && strcmp(curdir, dname) == 0) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: .OBJDIR == .CURDIR\n", gn->name); - goto out; - } - if (!(gn->type & OP_META)) { - /* We do not generate .meta files for sub-makes */ - if (Lst_ForEach(gn->commands, is_submake, gn)) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: .MAKE\n", - gn->name); - goto out; - } + return FALSE; } + return TRUE; +} + + +static FILE * +meta_create(BuildMon *pbm, GNode *gn) +{ + meta_file_t mf; + char buf[MAXPATHLEN]; + char objdir[MAXPATHLEN]; + char **ptr; + const char *dname; + const char *tname; + char *fname; + const char *cp; + char *p[4]; /* >= possible uses */ + int i; + + mf.fp = NULL; + i = 0; + + dname = Var_Value(".OBJDIR", gn, &p[i++]); + tname = Var_Value(TARGET, gn, &p[i++]); + + /* if this succeeds objdir is realpath of dname */ + if (!meta_needed(gn, dname, tname, objdir, TRUE)) + goto out; + dname = objdir; if (metaVerbose) { char *mp; @@ -492,7 +499,7 @@ meta_create(BuildMon *pbm, GNode *gn) goto out; fname = meta_name(gn, pbm->meta_fname, sizeof(pbm->meta_fname), - dname, tname); + dname, tname, objdir); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -561,6 +568,10 @@ meta_init(void) } +#define get_mode_bf(bf, token) \ + if ((cp = strstr(make_mode, token))) \ + bf = boolValue(&cp[sizeof(token) - 1]) + /* * Initialization we need after reading makefiles. */ @@ -583,17 +594,13 @@ meta_mode_init(const char *make_mode) writeMeta = FALSE; if (strstr(make_mode, "nofilemon")) useFilemon = FALSE; - if ((cp = strstr(make_mode, "curdirok="))) { - metaCurdirOk = boolValue(&cp[9]); - } - if ((cp = strstr(make_mode, "silent="))) { - metaSilent = boolValue(&cp[7]); - } if (strstr(make_mode, "ignore-cmd")) metaIgnoreCMDs = TRUE; - /* for backwards compatability */ - Var_Set(".MAKE.META_CREATED", "${.MAKE.META.CREATED}", VAR_GLOBAL, 0); - Var_Set(".MAKE.META_FILES", "${.MAKE.META.FILES}", VAR_GLOBAL, 0); + if (useFilemon) + get_mode_bf(filemonMissing, "missing-filemon="); + get_mode_bf(metaCurdirOk, "curdirok="); + get_mode_bf(metaMissing, "missing-meta="); + get_mode_bf(metaSilent, "silent="); } if (metaVerbose && !Var_Exists(MAKE_META_PREFIX, VAR_GLOBAL)) { /* @@ -921,6 +928,8 @@ meta_oodate(GNode *gn, Boolean oodate) char fname1[MAXPATHLEN]; char fname2[MAXPATHLEN]; char fname3[MAXPATHLEN]; + const char *dname; + const char *tname; char *p; char *cp; char *link_src; @@ -930,10 +939,23 @@ meta_oodate(GNode *gn, Boolean oodate) FILE *fp; Boolean needOODATE = FALSE; Lst missingFiles; - + char *pa[4]; /* >= possible uses */ + int i; + int have_filemon = FALSE; + if (oodate) return oodate; /* we're done */ + i = 0; + + dname = Var_Value(".OBJDIR", gn, &pa[i++]); + tname = Var_Value(TARGET, gn, &pa[i++]); + + /* if this succeeds fname3 is realpath of dname */ + if (!meta_needed(gn, dname, tname, fname3, FALSE)) + goto oodate_out; + dname = fname3; + missingFiles = Lst_Init(FALSE); /* @@ -944,7 +966,7 @@ meta_oodate(GNode *gn, Boolean oodate) */ Make_DoAllVar(gn); - meta_name(gn, fname, sizeof(fname), NULL, NULL); + meta_name(gn, fname, sizeof(fname), dname, tname, dname); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -957,7 +979,6 @@ meta_oodate(GNode *gn, Boolean oodate) int lineno = 0; int lastpid = 0; int pid; - int f = 0; int x; LstNode ln; struct stat fs; @@ -996,13 +1017,13 @@ meta_oodate(GNode *gn, Boolean oodate) link_src = NULL; move_target = NULL; /* Find the start of the build monitor section. */ - if (!f) { + if (!have_filemon) { if (strncmp(buf, "-- filemon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } if (strncmp(buf, "# buildmon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } } @@ -1014,7 +1035,7 @@ meta_oodate(GNode *gn, Boolean oodate) fprintf(debug_file, "%s: %d: %s\n", fname, lineno, buf); #endif strsep(&p, " "); - if (f) { + if (have_filemon) { /* * We are in the 'filemon' output section. * Each record from filemon follows the general form: @@ -1239,7 +1260,7 @@ meta_oodate(GNode *gn, Boolean oodate) * they are _expected_ to change. */ if (*p == '/') { - realpath(p, fname1); /* clean it up */ + cached_realpath(p, fname1); /* clean it up */ if (Lst_ForEach(metaIgnorePaths, prefix_match, fname1)) { #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -1324,7 +1345,7 @@ meta_oodate(GNode *gn, Boolean oodate) oodate = TRUE; } else if (S_ISDIR(fs.st_mode)) { /* Update the latest directory. */ - realpath(p, latestdir); + cached_realpath(p, latestdir); } } else if (errno == ENOENT && *p == '/' && strncmp(p, cwd, cwdlen) != 0) { @@ -1434,12 +1455,27 @@ meta_oodate(GNode *gn, Boolean oodate) fname, (char *)Lst_Datum(Lst_First(missingFiles))); oodate = TRUE; } - } else { - if ((gn->type & OP_META)) { + if (!oodate && !have_filemon && filemonMissing) { if (DEBUG(META)) - fprintf(debug_file, "%s: required but missing\n", fname); + fprintf(debug_file, "%s: missing filemon data\n", fname); oodate = TRUE; } + } else { + if (writeMeta && metaMissing) { + cp = NULL; + + /* if target is in .CURDIR we do not need a meta file */ + if (gn->path && (cp = strrchr(gn->path, '/')) && cp > gn->path) { + if (strncmp(curdir, gn->path, (cp - gn->path)) != 0) { + cp = NULL; /* not in .CURDIR */ + } + } + if (!cp) { + if (DEBUG(META)) + fprintf(debug_file, "%s: required but missing\n", fname); + oodate = TRUE; + } + } } Lst_Destroy(missingFiles, (FreeProc *)free); @@ -1454,6 +1490,11 @@ meta_oodate(GNode *gn, Boolean oodate) Var_Set(OODATE, Var_Value(ALLSRC, gn, &cp), gn, 0); free(cp); } + + oodate_out: + for (i--; i >= 0; i--) { + free(pa[i]); + } return oodate; } Modified: projects/vnet/contrib/bmake/mk/ChangeLog ============================================================================== --- projects/vnet/contrib/bmake/mk/ChangeLog Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/ChangeLog Mon Jun 6 10:21:53 2016 (r301499) @@ -1,3 +1,16 @@ +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160602 + * meta.autodep.mk: when passing META_FILES to gendirdeps.mk + do not apply :T to META_XTRAS + patch from Bryan Drewery at FreeBSD.org. + +2016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160530 + * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH + make it so. + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * install-mk (MK_VERSION): 20160512 Modified: projects/vnet/contrib/bmake/mk/dpadd.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/dpadd.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/dpadd.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: dpadd.mk,v 1.21 2016/05/18 20:54:55 sjg Exp $ +# $Id: dpadd.mk,v 1.22 2016/05/31 23:30:59 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -100,7 +100,7 @@ __dpadd_libs := ${DPADD:M*/lib*} # Order -L's to search ours first. # Avoids picking up old versions already installed. -__dpadd_libdirs := ${__dpadd_libs}:R:H:S/^/-L/g:O:u:N-L} +__dpadd_libdirs := ${__dpadd_libs:R:H:S/^/-L/g:O:u:N-L} LDADD += ${__dpadd_libdirs:M-L${OBJTOP}/*} LDADD += ${__dpadd_libdirs:N-L${OBJTOP}/*:N-L${HOST_LIBDIR:U/usr/lib}} .if defined(HOST_LIBDIR) && ${HOST_LIBDIR} != "/usr/lib" Modified: projects/vnet/contrib/bmake/mk/install-mk ============================================================================== --- projects/vnet/contrib/bmake/mk/install-mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/install-mk Mon Jun 6 10:21:53 2016 (r301499) @@ -55,7 +55,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: install-mk,v 1.126 2016/05/18 20:54:55 sjg Exp $ +# $Id: install-mk,v 1.128 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20160512 +MK_VERSION=20160602 OWNER= GROUP= MODE=444 Modified: projects/vnet/contrib/bmake/mk/meta.autodep.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/meta.autodep.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/meta.autodep.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.44 2016/04/07 17:00:38 sjg Exp $ +# $Id: meta.autodep.mk,v 1.45 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -266,7 +266,7 @@ ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/ DPADD='${FORCE_DPADD:O:u}' ${_gendirdeps_mutex} \ MAKESYSPATH=${_makesyspath} \ ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE} \ - META_FILES='${META_XTRAS:T:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') + META_FILES='${META_XTRAS:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') @test -s $@ && touch $@; : .endif Modified: projects/vnet/contrib/bmake/mk/meta.stage.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/meta.stage.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/meta.stage.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: meta.stage.mk,v 1.44 2016/03/16 18:21:23 sjg Exp $ +# $Id: meta.stage.mk,v 1.45 2016/05/26 03:59:09 sjg Exp $ # # @(#) Copyright (c) 2011, Simon J. Gerraty # @@ -270,6 +270,8 @@ beforeinstall: .dirdep .NOPATH: ${STAGE_FILES} .if !empty(STAGE_TARGETS) +.NOPATH: ${CLEANFILES} + MK_STALE_STAGED?= no .if ${MK_STALE_STAGED} == "yes" all: stale_staged Modified: projects/vnet/contrib/bmake/nonints.h ============================================================================== --- projects/vnet/contrib/bmake/nonints.h Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/nonints.h Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.72 2016/02/18 20:25:08 sjg Exp $ */ +/* $NetBSD: nonints.h,v 1.73 2016/06/03 01:21:59 sjg Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 @@ -122,6 +122,7 @@ void execError(const char *, const char char *getTmpdir(void); Boolean s2Boolean(const char *, Boolean); Boolean getBoolean(const char *, Boolean); +char *cached_realpath(const char *, char *); /* parse.c */ void Parse_Error(int, const char *, ...) MAKE_ATTR_PRINTFLIKE(2, 3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606061021.u56ALrF3075840>