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.
|
# replacing generated files. Handle these cases here in an ad-hoc fashion.
|
||||||
_cleanobj_fast_depend_hack: .PHONY
|
_cleanobj_fast_depend_hack: .PHONY
|
||||||
@echo ">>> Deleting stale dependencies...";
|
@echo ">>> Deleting stale dependencies...";
|
||||||
|
sh ${.CURDIR}/tools/build/depend-cleanup.sh ${OBJTOP}
|
||||||
# Date SVN Rev Syscalls/Changes
|
# 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
|
# Syscall stubs rewritten in C and obsolete MD assembly implementations
|
||||||
# 20191009 r353340 removal of opensolaris_atomic.S (also r353381)
|
# 20191009 r353340 removal of opensolaris_atomic.S (also r353381)
|
||||||
.if ${MACHINE} != i386
|
.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