diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index f8af7fc3..bc48ceee 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -26,7 +26,6 @@ do_libc_extract() { CT_DoExecLog ALL ln -sf "${CT_GLIBC_PORTS_SRC_DIR}/${CT_GLIBC_PORTS_BASENAME}" \ "${CT_GLIBC_SRC_DIR}/${CT_GLIBC_BASENAME}/ports" fi - # TBD make the configure timestamp fix in all patched packages (e.g. part of CT_ExtractPatch) } # Build and install headers and start files diff --git a/scripts/functions b/scripts/functions index 2267a957..2e875f7f 100644 --- a/scripts/functions +++ b/scripts/functions @@ -2165,6 +2165,20 @@ CT_DoExtractPatch() CT_DoExecLog ALL "${CT_CONFIG_SHELL}" -c "${devel_bootstrap}" fi + # Fix up the timestamps on the file we may be patching: otherwise, we may + # have a circular dependency. For example, we need make to build autoconf + # and automake companion tools, but we need autoconf and automake to regenerate + # aclocal.m4 or config.h.in after the patch touches configure.ac. Instead, + # assume the patch fixes all the files it needs. + find . -type f -name "aclocal.m4" \ + -exec touch {} \; -exec echo touch {} \; | CT_DoLog ALL + find . -type f -name "config.h.in" \ + -exec touch {} \; -exec echo touch {} \; | CT_DoLog ALL + find . -type f -name "Makefile.in" \ + -exec touch {} \; -exec echo touch {} \; | CT_DoLog ALL + find . -type f -name "configure" \ + -exec touch {} \; -exec echo touch {} \; | CT_DoLog ALL + if [ -n "${patchfunc}" ]; then ${patchfunc} fi