aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2021-08-24 01:22:57 +0200
committerAndrew G. Morgan <morgan@kernel.org>2021-08-23 18:20:36 -0700
commitafbc554d16a32ed352191e49b3673f2f72d0002f (patch)
tree1a360319185cfde06ca4964ff7984c62dbeb25cf
parent4f45bcc83545efdb4ffc5b9c05e1dbabe196339d (diff)
downloadlibcap-afbc554d16a32ed352191e49b3673f2f72d0002f.tar.gz
libcap/Makefile: don't overwrite 'empty' when generating loader.txt
objcopy takes an input file and an output file as arguments. If the output file is left out, the input file will be overwritten. Since the objcopy command used to generate loader.txt only does a dump-section and no filtering, in practice there is no change to empty. However, as a side-effect, its timestamp is updated. The timestamp of empty and of loader.txt will be more or less the same; however, loader.txt is closed just before the output file is closed, so it's possible that the timestamp of loader.txt is just a little bit earlier. If this happens, it causes loader.txt to be rebuilt later, which in turn causes a number of other object files to be rebuilt. Usually that's harmless, but it sometimes causes the rebuild to happen during 'make install'. This is particularly annoying if 'make install' is done as root, since loader.txt becomes owned by root in that case. Fix this by specifying a harmless output file: /dev/null. Fixes: ee3b25c0a877fa74d1aec88f325ac45b09963c82 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
-rw-r--r--libcap/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcap/Makefile b/libcap/Makefile
index 56fb0af..399aa66 100644
--- a/libcap/Makefile
+++ b/libcap/Makefile
@@ -108,7 +108,7 @@ empty: empty.c
$(CC) -o $@ $<
loader.txt: empty
- $(OBJCOPY) --dump-section .interp=$@ $<
+ $(OBJCOPY) --dump-section .interp=$@ $< /dev/null
cap_magic.o: execable.h execable.c loader.txt
$(CC) $(CFLAGS) $(CPPFLAGS) -DLIBRARY_VERSION=\"$(LIBTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" -c execable.c -o $@