From nobody Sat Mar 4 20:18:28 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 4PTbkr5k6Bz3wQNK; Sat, 4 Mar 2023 20:18:28 +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 4PTbkr55Vvz42ry; Sat, 4 Mar 2023 20:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677961108; 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=zKUmrp7WIhAFiaa7odOCSUxlkyO7FdNkFqpG2T9vR+c=; b=RYoUUnc6bD6gyMHOHi8TTWBrprGnAtUEqo2jJLJqkoAdAWJUBGekHO/ISW2Ka/IggJsuMP p2ocgCLV1HppH6SOROrruu8XSBrdMilkKS5KeK3WyUJlygcVmc8QxlgjL7m9aoTwk9UuCz Pz97lXya/3Usj83Ijkm9tUszEzt90XRDxRyNkWrLUyE2nNOzXW0UqLX51zeFG9STsTyI27 bYic7/UH8mYwRQCFZJ1E6l0TTzgHxuyFrW50/7wG0IyslERxrcFisFFIykfx/jA49Hf2ER JhA9i6ExC2QDvWQiiHFZLG4y2HojpNky7zP3tktPvvwoqTH96gEKBw5FHdX7TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677961108; 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=zKUmrp7WIhAFiaa7odOCSUxlkyO7FdNkFqpG2T9vR+c=; b=jeeophSTmdJFTCv21SV5uZLkH9IEh1v9O7hcEwcpvIerdh0iCoT3m4II8RkOReC1kA8//1 QBgpetym0kUvZzw+baBT5soeuExTme17kF2ZlVCSHkEqW2YZIXZPRHzL8PtSKSC3Zi4F9j gdufj8jBN8Wg3qomfbTNCHHnOeqJVK9nQhHUtUotVKhluL2vOnWTadYuDKgwTRxy+V4ZLT Ik4w0gYApqpOLZ6wmblG3zGvpzfus7fUZI0UIprvoKo/IWfhw+qs7pHrrj/stL9W5tOkI7 mclb0hRp0dmD1zKU7HRSgf8zXfnhOyG9kdJNVJ3Y1sMGK8WFYn0r1jo+Cc4arg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1677961108; a=rsa-sha256; cv=none; b=elbME7OVXd/Ae7nRfFqzODAUhJaeEz/B8z+MNO/S2ximOe+2JzOkRe1IUDpu34TpPF1pT4 coOOsUjoT3vgOCoSPKoFUUiLGVUDc3mLXjzmcTYwiLse0dbDjahMDMNJqaPYfqeJEXJFzL Rdpv9gti3Wmb6s9xwt4tgr1kDJRiIvfde+jCLle1xWes1BWLugV31hXRTLXFxQHl7zYH84 t52vZks/blx1LMYbcP2QiQcOo017rd1q/2uNAwk8biOcexA6CoCiajIUkrG3XEkr0P/tyW Ep81h2LG6Dg5/aAo/z5fo5O0/fhpcnLRIA2KdCQg+USAG6wHvHclaTdCiXPv2Q== 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 4PTbkr48fTzt4J; Sat, 4 Mar 2023 20:18:28 +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 324KISaR061631; Sat, 4 Mar 2023 20:18:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 324KISvY061630; Sat, 4 Mar 2023 20:18:28 GMT (envelope-from git) Date: Sat, 4 Mar 2023 20:18:28 GMT Message-Id: <202303042018.324KISvY061630@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: 8534a7f045bd - releng/13.2 - 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/releng/13.2 X-Git-Reftype: branch X-Git-Commit: 8534a7f045bd50240b7dfb417c2240d8aee6646d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch releng/13.2 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=8534a7f045bd50240b7dfb417c2240d8aee6646d commit 8534a7f045bd50240b7dfb417c2240d8aee6646d Author: Dimitry Andric AuthorDate: 2023-02-25 15:25:57 +0000 Commit: Dimitry Andric CommitDate: 2023-03-04 20:17:27 +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.) Approved by: re (cperciva) MFC after: 3 days Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D38770 (cherry picked from commit ab80f0b21fbb9c44d40e6f7a99090188f4ed2f71) (cherry picked from commit 3912f99ecae61dc7fe89c076a654332e3adb1bdc) --- 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/}