<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/hash.c, branch vendor/NetBSD/bmake/20250618</title>
<subtitle>FreeBSD source tree</subtitle>
<id>http://cgit.freebsd.org/src/atom?h=vendor%2FNetBSD%2Fbmake%2F20250618</id>
<link rel='self' href='http://cgit.freebsd.org/src/atom?h=vendor%2FNetBSD%2Fbmake%2F20250618'/>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<updated>2025-06-28T02:38:49Z</updated>
<entry>
<title>Import bmake-20250618</title>
<updated>2025-06-28T02:38:49Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2025-06-28T02:38:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=4f8f2bc2946615330eaa2cc1f6b37d97865fa58a'/>
<id>urn:sha1:4f8f2bc2946615330eaa2cc1f6b37d97865fa58a</id>
<content type='text'>
Intersting/relevant changes since bmake-20250414

ChangeLog since bmake-20250414

2025-06-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250618
	Merge with NetBSD make, pick up
	o parse.c: in a warning without location information,
	print the stack trace

2025-06-15  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250615
	Merge with NetBSD make, pick up
	o add on-demand inter-process stack traces
	o job.c,meta.c: do not discard empty lines in the output of a command
	o job.c: add job prefix if necessary in non-default filtered mode
	o parse.c,var.c: skip inter-process stack trace when
	MAKE_STACK_TRACE=no

2025-06-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250612
	Merge with NetBSD make, pick up
	o use a common style for unexpected error messages
	o parse.c: add program name to stack traces from sub-makes
	add quotes to "in directory" line in stack traces
	o var.c: check variable names for invalid characters when there
	are no modifiers to apply.  This detects and warns about gmake
	syntax like: $(addprefix -I, $(LIST))

2025-06-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250606
	Merge with NetBSD make, pick up
	o main.c: fix bug in handling of output of children in jobs mode

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250528
	Merge with NetBSD make, pick up
	o show contents of MAKEFLAGS in the stack trace.
	o main.c: delay warning about bogus -J flag, if we end up in
	compat mode before the call to InitMaxJobs, the warning isn't
	necessary.

2025-05-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250525
	Merge with NetBSD make, pick up
	o main.c: set .CURDIR earlier so it can be reported in some errors.

2025-05-20  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250520
	Merge with NetBSD make, pick up
	o rename variables, remove now-redundant comments
	o job.c: clean up building the shell commands in parallel mode
	remove timeout for polling in parallel mode
	o main.c: clean up error message for malformed internal -J option

2025-05-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250511
	Merge with NetBSD make, pick up
	o job.c: rename token pool variables to be more descriptive
	move ContinueJobs further up, to eliminate a forward declaration
	error out if writing to an internal pipe fails
	clean up constant names and function names
	use uniform debug log messages for the token pool
	in the debug log, replace magic numbers with identifiers
	o main.c: clean up error message for malformed internal -J option
	o make.c: replace bitset in trace output with descriptive node
	attributes
	o targ.c: add end marker for -dg1, -dg2 and -dg3 debug log
	o var.c: fix order of error messages in the ":?" modifier

2025-04-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20250424
	Merge with NetBSD make, pick up
	o cleanup; replace unsigned int with just unsigned
	Inline the TMPPAT macro, as it is only needed in a single place
	o move struct Job from job.h to job.c
	o job.c: group the code for handling the job token pool
	avoid excessive values of -j
	o make.c: fix grammar in debug log message

mk/ChangeLog since bmake-20250414

2025-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250528

	* add dirdeps2dplibs.mk

2025-05-18  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250518

	* meta.autodep.mk (META_FILES): re-work to fix filtering.
	if OPTIMIZE_OBJECT_META_FILES==yes
	provide a default META_FILE_OBJ_FILTER that selects a valid
	.SUFFIX to match *o.meta, there's no guarantee that it will be as
	simple as .o or .So etc.
	We have to defer evaluation until the target script is run
	for any of these filters to have any effect.
	Use :S,${.OBJDIR}/,, rather than :T incase there are objects
	in sub-dirs.

	* lib.mk: leverage ${.SUFFIXES} when setting dependencies.

	* add UPDATE_DEPENDFILE as a dependent option - follows
	DIRDEPS_BUILD and use MK_UPDATE_DEPENDFILE as default for
	UPDATE_DEPENDFILE when we think it should be yes.
	This allows override with -DWITH[OUT]_UPDATE_DEPENDFILE
	without overriding UPDATE_DEPENDFILE directly - which can lead to
	trouble.

2025-05-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20250515

	* meta2deps.py: resolve the target of a Move or Link first
	and track the last path resolved, then if the src is a relative
	path we can easily use that last path to resolve the src correctly.

	* meta2deps.sh: for a Move or Link add the dir of target path to
	the list used to resolve the src path.
</content>
</entry>
<entry>
<title>Import bmake-20240711</title>
<updated>2024-07-20T19:41:55Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2024-07-20T19:41:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=84691af93185c692058ba55fa81a04103f5bf71b'/>
<id>urn:sha1:84691af93185c692058ba55fa81a04103f5bf71b</id>
<content type='text'>
Intersting/relevant changes since bmake-20240625

ChangeLog since bmake-20240625

2024-07-13  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* cleanup redundant differences from NetBSD make
	o parse.c: no longer uses mmap
	o var.c: check __STDC_VERSION__ not __STDC__

2024-07-12  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* Apply some patches from NetBSD pkgsrc to reduce divergence
	o meta.c: requires sys/select.h if available
	o var.c: ensure SIZE_MAX has a value
	o util.c: ensure SA_RESTART is defined

	* configure.in: use *ksh* rather than just *ksh to match
	ksh shell specification.

	* unit-tests/Makefile: expand BROKEN_TESTS for ksh and
	mksh in particular

2024-07-11  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240711
	Merge with NetBSD make, pick up
	o compat.c: allow Compat_RunCommand to also handle very long
	commands by writing to a temp file when needed.
	o main.c: extract the temp file logic recently added to Cmd_Exec
	to Cmd_Argv so it can be leveraged by Compat_RunCommand.

2024-07-09  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240709
	Merge with NetBSD make, pick up
	o error out on parse/evaluation errors in shell commands
	o var.c: error out on syntax errors in ':M' and ':N' modifiers

2024-07-07  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240707
	Merge with NetBSD make, pick up
	o only generate code for cleanup functions in CLEANUP mode
	o hash.c: don't track hash table chain lengths during lookup
	unless debugging
	o main.c: move initialization of variable scopes to targ.c
	o var.c: remove Var_End as it is now unnecessary

2024-07-06  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240706
	Merge with NetBSD make, pick up
	o reduce lint comments about ARGSUSED
	o cond.c: error out on conditions containing the operators '&amp;' and '|'
	o str.c: error out on a matching malformed matching pattern '[['
	o var.c: in error messages, distinguish parsing from evaluating
	in error messages for anonymous variables, log the value
	error out on unclosed expressions during parse time

2024-07-04  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240704
	Merge with NetBSD make, pick up
	o add more context information to error messages
	o main.c: on error, print the targets to be made
	add detailed exit status to message for failed sub-commands
	o var.c: error out on the "Bad modifier" error message

2024-07-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240701
	Merge with NetBSD make, pick up
	o var.c: add :tt for Title case

2024-06-30  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* configure.in: 20240630 further refine check for whether
	TZ=Europe/Berlin works

	* VERSION (_MAKE_VERSION): 20240630
	Merge with NetBSD make, pick up
	o job.c: reduce use of UNCONST
	o main.c: add detailed exit status to message for failed sub-commands
	o var.c: error out on some more syntax errors
	add more context to "returned non-zero status" message
</content>
</entry>
<entry>
<title>Import bmake-20240625</title>
<updated>2024-06-29T00:16:32Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2024-06-29T00:16:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=dbb5be7f07456d02ce444484c683b130439acb45'/>
<id>urn:sha1:dbb5be7f07456d02ce444484c683b130439acb45</id>
<content type='text'>
Intersting/relevant changes since bmake-20240520

ChangeLog since bmake-20240520

2024-06-25  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240625
	Merge with NetBSD make, pick up
	o job.c: ensure shellPath is always duped, avoid upsetting free()

2024-06-16  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240616
	Merge with NetBSD make, pick up
	o clean up collection of context information for error messages
	o in warnings, move the word "warning" to the front
	o var.c: throw an error on attempt to override an internal
	read-only variable

2024-06-10  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240610
	Merge with NetBSD make, pick up
	o for.c: remove redundant shortcut for building the .for loop body

2024-06-02  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240602
	Merge with NetBSD make, pick up
	o rename some VarEvalMode constants to better match debug names.
	o var.c: avoid out-of-bounds read when parsing indirect modifiers.

2024-06-01  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240601
	Merge with NetBSD make, pick up
	o add .export-all rather than allow .export with no argument
	which can happen accidentally.
	o if lua is available, run check-expect.lua after unit-tests
	o main.c: use snprintf rather than strncpy
	fix memory leak when purging realpath cache.

2024-05-28  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* VERSION (_MAKE_VERSION): 20240528
	Merge with NetBSD make, pick up
	o fix a number of memory leaks
	o replace magic numbers with POSIX FILENO constants
	o hash.c: remove dead code from HashTable_DeleteEntry
	o main.c: when complaining about unusable .OBJDIR
	call PrintOnError if MAKE_DEBUG_OBJDIR_CHECK_WRITABLE is true.
	o parse.c: use fewer technical terms in debug message for dependency

mk/ChangeLog since bmake-20240520

2024-06-22  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* install-mk (MK_VERSION): 20240616

	* dirdeps.mk: apply DEP_DIRDEPS_BUILD_DIR_FILTER after we have
	computed build dirs, since some filters cannot be easily expressed via
	DEP_DIRDEPS_FILTER.

2024-05-31  Simon J Gerraty  &lt;sjg@beast.crufty.net&gt;

	* dirdeps.mk: move reset of DIRDEPS_EXPORT_VARS
	until after we a finished with it if building a cache.
</content>
</entry>
<entry>
<title>Import bmake-20240108</title>
<updated>2024-01-14T01:16:25Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2024-01-14T01:16:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=7a05a7153af649605e1ebde33aac94a14ed2a4cd'/>
<id>urn:sha1:7a05a7153af649605e1ebde33aac94a14ed2a4cd</id>
<content type='text'>
Interesting/relevant changes since bmake-20230909

	* VERSION (_MAKE_VERSION): 20240106
	Merge with NetBSD make, pick up
	o fix duplicate progname when reporting an unknown target
	o unit tests for Cmd_Exec using temp file

	* VERSION (_MAKE_VERSION): 20240105
	Merge with NetBSD make, pick up
	o main.c: Cmd_Exec write cmd to a file if too big
	avoid blowing commandline/env limits

	* VERSION (_MAKE_VERSION): 20240101
	o util.c: flesh out more of strftime
	* configure.in: add --with-bmake-strftime
	it is not a full implementation but enough to pass all
	the unit-tests.
	* parse.c: LoadFile do not append \n to empty buffer.

	* VERSION (_MAKE_VERSION): 20231230
	Merge with NetBSD make, pick up
	o simplify memory allocation for string buffers
	o fix declared types of list nodes
	o suff.c: clean up freeing of suffixes
	o var.c: simplify debug message for the ':@var@...@' modifier
	clean up variable handling

	* VERSION (_MAKE_VERSION): 20231226
	Merge with NetBSD make, pick up
	o compat.c: ensure make's output is correctly ordered with that of
	the target when not going to a tty
	o main.c: check for shellPath whether to call Shell_Init()

	* VERSION (_MAKE_VERSION): 20231224
	Merge with NetBSD make, pick up
	o compat.c: check for shellPath whether to call Shell_Init()
	tweak the unit test to detect the bug thus fixed.
	o make.1: do not claim .SHELL is only used by jobs mode.

	* VERSION (_MAKE_VERSION): 20231220
	Merge with NetBSD make, pick up
	o str.c: speed up pattern matching in the ':M' modifier
	o var.c: fix confusing debug logging when deleting a variable
	use consistent debug messages style when ignoring variables

	* VERSION (_MAKE_VERSION): 20231210
	Merge with NetBSD make, pick up
	o var.c: avoid segfault on empty :C match expression
	explain in debug log why variable assignment is ignored.

	* VERSION (_MAKE_VERSION): 20231208
	Merge with NetBSD make, pick up
	o var.c: ensure fromCmd is set correctly for variables set on
	command line.

	* VERSION (_MAKE_VERSION): 20231124
	Merge with NetBSD make, pick up
	o main.c: cleanup processing of -j
	fix lint warning about strchr
	o var.c: more accurate error message for invalid ':mtime' argument
	cleanup :[...] modifier
	avoid reading beyond substring when comparing
	o unit-tests cover all cases of :mtime, test and explain exporting
	of variables
	o cleanup comments

	* bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses
	$FreeBSD$ tag, so avoid adding it.

mk/ChangeLog since bmake-20230909

	* dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same
	limits on command line length, so skip export of lists to env.

	* jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating
	point.  This keeps JOB_MAX numeric incase another makefile does
	comparisons.

	* gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
</content>
</entry>
<entry>
<title>Import bmake-20220330</title>
<updated>2022-04-03T19:52:08Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2022-04-03T19:52:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a052cb432096794be5070dc68a2b302eaf5a4783'/>
<id>urn:sha1:a052cb432096794be5070dc68a2b302eaf5a4783</id>
<content type='text'>
Most relevant change:

	o parse.c: try to include 'posix.mk' the first time
	.POSIX: is encountered, to allow for beter POSIX compliance.

Others

	o cond.c: make debug logging for comparisons less technical
	o lst.c: fix mem leak in Lst_Remove
	o job.c: fix echoing of command with '-' in silent target in jobs mode
	o var.c: make debug logs more readable
	prefer 'long long' over 'long' on 32-bit C99 platforms
	fix crash on .undef of an environment variable
</content>
</entry>
<entry>
<title>Import bmake-20220204</title>
<updated>2022-02-05T20:03:50Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2022-02-05T20:03:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=cdde9e894dee2074ef0dd12ddc171e5d3f1513e3'/>
<id>urn:sha1:cdde9e894dee2074ef0dd12ddc171e5d3f1513e3</id>
<content type='text'>
Features of interest:

Allow setting target local variables (similar to gmake)

In META_MODE .MAKE.META.CMP_FILTER can be used for filtering commands
before comparion.

contrib/bmake/mk/cc-wrap.mk is an example of using these

See ChangeLog for the gory details.
</content>
</entry>
<entry>
<title>Import bmake-20211212</title>
<updated>2021-12-18T07:27:22Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2021-12-18T07:27:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2935fe8237c83c1dcb113dd5335733263e68e6fd'/>
<id>urn:sha1:2935fe8237c83c1dcb113dd5335733263e68e6fd</id>
<content type='text'>
Relevant changes see ChangeLog for details:

Add support for ${.SUFFIXES} as read-only variable.

Fix memory leak in cond.c

Punt on write errors - ENOSPC etc.

Lots of code refactoring, rework to reduce memory allocations.

More unit-tests.
</content>
</entry>
<entry>
<title>Import bmake-20210621</title>
<updated>2021-06-25T18:16:24Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2021-06-25T18:16:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ee914ef902ae018bd4f67192832120f9bf05651f'/>
<id>urn:sha1:ee914ef902ae018bd4f67192832120f9bf05651f</id>
<content type='text'>
Lots more unit tests and code cleanup

Relevant changes from ChangeLog

	o job.c: Print -de error information when running multiple jobs
	o var.c: only report error for unmatched regex subexpression
	when linting (-dL) since we cannot tell when an unmatched
	subexpression is an expected result.
	reduce memory allocations in the modifiers ':D' and ':U'
	reduce memory allocation and strlen calls in modifier ':from=to'
	in the ':Q' modifier, only allocate memory if necessary
	improve performance for LazyBuf
	reduce debug logging and memory allocation for ${:U...}
	reduce verbosity of the -dv debug logging for standard cases
	fix double varname expansion in the variable modifier '::='
	o var.c: avoid evaluating many modifiers in parse only mode
	in strict mode (-dL) many variable references are parsed twice,
	the first time just to report parse errors early, so we want to
	avoid side effects and wasted effort to the extent possible.
</content>
</entry>
<entry>
<title>Import bmake-20210206</title>
<updated>2021-02-11T01:51:11Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2021-02-11T01:51:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8b6f73e37baf5c37946844ec335a84856b1a9033'/>
<id>urn:sha1:8b6f73e37baf5c37946844ec335a84856b1a9033</id>
<content type='text'>
Changes of interest

  o unit-tests: use private TMPDIR to avoid errors from other users
  o avoid strdup in mkTempFile
  o always use vfork
  o job.c: do not create empty shell files in jobs mode
    reduce unnecessary calls to waitpid
  o cond.c: fix debug output for comparison operators in conditionals
</content>
</entry>
<entry>
<title>Import bmake-20210110</title>
<updated>2021-01-14T01:24:34Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2021-01-14T01:24:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8e11a9b4250be3c3379c45fa820bff78d99d5946'/>
<id>urn:sha1:8e11a9b4250be3c3379c45fa820bff78d99d5946</id>
<content type='text'>
Quite a lot of churn on style, but lots of
good work refactoring complicated functions
and lots more unit-tests.
Thanks mostly to rillig at NetBSD

Some interesting entries from ChangeLog

o .MAKE.{UID,GID} represent uid and gid running make.

o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
  checks in InitObjdir.  Explicit .OBJDIR target always allows
  read-only directory.

o add more unit tests for META MODE

Change-Id: I4d3bcf08b4c864d98b343f602efe5a75dbfa7a94
</content>
</entry>
</feed>
