NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/53213: make: inference rules: not all paths represented by "internal macros" gain realpath massage
>Number: 53213
>Category: bin
>Synopsis: make: inference rules: not all paths represented by "internal macros" gain realpath massage
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Apr 25 19:05:00 +0000 2018
>Originator: Steffen
>Release: 8.0 (+ portable bmake)
>Organization:
>Environment:
hunky dory
>Description:
bmake is the only make i know which fails to do the following.
Imagine configuration creates obj/ dir but continues to work from top level.
In the call
if ${make} -f ${makefile} XINCS="${INCS} ${incs}" \
CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
XLIBS="${LIBS} ${libs}" ${tmp} &&
we have
make=bmake makefile=obj/___tmp.mk tmp=obj/___tmp14286
___tmp.mk is
${cat} > ${makefile} << \!
.SUFFIXES: .o .c .x .y
.c.o:
$(CC) -I./ $(XINCS) $(CFLAGS) -o $(@) -c $(<)
.c.x:
$(CC) -I./ $(XINCS) -E $(<) > $(@)
.c:
$(CC) -I./ $(XINCS) $(CFLAGS) $(LDFLAGS) -o $(@) $(<) $(XLIBS)
!
We end up with (stripped)
*** . OS error mapping table generated ...
*** tests results
*** make=bmake makefile=obj/___tmp.mk tmp=obj/___tmp14286
tcc -I..... -o obj/___tmp14286 /home/steffen/src/nail.git/obj/___tmp14286.c -L....
tcc: error: could not write 'obj/___tmp14286'
*** Error code 1
The problem seems to be that bmake selfishly enters obj/ even though it has not been asked to do so, and whereas it creates an absolute version of/for $(<) it does not actually do the same for $(@), so the call fails because there is not obj/obj.
>How-To-Repeat:
If you want to you can clone my MUA, check out the [next] branch and also see
#?2[steffen@essex nail.git]$ bmake devel
sh: can't open 'make-config.sh': No such file or directory
*** Error code 1
Stop.
happening after the above error occurred, i do not yet know why.
>Fix:
Home |
Main Index |
Thread Index |
Old Index