aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2024-10-18 18:15:30 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2024-10-18 18:15:30 +0000
commitd41a40f484826e90ed78dce5f006712b0eeaf501 (patch)
tree04a7c1c681905bc03fb1cb35265bfda5fe4401e7
parent1363acbf25de4c36e183cfa0b0e801d4dd9bf2ad (diff)
downloadsrc-d41a40f484826e90ed78dce5f006712b0eeaf501.tar.gz
src-d41a40f484826e90ed78dce5f006712b0eeaf501.zip
depend-cleanup.sh: Clean up after riscv static binary IFUNC addition
reloc.c is conditionally included by libc_start1.c so existing builds don't feature it in the .depend file and won't know they need to rebuild libc_start1.c. MFC after: 1 week
-rwxr-xr-xtools/build/depend-cleanup.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh
index 94cafbd9a8d6..001a450bf182 100755
--- a/tools/build/depend-cleanup.sh
+++ b/tools/build/depend-cleanup.sh
@@ -199,3 +199,19 @@ clean_dep cddl/lib/libzpool zfs_debug c "linux/zfs/zfs_debug\.c"
# 20241011
clean_dep cddl/lib/libzpool arc_os c "linux/zfs/arc_os\.c"
+
+# 20241018 1363acbf25de libc/csu: Support IFUNCs on riscv
+if [ ${MACHINE} = riscv ]; then
+ for f in "$OBJTOP"/lib/libc/.depend.libc_start1.*o; do
+ if [ ! -f "$f" ]; then
+ continue
+ fi
+ if ! grep -q 'lib/libc/csu/riscv/reloc\.c' "$f"; then
+ echo "Removing stale dependencies and objects for libc_start1.c"
+ run rm -f \
+ "$OBJTOP"/lib/libc/.depend.libc_start1.* \
+ "$OBJTOP"/lib/libc/libc_start1.*o
+ break
+ fi
+ done
+fi