diff --git a/package/libcap/0001-libcap-Makefile-don-t-overwrite-empty-when-generatin.patch b/package/libcap/0001-libcap-Makefile-don-t-overwrite-empty-when-generatin.patch new file mode 100644 index 0000000000..a47a2c788e --- /dev/null +++ b/package/libcap/0001-libcap-Makefile-don-t-overwrite-empty-when-generatin.patch @@ -0,0 +1,50 @@ +From dc507a812d931c24f1ac98c811fdd29bffa21da9 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Tue, 24 Aug 2021 00:36:40 +0200 +Subject: [PATCH] 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. + +While we're at it, take in an upstream change that removes the redundant +redirect. + +Fixes: ee3b25c0a877fa74d1aec88f325ac45b09963c82 + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + libcap/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcap/Makefile b/libcap/Makefile +index 47cf8f4..18e4f4f 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -105,7 +105,7 @@ empty: empty.c + $(CC) -o $@ $< + + loader.txt: empty +- $(OBJCOPY) --dump-section .interp=/dev/stdout $< > $@ ++ $(OBJCOPY) --dump-section .interp=$@ $< /dev/null + + cap_magic.o: execable.h execable.c loader.txt + $(CC) $(CFLAGS) $(IPATH) -DLIBRARY_VERSION=\"$(LIBTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" -c execable.c -o $@ +-- +2.31.1 +