On Tue, Apr 22, 2025 at 8:54 PM Shim Manning wrote:
>
> Minimal test. Generates a list of 1000 prerequisites.
>
> list := $(shell for n in $$(seq 1 1000); do echo file_$$n; done)
> all: .EXTRA_PREREQS := $(list)
> all:
> echo "fin"
>
> And tes making a copy of the table appears to fix it
Thank y
Minimal test. Generates a list of 1000 prerequisites.
list := $(shell for n in $$(seq 1 1000); do echo file_$$n; done)
all: .EXTRA_PREREQS := $(list)
all:
echo "fin"
And tes making a copy of the table appears to fix it
On Sat, Apr 19, 2025 at 9:26 PM Dmitry Goncharov
wrote:
> On Fri, Apr 18,
On Fri, Apr 18, 2025 at 11:12 PM Shim Manning wrote:
>
> Seems that using .EXTRA_PREREQS can cause a segfault under the right
> conditions.
...
> snap_deps
> hash_map_arg (loop happens here)
> snap_file
> expand_extra_prereqs
> enter_file
> hash_insert_at
> hash_rehash (loop no longer valid)
>
Seems that using .EXTRA_PREREQS can cause a segfault under the right
conditions.
in file.c, when"snap_deps" is called to process the EXTRA_PREREQS..
struct dep *prereqs = expand_extra_prereqs (lookup_variable
(STRING_SIZE_TUPLE(".EXTRA_PREREQS")));
/* Perform per-file snap operations.