From nobody Wed Feb 16 05:38:56 2022 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 5704519C7E23; Wed, 16 Feb 2022 05:38:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Jz6Fr5khzz3l8p; Wed, 16 Feb 2022 05:38:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1644989936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UGyq73MgpZYYMV/MLszRvz1W5BBxttMovqG2UFDTgMU=; b=Jfl4pHS6ddb9ESMBCjPO67CPoKqW6CzKsyUyNbJHC+My9jkCNehmwE/N+WINZwYNUaaQk1 h7k8FMQnzEPPMHamb7BewZCemsCRiOOpt5iMTmzjqV4mQH1HHJew7tUh9PujDV5T4DytZm JAKPj++5qFEWMd9zHUQLnGwq7wLEGL5zhwUq784N34YMQ/TUncDJ8f4ht9K+TbLw8DPsGz oEQ7pHJQ0dunO8aJcB2gdqLWLWx3ztXcEt8TD2sCP7pKbpNAmkBRLeRQyfk4ic9Zq6Wzvv YKZ8C/0d6hyR2bpKUK6gEZAM9X6jR6IcKfsfW8kDSCBB2M4S+4xNtHVjTSR4bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 378EE107C7; Wed, 16 Feb 2022 05:38:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21G5cuCP059699; Wed, 16 Feb 2022 05:38:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21G5cuJF059698; Wed, 16 Feb 2022 05:38:56 GMT (envelope-from git) Date: Wed, 16 Feb 2022 05:38:56 GMT Message-Id: <202202160538.21G5cuJF059698@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Simon J. Gerraty" Subject: git: 7f1879d674dc - stable/13 - After-import bmake-20211212 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7f1879d674dc6eb35a3cab69f1f110dac2f22820 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1644989937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UGyq73MgpZYYMV/MLszRvz1W5BBxttMovqG2UFDTgMU=; b=iq59iHrcqOCvYOUtt48T6idjoOPT7ExZlhkF8dVvXypkb/2SgP8X+tPBOC+rFxiO4//MO0 ODE5uf3qEjJW/9ezmz1ypkRwqG+3MPSGqxG0gfBVDB8V+0uIO6nCi7pYKz4Tt5zbh1ddCG eswLBhtcptzKQBC0qzply92uezshsuXz/0JxV5YFOUmf6L+EGfJl0gJ6o4BmREBSkYmcsW ot95b3KLRblqZTNqWraRR02Ln9u4SyU1JSaPR08mKt8fZj+LIZqV374Gmp3Xr3yBL4pl7D 9PLElMyvjqIciv0efJpUKR6NUvgz2yG60XHuoDjgxoVYQO4SAX2QSdW3H/Do9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1644989937; a=rsa-sha256; cv=none; b=I7Kx/RywqVEXNlQRLQdGfYB92mWn4mimhMkrObnYz2BvA0cSWsrycwVuyz0HnHiplY7hgO SgrfBDsc7Le+z2IupleNT+z2pYMCDpbFLzdTQ2o1Qxv1tcBHrS4p5wIGIN+GhQKrchkl9a tJ9/sgaaAncgmev3dy4l2gCmBAYTfDB2Q1RnuluwG6iEeepx3x3kQcH75bacPUeJoBysmt eky8j/Lhv3Fni0xeBWhkv2/kvXeNU7m45FLcgD1/w9zVHnUifcNOKg1cwHWOwlFx9QPqgY 44w8yFY1aFPpWu8MhWHzoIW3OTS3fMvwD2ngVpjBqDgXDl9hXSdzpYb57uyn9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=7f1879d674dc6eb35a3cab69f1f110dac2f22820 commit 7f1879d674dc6eb35a3cab69f1f110dac2f22820 Author: Simon J. Gerraty AuthorDate: 2021-12-18 18:14:39 +0000 Commit: Simon J. Gerraty CommitDate: 2022-02-16 05:37:07 +0000 After-import bmake-20211212 (cherry picked from commit 1c04cf7d5415a404722bfa182013efa028280736) --- usr.bin/bmake/Makefile | 5 +-- usr.bin/bmake/Makefile.config | 2 +- usr.bin/bmake/config.h | 50 ++++++++++++++++++++- usr.bin/bmake/unit-tests/Makefile | 75 ++++++++++++++++++++++++++------ usr.bin/bmake/unit-tests/Makefile.config | 4 +- 5 files changed, 116 insertions(+), 20 deletions(-) diff --git a/usr.bin/bmake/Makefile b/usr.bin/bmake/Makefile index 272ac6cf3b5a..14389de562dd 100644 --- a/usr.bin/bmake/Makefile +++ b/usr.bin/bmake/Makefile @@ -12,7 +12,7 @@ CFLAGS+= -I${.CURDIR} CLEANDIRS+= FreeBSD CLEANFILES+= bootstrap -# $Id: Makefile,v 1.114 2020/11/13 21:47:25 sjg Exp $ +# $Id: Makefile,v 1.117 2021/12/04 18:51:30 sjg Exp $ PROG?= ${.CURDIR:T} @@ -22,7 +22,6 @@ SRCS= \ compat.c \ cond.c \ dir.c \ - enum.c \ for.c \ hash.c \ job.c \ @@ -96,7 +95,7 @@ SUBDIR+= unit-tests MAN= ${PROG}.1 MAN1= ${MAN} -.if (${PROG} != "make") +.if ${PROG} != "make" CLEANFILES+= my.history .if make(${MAN}) || !exists(${srcdir}/${MAN}) my.history: diff --git a/usr.bin/bmake/Makefile.config b/usr.bin/bmake/Makefile.config index 36b1664be099..5433adefc218 100644 --- a/usr.bin/bmake/Makefile.config +++ b/usr.bin/bmake/Makefile.config @@ -7,7 +7,7 @@ SRCTOP?= ${.CURDIR:H:H} # things set by configure -_MAKE_VERSION?=20210621 +_MAKE_VERSION?=20211212 prefix?= /usr srcdir= ${SRCTOP}/contrib/bmake diff --git a/usr.bin/bmake/config.h b/usr.bin/bmake/config.h index 442ef7baba38..6c053cf96cfd 100644 --- a/usr.bin/bmake/config.h +++ b/usr.bin/bmake/config.h @@ -11,6 +11,9 @@ /* Shell spec to use by default */ /* #undef DEFSHELL_INDEX */ +/* Path of default shell */ +/* #undef DEFSHELL_PATH */ + /* Define to 1 if you have the header file. */ #define HAVE_AR_H 1 @@ -67,6 +70,9 @@ /* Define to 1 if you have the header file. */ #define HAVE_LIMITS_H 1 +/* Define to 1 if the system has the type `long long int'. */ +#define HAVE_LONG_LONG_INT 1 + /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 @@ -100,15 +106,36 @@ /* Define to 1 if you have the `setpgid' function. */ #define HAVE_SETPGID 1 +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT 1 + /* Define to 1 if you have the `setsid' function. */ #define HAVE_SETSID 1 /* Define to 1 if you have the `sigaction' function. */ #define HAVE_SIGACTION 1 +/* Define to 1 if you have the `sigaddset' function. */ +#define HAVE_SIGADDSET 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigprocmask' function. */ +#define HAVE_SIGPROCMASK 1 + +/* Define to 1 if you have the `sigsetmask' function. */ +#define HAVE_SIGSETMASK 1 + +/* Define to 1 if you have the `sigsuspend' function. */ +#define HAVE_SIGSUSPEND 1 + /* Define to 1 if you have the `sigvec' function. */ #define HAVE_SIGVEC 1 +/* Define to 1 if the system has the type `sig_atomic_t'. */ +#define HAVE_SIG_ATOMIC_T 1 + /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 @@ -145,6 +172,12 @@ /* Define to 1 if you have the `strtol' function. */ #define HAVE_STRTOL 1 +/* Define to 1 if you have the `strtoll' function. */ +#define HAVE_STRTOLL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + /* Define to 1 if `st_rdev' is a member of `struct stat'. */ #define HAVE_STRUCT_STAT_ST_RDEV 1 @@ -199,6 +232,9 @@ /* Define to 1 if you have the `unsetenv' function. */ #define HAVE_UNSETENV 1 +/* Define to 1 if the system has the type `unsigned long long int'. */ +#define HAVE_UNSIGNED_LONG_LONG_INT 1 + /* Define to 1 if you have the header file. */ #define HAVE_UTIME_H 1 @@ -245,7 +281,7 @@ #define PACKAGE_NAME "bmake" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "bmake 20210201" +#define PACKAGE_STRING "bmake 20211020" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "bmake" @@ -254,7 +290,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "20210201" +#define PACKAGE_VERSION "20211020" /* Define as the return type of signal handlers (`int' or `void'). */ #define RETSIGTYPE void @@ -326,6 +362,16 @@ /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int64_t */ + /* Define to `int' if does not define. */ /* #undef mode_t */ diff --git a/usr.bin/bmake/unit-tests/Makefile b/usr.bin/bmake/unit-tests/Makefile index d2efc5cce5b2..c03eab3d6a63 100644 --- a/usr.bin/bmake/unit-tests/Makefile +++ b/usr.bin/bmake/unit-tests/Makefile @@ -2,9 +2,9 @@ # See contrib/bmake/bsd.after-import.mk # # $FreeBSD$ -# $Id: Makefile,v 1.148 2021/06/16 19:18:56 sjg Exp $ +# $Id: Makefile,v 1.164 2021/12/12 22:50:00 sjg Exp $ # -# $NetBSD: Makefile,v 1.279 2021/06/16 09:39:48 rillig Exp $ +# $NetBSD: Makefile,v 1.288 2021/12/12 22:16:48 rillig Exp $ # # Unit tests for make(1) # @@ -171,6 +171,7 @@ TESTS+= directive-for TESTS+= directive-for-errors TESTS+= directive-for-escape TESTS+= directive-for-generating-endif +TESTS+= directive-for-if TESTS+= directive-for-lines TESTS+= directive-for-null TESTS+= directive-hyphen-include @@ -355,13 +356,16 @@ TESTS+= varmod-indirect TESTS+= varmod-l-name-to-value TESTS+= varmod-localtime TESTS+= varmod-loop +TESTS+= varmod-loop-delete TESTS+= varmod-loop-varname TESTS+= varmod-match TESTS+= varmod-match-escape TESTS+= varmod-no-match TESTS+= varmod-order +TESTS+= varmod-order-numeric TESTS+= varmod-order-reverse TESTS+= varmod-order-shuffle +TESTS+= varmod-order-string TESTS+= varmod-path TESTS+= varmod-quote TESTS+= varmod-quote-dollar @@ -419,6 +423,7 @@ TESTS+= varname-dot-parsedir TESTS+= varname-dot-parsefile TESTS+= varname-dot-path TESTS+= varname-dot-shell +TESTS+= varname-dot-suffixes TESTS+= varname-dot-targets TESTS+= varname-empty TESTS+= varname-make @@ -434,12 +439,41 @@ TESTS+= varparse-mod TESTS+= varparse-undef-partial TESTS+= varquote +# for now at least +.if ${.SHELL:T} == "ksh" +BROKEN_TESTS+= sh-flags +.endif +.if ${.MAKE.OS:NDarwin} == "" +BROKEN_TESTS+= shell-ksh +.endif +.if ${.MAKE.OS} == "SCO_SV" +BROKEN_TESTS+= \ + opt-debug-graph[23] \ + varmod-localtime \ + varmod-to-separator \ + +.if ${.SHELL:T} == "bash" +BROKEN_TESTS+= job-output-null +.else +BROKEN_TESTS+= \ + cmd-interrupt \ + job-flags \ + +.endif +.endif + +# Some tests just do not work on some platforms or environments +# so allow for some filtering. +.if !empty(BROKEN_TESTS) +.warning Skipping broken tests: ${BROKEN_TESTS:O:u} +TESTS:= ${TESTS:${BROKEN_TESTS:S,^,N,:ts:}} +.endif + # Ideas for more tests: # char-0020-space.mk # char-005C-backslash.mk # escape-cond-str.mk # escape-cond-func-arg.mk -# escape-cond-func-arg.mk # escape-varmod.mk # escape-varmod-define.mk # escape-varmod-match.mk @@ -461,7 +495,7 @@ ENV.envfirst= FROM_ENV=value-from-env ENV.varmisc= FROM_ENV=env ENV.varmisc+= FROM_ENV_BEFORE=env ENV.varmisc+= FROM_ENV_AFTER=env -ENV.varmod-localtime+= TZ=Europe/Berlin +ENV.varmod-localtime+= TZ=${UTC_1:UEurope/Berlin} ENV.varname-vpath+= VPATH=varname-vpath.dir:varname-vpath.dir2 # Override make flags for some of the tests; default is -k. @@ -494,7 +528,10 @@ SED_CMDS.job-output-long-lines= \ ${:D marker should always be at the beginning of the line. } \ -e '/^aa*--- job-b ---$$/d' \ -e '/^bb*--- job-a ---$$/d' -SED_CMDS.opt-chdir= -e 's,\(nonexistent\).[1-9][0-9]*,\1,' +SED_CMDS.opt-chdir= -e 's,\(nonexistent\).[1-9][0-9]*,\1,' \ + -e '/name/s,file,File,' \ + -e 's,no such,No such,' \ + -e 's,Filename,File name,' SED_CMDS.opt-debug-graph1= ${STD_SED_CMDS.dg1} SED_CMDS.opt-debug-graph2= ${STD_SED_CMDS.dg2} SED_CMDS.opt-debug-graph3= ${STD_SED_CMDS.dg3} @@ -515,11 +552,13 @@ SED_CMDS.sh-dots+= -e 's,^make: exec(\(.*\)) failed (.*)$$,,' SED_CMDS.sh-dots+= -e 's,^\(\*\*\* Error code \)[1-9][0-9]*,\1,' SED_CMDS.sh-errctl= ${STD_SED_CMDS.dj} SED_CMDS.sh-flags= ${STD_SED_CMDS.hide-from-output} +SED_CMDS.shell-csh= ${STD_SED_CMDS.white-space} SED_CMDS.suff-main+= ${STD_SED_CMDS.dg1} SED_CMDS.suff-main-several+= ${STD_SED_CMDS.dg1} SED_CMDS.suff-transform-debug+= ${STD_SED_CMDS.dg1} SED_CMDS.var-op-shell+= ${STD_SED_CMDS.shell} SED_CMDS.var-op-shell+= -e '/command/s,No such.*,not found,' +SED_CMDS.var-op-shell+= ${STD_SED_CMDS.white-space} SED_CMDS.vardebug+= -e 's,${.SHELL},,' SED_CMDS.varmod-subst-regex+= ${STD_SED_CMDS.regex} SED_CMDS.varname-dot-parsedir= -e '/in some cases/ s,^make: "[^"]*,make: ",' @@ -527,9 +566,7 @@ SED_CMDS.varname-dot-parsefile= -e '/in some cases/ s,^make: "[^"]*,make: ",g' -SED_CMDS.varname-empty+= -e '/\.PARSEDIR/d' -SED_CMDS.varname-empty+= -e '/\.SHELL/d' +SED_CMDS.varname-empty= ${.OBJDIR .PARSEDIR .PATH .SHELL:L:@v@-e '/\\$v/d'@} # Some tests need an additional round of postprocessing. POSTPROC.deptgt-suffixes= awk '/^\#\*\*\* Suffixes/,/^never-stop/' @@ -545,7 +582,7 @@ unexport-env.rawout: export.mk # Some standard sed commands, to be used in the SED_CMDS above. # Omit details such as process IDs from the output of the -dg1 option. -STD_SED_CMDS.dg1= -e 's,${.CURDIR}$$,,' +STD_SED_CMDS.dg1= -e '/\#.* \.$$/d' STD_SED_CMDS.dg1+= -e '/\.MAKE.PATH_FILEMON/d' STD_SED_CMDS.dg1+= -e '/^MAKE_VERSION/d;/^\#.*\/mk/d' STD_SED_CMDS.dg1+= -e 's, ${DEFSYSPATH:U/usr/share/mk}$$, ,' @@ -601,6 +638,8 @@ STD_SED_CMDS.shell+= -e 's,^${.SHELL:T}: line [0-9][0-9]*: ,,' STD_SED_CMDS.shell+= -e 's,^${.SHELL:T}: [0-9][0-9]*: ,,' STD_SED_CMDS.shell+= -e 's,^${.SHELL:T}: ,,' +STD_SED_CMDS.white-space= -e 's, *, ,g' -e 's, *$$,,' + # The actual error messages for a failed regcomp or regexec differ between the # implementations. STD_SED_CMDS.regex= \ @@ -665,7 +704,8 @@ TMPDIR:= /tmp/uid${.MAKE.UID} x!= echo; mkdir -p ${TMPDIR} .endif -MAKE_TEST_ENV?= MALLOC_OPTIONS="JA" # for jemalloc +MAKE_TEST_ENV= MALLOC_OPTIONS="JA" # for jemalloc 100 +MAKE_TEST_ENV+= MALLOC_CONF="junk:true" # for jemalloc 510 MAKE_TEST_ENV+= TMPDIR=${TMPDIR} .if ${.MAKE.OS} == "NetBSD" @@ -701,13 +741,22 @@ _SED_CMDS+= -e 's,^usage: ${TEST_MAKE:T:S,.,\\.,g} ,usage: make ,' # replace anything after 'stopped in' with unit-tests _SED_CMDS+= -e '/stopped/s, /.*, unit-tests,' _SED_CMDS+= -e 's,${TMPDIR},TMPDIR,g' -# strip ${.CURDIR}/ from the output -_SED_CMDS+= -e 's,${.CURDIR:S,.,\\.,g}/,,g' +# canonicalize ${.OBJDIR} and ${.CURDIR} +.if ${.OBJDIR} != ${.CURDIR} +# yes this is inaccurate but none of the tests expect anywhere +# which we get depending on how MAKEOBJDIR is set. +_SED_CMDS+= -e 's,${.OBJDIR},,g' +.endif +_SED_CMDS+= -e 's,${.CURDIR},,g' +_SED_CMDS+= -e 's,/,,g' _SED_CMDS+= -e 's,${UNIT_TESTS:S,.,\\.,g}/,,g' -# on AT&T derrived systems; false exits 255 not 1 +# on AT&T derived systems: false exits 255 not 1 .if ${.MAKE.OS:N*BSD} != "" _SED_CMDS+= -e 's,\(Error code\) 255,\1 1,' .endif +.if ${.SHELL:T} == "ksh" +_SED_CMDS+= -e '/^set [+-]v/d' +.endif .rawout.out: @${TOOL_SED} ${_SED_CMDS} ${SED_CMDS.${.PREFIX:T}} \ diff --git a/usr.bin/bmake/unit-tests/Makefile.config b/usr.bin/bmake/unit-tests/Makefile.config index 895df739d924..17ccf593b495 100644 --- a/usr.bin/bmake/unit-tests/Makefile.config +++ b/usr.bin/bmake/unit-tests/Makefile.config @@ -5,7 +5,9 @@ SRCTOP?= ${.CURDIR:H:H:H} -# $Id: Makefile.config.in,v 1.1 2018/12/30 17:14:24 sjg Exp $ +# $Id: Makefile.config.in,v 1.3 2021/10/22 07:48:57 sjg Exp $ srcdir= ${SRCTOP}/contrib/bmake/unit-tests +TOOL_DIFF?= diff DIFF_FLAGS?= -u +UTC_1= Europe/Berlin