add shell script for stale dependency hack
It's rather awkward to debug issues with the dependency cleanup hacks when implemented via make. Add a cleanup shell script and move the libomp hack there as an initial example. Reviewed by: brooks MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24228
This commit is contained in:
parent
86cfa7e70b
commit
4dad87a498
@ -924,17 +924,8 @@ _sanity_check: .PHONY .MAKE
|
||||
# replacing generated files. Handle these cases here in an ad-hoc fashion.
|
||||
_cleanobj_fast_depend_hack: .PHONY
|
||||
@echo ">>> Deleting stale dependencies...";
|
||||
sh ${.CURDIR}/tools/build/depend-cleanup.sh ${OBJTOP}
|
||||
# Date SVN Rev Syscalls/Changes
|
||||
# 20200310 r358851 rename of openmp's ittnotify_static.c to .cpp
|
||||
.for f in ittnotify_static
|
||||
@if [ -e "${OBJTOP}/lib/libomp/.depend.${f}.pico" ] && \
|
||||
egrep -qw '${f}\.c' ${OBJTOP}/lib/libomp/.depend.${f}.pico; then \
|
||||
echo "Removing stale dependencies for ${f}"; \
|
||||
rm -f ${OBJTOP}/lib/libomp/.depend.${f}.* \
|
||||
${OBJTOP}/obj-lib32/lib/libomp/.depend.${f}.* \
|
||||
${LIBCOMPAT:D${LIBCOMPAT_OBJTOP}/lib/libomp/.depend.${f}.*}; \
|
||||
fi
|
||||
.endfor
|
||||
# Syscall stubs rewritten in C and obsolete MD assembly implementations
|
||||
# 20191009 r353340 removal of opensolaris_atomic.S (also r353381)
|
||||
.if ${MACHINE} != i386
|
||||
|
36
tools/build/depend-cleanup.sh
Executable file
36
tools/build/depend-cleanup.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Our current make(1)-based approach to dependency tracking cannot cope with
|
||||
# certain source tree changes, including:
|
||||
# - removing source files
|
||||
# - replacing generated files with files committed to the tree
|
||||
# - changing file extensions (e.g. a C source file rewritten in C++)
|
||||
#
|
||||
# We handle those cases here in an ad-hoc fashion by looking for the known-
|
||||
# bad case in the main .depend file, and if found deleting all of the related
|
||||
# .depend files (including for example the lib32 version).
|
||||
|
||||
OBJTOP=$1
|
||||
if [ ! -d "$OBJTOP" ]; then
|
||||
echo "usage: $(basename $0) objtop" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# $1 directory
|
||||
# $2 source filename w/o extension
|
||||
# $3 source extension
|
||||
clean_dep()
|
||||
{
|
||||
if [ -e "$OBJTOP"/$1/.depend.$2.pico ] && \
|
||||
egrep -qw "$2\.$3" "$OBJTOP"/$1/.depend.$2.pico; then \
|
||||
echo "Removing stale dependencies for $2.$3"; \
|
||||
rm -f "$OBJTOP"/$1/.depend.$2.* \
|
||||
"$OBJTOP"/obj-lib32/$1/.depend.$2.*
|
||||
fi
|
||||
}
|
||||
|
||||
# Date Rev Description
|
||||
# 20200310 r358851 rename of openmp's ittnotify_static.c to .cpp
|
||||
clean_dep lib/libomp ittnotify_static c
|
Loading…
Reference in New Issue
Block a user