NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/59073: make(1) sets $* / $(.PREFIX) wrong in -j mode
>Number: 59073
>Category: bin
>Synopsis: make(1) sets $* / $(.PREFIX) wrong in -j mode
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Feb 13 06:15:00 +0000 2025
>Originator: David A. Holland
>Release: NetBSD 10.99.10 (20240218)
>Organization:
Quantum Ailurodynamics Lab
>Environment:
System: NetBSD valkyrie 10.99.10 NetBSD 10.99.10 (VALKYRIE2) #0: Mon Feb 19 02:27:48 EST 2024 dholland@valkyrie:/y/objects/usrobj/sys/arch/amd64/compile/VALKYRIE2 amd64
Architecture: x86_64
Machine: amd64
>Description:
Take this makefile:
--------
SRCS=foo/bar.c
OBJS=$(SRCS:.c=.o)
all: $(OBJS)
.c.o:
@echo '$$@ is $@'
@echo '$$< is $<'
@echo '$$* is $*'
--------
then mkdir foo and touch foo/bar.c.
Running "make" prints:
$@ is foo/bar.o
$< is foo/bar.c
$* is foo/bar
Running "make -j1" prints:
$@ is foo/bar.o
$< is foo/bar.c
$* is bar
IOW, $* is wrong but only in -j mode.
This is probably related to why I had to revert my candidate fix for
PR 43534 back in 2010, so upon cleaning this up it is probably then
worth looking at that one again.
>How-To-Repeat:
As above.
>Fix:
No idea, alas.
Home |
Main Index |
Thread Index |
Old Index