From nobody Wed Mar 01 18:24:36 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PRjLr6ZGpz3vBN9; Wed, 1 Mar 2023 18:24:36 +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 4PRjLr67KSz45xb; Wed, 1 Mar 2023 18:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677695076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FaEvVwFvQbNN8HduRnwHYkiFMprYdP4xwKKBRSOIew4=; b=jUZWU8jOvhhMWVqCMQ6ADoCJ5wiLaC9Jk98rV9aD75mOsdPyeHMsbnqwJbQI5A/gJyROs8 Fhm05NA+o9mOGZ0hKFFGbm/qQ3PNrPGCYp4uvHZngry1Iv6H99d2JYdKGqrxZESw7/0CH8 6wG08grIz1oWQfEINoa70PCHspbpzty1MW2PnzfooURih8rx7WWrPk8mgtfkTDXUrIzcL1 o9yn6QGWZWaKu1ILJKSFoVus0kialeD1Bx8BSuO6txhR2YRx5oaiYAb5xNzx9tlZGKCdCV Pcgb6foTyjYFbV75CwkQMMlKqIMKciYrpbmi7tyaGG0Xhep7xJpmQM+cbDtIIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677695076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FaEvVwFvQbNN8HduRnwHYkiFMprYdP4xwKKBRSOIew4=; b=I26Ptvfkxx2uYZA6NvgY2zcymI2pCOaejiq6ruvWkMSZv9kNxhJc4GEsHXz1SvqVW0rOWQ PcAULMAg6cCvpyOVwdFzsNZ/nliOO4slHp6ka2LdR4Sss1AE6B6bMImobgSse27dNCOCKh 06bxdHWoamXmldvt7d2I6xdF0feQCt4g9O82uD4fn96p8A8NGiBtwNbG6D4oqMEGeJgis7 0Cp/SwRq/nyR25avBVsr/INgx8p2LwYTamfaqPM1GQaBgvP9LIj8qiyKzyoW7UAYX/psxv w/SQNTG4TILzevA5K+92YudoOSwszkvqwvDOMHZtDBYlJf9GocpZUmtYfQal6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1677695076; a=rsa-sha256; cv=none; b=hpl8i8YOcTsC3vcDwv40KEd/EyUhOXUE6WVf2w5YA5L6Ha8q4MUpFBqh1Zf7lu9ckZS5r1 kxLgAY8QcSToJnwgL6MVVhIKXH2/4BtSuLOcLgPam/RDdctBxOg6TI9t6DBmIKM/UlnmOn UZm+6NnINR+yWWrS9osN5lpfzOp3sysW+znLUo6qMbavD6OU13b1Yl5vS2FP9CWkodKWnY CwfBPwHNqrHDxvWchKHGHZuUKpvml8X6TePX0fVf7+lkLWvy2QFUjzgqn3fC9q0+EZ/J2M b+W7AXsf108hIm5XZlsN/cLI6AQ6pkT0EzQAPbN8ccIsCj45ku9toar56VCDTw== 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 4PRjLr5BxQzl1c; Wed, 1 Mar 2023 18:24:36 +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 321IOabB083960; Wed, 1 Mar 2023 18:24:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 321IOaY8083959; Wed, 1 Mar 2023 18:24:36 GMT (envelope-from git) Date: Wed, 1 Mar 2023 18:24:36 GMT Message-Id: <202303011824.321IOaY8083959@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 3912f99ecae6 - stable/13 - Ensure .inc files are regenerated when llvm/clang tblgen binaries change List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3912f99ecae61dc7fe89c076a654332e3adb1bdc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=3912f99ecae61dc7fe89c076a654332e3adb1bdc commit 3912f99ecae61dc7fe89c076a654332e3adb1bdc Author: Dimitry Andric AuthorDate: 2023-02-25 15:25:57 +0000 Commit: Dimitry Andric CommitDate: 2023-03-01 18:24:18 +0000 Ensure .inc files are regenerated when llvm/clang tblgen binaries change When doing a fully incremental build (with WITHOUT_CLEAN enabled), from a commit before llvm 15 was merged (3264f6b88fce), to a commit after that, a number of .inc files were not regenerated. This could lead to unexpected compilation errors when these .inc files were included from llvm-project sources, similar to: In file included from /usr/src/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:8268: /usr/obj/usr/src/amd64.amd64/lib/clang/libclang/clang/Basic/arm_mve_builtin_cg.inc:279:18: error: no matching constructor for initialization of 'clang::CodeGen::Address' Address Val2 = Address(Val1, CharUnits::fromQuantity(2)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Work around this by making the .inc files dependent on the tblgen binary used for generating them. E.g., we can relatively safely assume that if the binary gets updated, the .inc files must also be updated. (Although this is not 100% optimal, the gain by complicating things even more is probaby not worth the effort.) MFC after: 3 days Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D38770 (cherry picked from commit ab80f0b21fbb9c44d40e6f7a99090188f4ed2f71) --- lib/clang/clang.pre.mk | 1 + lib/clang/headers/Makefile | 2 ++ lib/clang/libclang/Makefile | 22 +++++++++++++++------- lib/clang/liblldb/Makefile | 3 +++ lib/clang/libllvm/Makefile | 2 ++ lib/clang/llvm.pre.mk | 1 + usr.bin/clang/lld/Makefile | 2 ++ usr.bin/clang/lldb-server/Makefile | 2 ++ usr.bin/clang/lldb/Makefile | 2 ++ usr.bin/clang/llvm-cxxfilt/Makefile | 2 ++ usr.bin/clang/llvm-nm/Makefile | 2 ++ usr.bin/clang/llvm-objcopy/Makefile | 2 ++ usr.bin/clang/llvm-objdump/Makefile | 2 ++ usr.bin/clang/llvm-readobj/Makefile | 2 ++ usr.bin/clang/llvm-size/Makefile | 2 ++ usr.bin/clang/llvm-strings/Makefile | 2 ++ usr.bin/clang/llvm-symbolizer/Makefile | 2 ++ 17 files changed, 46 insertions(+), 7 deletions(-) diff --git a/lib/clang/clang.pre.mk b/lib/clang/clang.pre.mk index 520a9300e6ce..9ef401645f14 100644 --- a/lib/clang/clang.pre.mk +++ b/lib/clang/clang.pre.mk @@ -5,3 +5,4 @@ CLANG_SRCS= ${LLVM_BASE}/clang CLANG_TBLGEN?= clang-tblgen +CLANG_TBLGEN_BIN!= which ${CLANG_TBLGEN} diff --git a/lib/clang/headers/Makefile b/lib/clang/headers/Makefile index 80a1250f6366..c4643e9353e6 100644 --- a/lib/clang/headers/Makefile +++ b/lib/clang/headers/Makefile @@ -200,6 +200,8 @@ riscv_${hdr:H}.h: ${CLANG_SRCS}/include/clang/Basic/riscv_${hdr:H}.td GENINCS+= riscv_${hdr:H}.h .endfor +${GENINCS}: ${CLANG_TBLGEN_BIN} + CLEANFILES= ${GENINCS} ${GENINCS:C/$/.d/} .include diff --git a/lib/clang/libclang/Makefile b/lib/clang/libclang/Makefile index a2612bc9d894..cdffedfe3d36 100644 --- a/lib/clang/libclang/Makefile +++ b/lib/clang/libclang/Makefile @@ -1010,13 +1010,6 @@ clang/Basic/riscv_vector_builtin_cg.inc: \ -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/riscv_vector.td TGHDRS+= clang/Basic/riscv_vector_builtin_cg.inc -clang/Driver/Options.inc: ${CLANG_SRCS}/include/clang/Driver/Options.td - ${LLVM_TBLGEN} -gen-opt-parser-defs \ - -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ - -d ${.TARGET:C/$/.d/} -o ${.TARGET} \ - ${CLANG_SRCS}/include/clang/Driver/Options.td -TGHDRS+= clang/Driver/Options.inc - clang/Parse/AttrParserStringSwitches.inc: \ ${CLANG_SRCS}/include/clang/Basic/Attr.td ${CLANG_TBLGEN} -gen-clang-attr-parser-string-switches \ @@ -1094,10 +1087,25 @@ OpenCLBuiltins.inc: ${CLANG_SRCS}/lib/Sema/OpenCLBuiltins.td ${CLANG_SRCS}/lib/Sema/OpenCLBuiltins.td TGHDRS+= OpenCLBuiltins.inc +${TGHDRS}: ${CLANG_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} +clang/Driver/Options.inc: ${CLANG_SRCS}/include/clang/Driver/Options.td + ${LLVM_TBLGEN} -gen-opt-parser-defs \ + -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ + -d ${.TARGET:C/$/.d/} -o ${.TARGET} \ + ${CLANG_SRCS}/include/clang/Driver/Options.td +LTGHDRS+= clang/Driver/Options.inc + +${LTGHDRS}: ${LLVM_TBLGEN_BIN} + +DEPENDFILES+= ${LTGHDRS:C/$/.d/} +DPSRCS+= ${LTGHDRS} +CLEANFILES+= ${LTGHDRS} ${LTGHDRS:C/$/.d/} + .include "../clang.build.mk" INTERNALLIB= diff --git a/lib/clang/liblldb/Makefile b/lib/clang/liblldb/Makefile index 28778cb04c57..dbf9c6d696e7 100644 --- a/lib/clang/liblldb/Makefile +++ b/lib/clang/liblldb/Makefile @@ -693,6 +693,7 @@ SRCS+= Utility/VMRange.cpp SRCS+= Version/Version.cpp LLDB_TBLGEN?= lldb-tblgen +LLDB_TBLGEN_BIN!= which ${LLDB_TBLGEN} CommandOptions.inc: ${LLDB_SRCS}/source/Commands/Options.td ${LLDB_TBLGEN} -gen-lldb-option-defs \ @@ -720,6 +721,8 @@ ${path:T}PropertiesEnum.inc: ${LLDB_SRCS}/source/${path}Properties.td TGHDRS+= ${path:T}PropertiesEnum.inc .endfor +${TGHDRS}: ${LLDB_TBLGEN_BIN} + DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/lib/clang/libllvm/Makefile b/lib/clang/libllvm/Makefile index 868f9aa48964..ef9d87dd7d2f 100644 --- a/lib/clang/libllvm/Makefile +++ b/lib/clang/libllvm/Makefile @@ -2026,6 +2026,8 @@ TGHDRS+= X86GenRegisterInfo.inc TGHDRS+= X86GenSubtargetInfo.inc .endif # MK_LLVM_TARGET_X86 +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/lib/clang/llvm.pre.mk b/lib/clang/llvm.pre.mk index 774d7d47ea37..92124a7bf092 100644 --- a/lib/clang/llvm.pre.mk +++ b/lib/clang/llvm.pre.mk @@ -5,3 +5,4 @@ LLVM_BASE= ${SRCTOP}/contrib/llvm-project LLVM_SRCS= ${LLVM_BASE}/llvm LLVM_TBLGEN?= llvm-tblgen +LLVM_TBLGEN_BIN!= which ${LLVM_TBLGEN} diff --git a/usr.bin/clang/lld/Makefile b/usr.bin/clang/lld/Makefile index 9f114dbb81bf..1113072e4e9d 100644 --- a/usr.bin/clang/lld/Makefile +++ b/usr.bin/clang/lld/Makefile @@ -95,6 +95,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/lldb-server/Makefile b/usr.bin/clang/lldb-server/Makefile index 9c3883984618..efe8529f3611 100644 --- a/usr.bin/clang/lldb-server/Makefile +++ b/usr.bin/clang/lldb-server/Makefile @@ -37,6 +37,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/lldb/Makefile b/usr.bin/clang/lldb/Makefile index 10ffd3b90057..8e160b18eaa5 100644 --- a/usr.bin/clang/lldb/Makefile +++ b/usr.bin/clang/lldb/Makefile @@ -30,6 +30,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-cxxfilt/Makefile b/usr.bin/clang/llvm-cxxfilt/Makefile index a61e32db9aa7..073316b7b4a7 100644 --- a/usr.bin/clang/llvm-cxxfilt/Makefile +++ b/usr.bin/clang/llvm-cxxfilt/Makefile @@ -19,6 +19,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-nm/Makefile b/usr.bin/clang/llvm-nm/Makefile index 0df48744632d..d3099e5a75be 100644 --- a/usr.bin/clang/llvm-nm/Makefile +++ b/usr.bin/clang/llvm-nm/Makefile @@ -19,6 +19,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-objcopy/Makefile b/usr.bin/clang/llvm-objcopy/Makefile index 80aa29949edf..995a8b461344 100644 --- a/usr.bin/clang/llvm-objcopy/Makefile +++ b/usr.bin/clang/llvm-objcopy/Makefile @@ -36,6 +36,8 @@ ${hdr}.inc: ${LLVM_BASE}/${SRCDIR}/${hdr}.td TGHDRS+= ${hdr}.inc .endfor +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-objdump/Makefile b/usr.bin/clang/llvm-objdump/Makefile index 443128460f99..8a9587129f36 100644 --- a/usr.bin/clang/llvm-objdump/Makefile +++ b/usr.bin/clang/llvm-objdump/Makefile @@ -25,6 +25,8 @@ ${hdr}.inc: ${LLVM_BASE}/${SRCDIR}/${hdr}.td TGHDRS+= ${hdr}.inc .endfor +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-readobj/Makefile b/usr.bin/clang/llvm-readobj/Makefile index 4b547d81c583..8926eb03bdbf 100644 --- a/usr.bin/clang/llvm-readobj/Makefile +++ b/usr.bin/clang/llvm-readobj/Makefile @@ -30,6 +30,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-size/Makefile b/usr.bin/clang/llvm-size/Makefile index 20bd5de61192..f39e5db6f872 100644 --- a/usr.bin/clang/llvm-size/Makefile +++ b/usr.bin/clang/llvm-size/Makefile @@ -19,6 +19,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-strings/Makefile b/usr.bin/clang/llvm-strings/Makefile index 1438aa847997..253766ba084d 100644 --- a/usr.bin/clang/llvm-strings/Makefile +++ b/usr.bin/clang/llvm-strings/Makefile @@ -17,6 +17,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} diff --git a/usr.bin/clang/llvm-symbolizer/Makefile b/usr.bin/clang/llvm-symbolizer/Makefile index c4677169f912..ae417356df6b 100644 --- a/usr.bin/clang/llvm-symbolizer/Makefile +++ b/usr.bin/clang/llvm-symbolizer/Makefile @@ -20,6 +20,8 @@ ${INCFILE}: ${TDFILE} -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} +${TGHDRS}: ${LLVM_TBLGEN_BIN} + DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/}