aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Libby <rlibby@FreeBSD.org>2020-12-19 08:38:27 +0000
committerRyan Libby <rlibby@FreeBSD.org>2020-12-19 08:38:27 +0000
commit198a0e58ec9c0a53eed0c8782df47915f29cd8a4 (patch)
tree71451662e391f104c382bddac5d2e38f43dab941
parent54a837c8cca109ad0d7ecb4b93379086f6f49275 (diff)
downloadsrc-198a0e58ec9c0a53eed0c8782df47915f29cd8a4.tar.gz
src-198a0e58ec9c0a53eed0c8782df47915f29cd8a4.zip
rtld-libc: fix incremental build
ar cr is an update of an archive, not a creation of a new one. During incremental builds (e.g. with meta mode) the archive was not getting cleaned, and so could retain now-deleted objects from previous builds. Now, delete the archive before creating/updating it. Reviewed by: arichardson, bdrewery, kib Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D27663
Notes
Notes: svn path=/head/; revision=368788
-rw-r--r--libexec/rtld-elf/rtld-libc/Makefile.inc3
1 files changed, 2 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld-libc/Makefile.inc b/libexec/rtld-elf/rtld-libc/Makefile.inc
index 74ac3668f1ad..88f13c8db8cb 100644
--- a/libexec/rtld-elf/rtld-libc/Makefile.inc
+++ b/libexec/rtld-elf/rtld-libc/Makefile.inc
@@ -89,8 +89,9 @@ CLEANFILES+=${_obj}.nossppico
# We insert all the .o files from libc_nossp_pic.a into a new rtld_libc.a file
# to ensure that only .o files that are actually used end up being included.
rtld_libc.a: ${LIBC_NOSSP_PIC} ${SRCTOP}/libexec/rtld-elf/rtld-libc/Makefile.inc
+ @rm -f ${.TARGET}
${AR} x ${LIBC_NOSSP_PIC} ${_rtld_libc_objs}
- ${AR} cr ${.OBJDIR}/${.TARGET} ${_rtld_libc_objs}
+ ${AR} cr ${.TARGET} ${_rtld_libc_objs}
CLEANFILES+=rtld_libc.a
LDADD+=${.OBJDIR}/rtld_libc.a
beforelinking: rtld_libc.a