From 7cda30602fcaeecd0072d980a99156812fc7f086 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 16 Jul 2024 09:19:31 -0700 Subject: [PATCH] =?UTF-8?q?Check=20for=20more=20=E2=80=98find=E2=80=99=20f?= =?UTF-8?q?ailures=20and=20port=20=E2=80=98find=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Makefile.in (install-eln), configure.ac (emacs_cv_find_delete): * make-dist: Use ‘find ... -exec CMD {} +’ rather than ‘find ... -exec CMD {} \;’ so that if CMD fails, ‘find’ fails too. * Makefile.in (install-eln): Port to ‘find’ implementations that behave differently from GNU ‘find’ when given an argument that contains ‘{}’ within a longer string. POSIX allows this behavior. --- Makefile.in | 10 ++++++++-- configure.ac | 2 +- make-dist | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Makefile.in b/Makefile.in index 2ab8cf0ecc5..ade7d258a4c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -915,8 +915,14 @@ install-etc: install-eln: lisp ifeq ($(HAVE_NATIVE_COMP),yes) umask 022 ; \ - find native-lisp -type d -exec $(MKDIR_P) '$(ELN_DESTDIR){}' \; ; \ - find native-lisp -type f -exec ${INSTALL_ELN} '{}' '$(ELN_DESTDIR){}' \; + find native-lisp -exec sh -c \ + 'for f in "$$@"; do \ + if test -d "$$f"; then \ + $(MKDIR_P) '\''$(ELN_DESTDIR)'\''"$$f" || exit; \ + else \ + $(INSTALL_ELN) "$$f" '\''$(ELN_DESTDIR)'\''"$$f"; \ + fi || exit; \ + done' - {} + endif ### Build Emacs and install it, stripping binaries while installing them. diff --git a/configure.ac b/configure.ac index 144f0bd9fc4..e2b6dc2fc4d 100644 --- a/configure.ac +++ b/configure.ac @@ -2060,7 +2060,7 @@ AC_CACHE_CHECK([for 'find' args to delete a file], [if touch conftest.tmp && find conftest.tmp -delete 2>/dev/null && test ! -f conftest.tmp then emacs_cv_find_delete="-delete" - else emacs_cv_find_delete="-exec rm -f {} ';'" + else emacs_cv_find_delete="-exec rm -f {} +" fi]) FIND_DELETE=$emacs_cv_find_delete AC_SUBST([FIND_DELETE]) diff --git a/make-dist b/make-dist index c8b0fcf4f24..fcf9b28e722 100755 --- a/make-dist +++ b/make-dist @@ -464,7 +464,7 @@ if [ "${newer}" ]; then ## up an incremental distribution already has a running Emacs to byte-compile ## them with. find ${tempdir} \( -name '*.elc' -o ! -newer "${newer}" \) \ - -exec rm -f {} \; || exit + -exec rm -f {} + || exit fi if [ "${make_tar}" = yes ]; then