From owner-dev-commits-src-all@freebsd.org Tue Jan 19 21:38:21 2021 Return-Path: Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00BD94E04FD; Tue, 19 Jan 2021 21:38:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DL28C4jySz4lbL; Tue, 19 Jan 2021 21:38:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3F07C5C4E; Tue, 19 Jan 2021 21:38:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 10JLcJwp078474; Tue, 19 Jan 2021 21:38:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 10JLcJPZ078473; Tue, 19 Jan 2021 21:38:19 GMT (envelope-from git) Date: Tue, 19 Jan 2021 21:38:19 GMT Message-Id: <202101192138.10JLcJPZ078473@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alex Richardson Subject: git: 8d30571d454d - main - include: Delete stale symlinks using find(1) instead of a shell loop. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arichardson X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d30571d454daa5d3ecee54847f805384f09c31d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2021 21:38:21 -0000 The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=8d30571d454daa5d3ecee54847f805384f09c31d commit 8d30571d454daa5d3ecee54847f805384f09c31d Author: Alex Richardson AuthorDate: 2021-01-19 11:35:12 +0000 Commit: Alex Richardson CommitDate: 2021-01-19 21:23:25 +0000 include: Delete stale symlinks using find(1) instead of a shell loop. This reduces the number of execve() syscalls during make includes by 88. Reviewed By: jhb Differential Revision: https://reviews.freebsd.org/D27622 --- include/Makefile | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/include/Makefile b/include/Makefile index 4533dfea1b67..24762ea641f2 100644 --- a/include/Makefile +++ b/include/Makefile @@ -273,26 +273,19 @@ stage_includes: ${SHARED} SDESTDIR= ${SYSROOT:U${DESTDIR}} # Take care of stale directory-level symlinks. +# Note: The "|| true" after find is needed in case one of the directories does +# not exist (yet). compat: -.for i in ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} crypto - if [ -L ${SDESTDIR}${INCLUDEDIR}/$i ]; then \ - rm -f ${SDESTDIR}${INCLUDEDIR}/$i; \ - fi -.endfor + cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} machine ${_MARCHS} \ + crypto -maxdepth 0 -mindepth 0 -type l -print -delete || true mtree -deU ${NO_ROOT:D-W} ${MTREE_FOLLOWS_SYMLINKS} \ -f ${SRCTOP}/etc/mtree/BSD.include.dist \ -p ${SDESTDIR}${INCLUDEDIR} > /dev/null copies: .PHONY .META -.for i in ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto machine machine/pc \ - ${_MARCHS} - if [ -d ${SDESTDIR}${INCLUDEDIR}/$i ]; then \ - cd ${SDESTDIR}${INCLUDEDIR}/$i; \ - for h in *.h; do \ - if [ -L $$h ]; then rm -f $$h; fi; \ - done; \ - fi -.endfor + cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto \ + machine machine/pc ${_MARCHS} -maxdepth 1 -mindepth 1 -type l \ + -name "*.h" -print -delete || true .for i in ${LDIRS} ${LSUBDIRS:Ndev/agp:Ndev/acpica:Ndev/evdev:Ndev/hid:Ndev/hyperv:Ndev/pci:Ndev/veriexec} ${LSUBSUBDIRS} cd ${SRCTOP}/sys; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 $i/*.h \