From nobody Sat Feb 03 13:23:24 2024 X-Original-To: dev-commits-ports-branches@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 4TRtcs17fLz59My4; Sat, 3 Feb 2024 13:23:25 +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 4TRtcs0g7Zz40SG; Sat, 3 Feb 2024 13:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706966605; 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=8+VLiGsNryPP6jMscTytsECZvecJC3+YILWS6Id7DKA=; b=dSPEvVj0cjdHtZTn7FUO8NPxXw5Z73n+DYYS/wNGWDHVulT6Iv0WWjv3yoHSw1ac7ta4pz IMA1o+NeNg9ShbdhX2QaauuNhKZJ7di1gtUdL0nWdp5/WEUBDcyeLL7WSogxrnGymHIMAe GshEuteAU1g75H306idkynSHo3XWK/Axg2wPxweqpemZRvAx9o5g9TQompKlV62s3MrITU KPbYYAORb5tPStUOc+whr3YtDAbCdIGTnjK458iKClZIf8duFI2TZQjQCHxAXPZPbf8EXz So3OmA2fYrB4GPPY70qDGRaFSaZ3d6a7qUVEaL/ow61d5w3vae7M9eLFvZmb0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706966605; 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=8+VLiGsNryPP6jMscTytsECZvecJC3+YILWS6Id7DKA=; b=s6HVLogx7hxhoE4yFBwvd21zyUU73yxNyMdP+yTyEHUMWxWVV5aTAxK0AwNuP057r/9rTx KHroZxyR0uC7Tch3rqXq8p2Xn4XX7TC8Xrcxtd2hXS8c8169HrIffqF7RQF8A5xBLbPKV5 6+ROKre3XiUs/mU5+RMI/2wGRf567qOzxAVEsY3kINapgScYLWE9G0ucZ2udnEp3S95WHe gNaWlLewLjvx7hSj3nZ1dETZ34aa07t+Z8xCUKhI78xGKgRPQQuqQlZzZi4j9JvHsZHZFs AABHkKB8T7OdE13xG94MHYrjFQC88wsnCeLVRwSNh524j1acOlHWtDkcI8anCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1706966605; a=rsa-sha256; cv=none; b=rYaZCdSZ5f6C+R5TrQw0tc3ipjOOpWs3VAb3UztIpdnEoCK9ScDUPvYOYZBTmDUu0Mb9LS uQ7kYL6JYq53J08jKm/2cVsu/L7DOQfb+6jSP2sQU4Akqn6CgG5Q5nDS05PFZJ+n1ymicw zPylSVSVrZoZz6rve/YN0qkP8QfulOWefBsSqkofwG7ZH0Z1hyVq+cwSRMxuUfmrBuGzZN vrWi3Alw6j1Tt4IUQRXHttEU2NLmhVIar8uXxI/N6XPNXctxM2FkJiUH6gob2SDqAKuJOT HAXaqFz5/xjeKw1EcaEYk/A/+XAVH6p19+6AwO2nr27z5SaWD96I5usJFW5RVw== 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 4TRtcr6qgkzFmY; Sat, 3 Feb 2024 13:23:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 413DNO8N005381; Sat, 3 Feb 2024 13:23:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 413DNOKf005378; Sat, 3 Feb 2024 13:23:24 GMT (envelope-from git) Date: Sat, 3 Feb 2024 13:23:24 GMT Message-Id: <202402031323.413DNOKf005378@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: Dimitry Andric Subject: git: ca58c1ec77fd - 2024Q1 - devel/build2: fix build with clang 18 rc1 List-Id: Commits to the quarterly branches of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-branches@freebsd.org X-BeenThere: dev-commits-ports-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: ports X-Git-Refname: refs/heads/2024Q1 X-Git-Reftype: branch X-Git-Commit: ca58c1ec77fdd229c0ad781eca9e4185f931138d Auto-Submitted: auto-generated The branch 2024Q1 has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=ca58c1ec77fdd229c0ad781eca9e4185f931138d commit ca58c1ec77fdd229c0ad781eca9e4185f931138d Author: Dimitry Andric AuthorDate: 2024-02-02 16:50:59 +0000 Commit: Dimitry Andric CommitDate: 2024-02-03 13:22:37 +0000 devel/build2: fix build with clang 18 rc1 As of rc1, clang 18 has a version id formatted as "18.1.0rc". Similarly, builds from the upstream main branch typically have a version id looking like "19.0.0git". Due to the way it parses version strings, devel/build2 cannot handle this format, and fails with: LC_ALL=C c++ -v error: unable to extract Clang minor version from '18' info: use config.cxx.version to override I submitted https://github.com/build2/build2/issues/360 upstream, and they committed a fix: https://github.com/build2/build2/commit/0e1b73e3, which should eventually end up in 0.17.0. The fix applies without issues on 0.16.0, so add it as a patch. PR: 276785 Approved by: fuz (maintainer) MFH: 2024Q1 (cherry picked from commit b7f06adf2f2ec46b17ae6ee21d18d73c0959145e) --- .../files/patch-build2_libbuild2_cc_guess.cxx | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/devel/build2/files/patch-build2_libbuild2_cc_guess.cxx b/devel/build2/files/patch-build2_libbuild2_cc_guess.cxx new file mode 100644 index 000000000000..6721fdcbc86d --- /dev/null +++ b/devel/build2/files/patch-build2_libbuild2_cc_guess.cxx @@ -0,0 +1,79 @@ +commit 0e1b73e3b43bca7c1d77ed669b364819ad211da9 +Author: Boris Kolpackov +Date: 2024-02-02T11:41:33+02:00 + + Handle unseparated `rc` and `git` suffixes in Clang version (GH issue #360) + +--- build2/libbuild2/cc/guess.cxx.orig 2023-06-19 05:26:33 UTC ++++ build2/libbuild2/cc/guess.cxx +@@ -2421,6 +2421,12 @@ namespace build2 + // + // emcc (...) 2.0.8 + // ++ // Pre-releases of the vanilla Clang append `rc` or `git` to the ++ // version, unfortunately without a separator. So we will handle these ++ // ad hoc. For example: ++ // ++ // FreeBSD clang version 18.1.0rc (https://github.com/llvm/llvm-project.git llvmorg-18-init-18361-g22683463740e) ++ // + auto extract_version = [] (const string& s, bool patch, const char* what) + -> compiler_version + { +@@ -2435,8 +2441,28 @@ namespace build2 + // end of the word position (first space). In fact, we can just + // check if it is >= e. + // +- if (s.find_first_not_of ("1234567890.", b, 11) >= e) ++ size_t p (s.find_first_not_of ("1234567890.", b, 11)); ++ if (p >= e) + break; ++ ++ // Handle the unseparated `rc` and `git` suffixes. ++ // ++ if (p != string::npos) ++ { ++ if (p + 2 == e && (e - b) > 2 && ++ s[p] == 'r' && s[p + 1] == 'c') ++ { ++ e -= 2; ++ break; ++ } ++ ++ if (p + 3 == e && (e - b) > 3 && ++ s[p] == 'g' && s[p + 1] == 'i' && s[p + 2] == 't') ++ { ++ e -= 3; ++ break; ++ } ++ } + } + + if (b == e) +@@ -2472,8 +2498,15 @@ namespace build2 + ver.patch = next ("patch", patch); + + if (e != s.size ()) +- ver.build.assign (s, e + 1, string::npos); ++ { ++ // Skip the separator (it could also be unseparated `rc` or `git`). ++ // ++ if (s[e] == ' ' || s[e] == '-') ++ e++; + ++ ver.build.assign (s, e, string::npos); ++ } ++ + return ver; + }; + +@@ -2496,7 +2529,10 @@ namespace build2 + + // Some overrides for testing. + // ++ //string s (xv != nullptr ? *xv : ""); ++ // + //s = "clang version 3.7.0 (tags/RELEASE_370/final)"; ++ //s = "FreeBSD clang version 18.1.0rc (https://github.com/llvm/llvm-project.git llvmorg-18-init-18361-g22683463740e)"; + // + //gr.id.variant = "apple"; + //s = "Apple LLVM version 7.3.0 (clang-703.0.16.1)";