bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Make allows kind of multiple "alias" for the same target


From: lol lol
Subject: Make allows kind of multiple "alias" for the same target
Date: Thu, 22 Jul 2021 15:42:28 +0200

Hello dear developers of a Make,

Our team faced some race problems while building a project with Make.

Precise analysis shows that the problem was in fact, that Make doesn't care if we have different aliases for the same target.
For example:
```
.PHONY: all ../1/../main.o ../2/../main.o

all: ../1/../main.o ../2/../main.o

../1/../main.o:
ccache gcc -o $@ -c ../main.c

../2/../main.o:
ccache gcc -o $@ -c ../main.c
```

Here, we have 2 targets:
../1/../main.o
../2/../main.o

In fact, this is the same target/file (taking into account relative directories).
As a result if Make will create several threads (for each target) main.o file will be fritten concurrently (race condition).

Make doesn't operate in a wrong way.
Anyway, I think it would be great to have an additional checker in a Makefile which (at least) will notify the operator about the problem in a Makefile.

P.S. Makefile project, using which it is possible to reproduce the problem is attached to this mail.

Attachment: build_race.tar
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]