git: 1c04cf7d5415 - main - After-import bmake-20211212
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 18 Dec 2021 18:14:50 UTC
The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=1c04cf7d5415a404722bfa182013efa028280736 commit 1c04cf7d5415a404722bfa182013efa028280736 Author: Simon J. Gerraty <sjg@FreeBSD.org> AuthorDate: 2021-12-18 18:14:39 +0000 Commit: Simon J. Gerraty <sjg@FreeBSD.org> CommitDate: 2021-12-18 18:14:39 +0000 After-import bmake-20211212 --- 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 <ar.h> header file. */ #define HAVE_AR_H 1 @@ -67,6 +70,9 @@ /* Define to 1 if you have the <limits.h> 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 <memory.h> 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 <utime.h> 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 <sys/types.h> 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 (.*)$$,<not found: \1>,' SED_CMDS.sh-dots+= -e 's,^\(\*\*\* Error code \)[1-9][0-9]*,\1<nonzero>,' 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},</path/to/shell>,' SED_CMDS.varmod-subst-regex+= ${STD_SED_CMDS.regex} SED_CMDS.varname-dot-parsedir= -e '/in some cases/ s,^make: "[^"]*,make: "<normalized>,' @@ -527,9 +566,7 @@ SED_CMDS.varname-dot-parsefile= -e '/in some cases/ s,^make: "[^"]*,make: "<norm SED_CMDS.varname-dot-shell= -e 's, = /[^ ]*, = (details omitted),g' SED_CMDS.varname-dot-shell+= -e 's,"/[^" ]*","(details omitted)",g' SED_CMDS.varname-dot-shell+= -e 's,\[/[^] ]*\],[(details omitted)],g' -SED_CMDS.varname-empty= -e 's,${.CURDIR},<curdir>,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}$$,<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}$$, <defsyspath>,' @@ -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 <objdir> anywhere +# which we get depending on how MAKEOBJDIR is set. +_SED_CMDS+= -e 's,${.OBJDIR},<curdir>,g' +.endif +_SED_CMDS+= -e 's,${.CURDIR},<curdir>,g' +_SED_CMDS+= -e 's,<curdir>/,,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