From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=uber.com header.i=@uber.com Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by mail-b.sr.ht (Postfix) with ESMTPS id DDF2111EEC2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 6 Sep 2021 05:14:56 +0000 (UTC) Received: by mail-ed1-f48.google.com with SMTP id u19so7815945edb.3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 05 Sep 2021 22:14:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uber.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=7Ep7iTYyg1DX8Hx9AdVtBxHJWPcMfNRMH8EVv7gJalA=; b=0T3cef8TsPS2gcoAtVKBRrHY8D9aD8FJvFDsizN3PMB0F8l32dLdRv8+TvHspaJs5l lJdSEzmJ6Hkn1T3DPxjr7qvm9s4+ThTSRkEwFtWerRuftLWxMlUml73Cs0fIhN7FohhH LNbRleFGhs9sM2EueHyR7e7sc1qdxDd+644IQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=7Ep7iTYyg1DX8Hx9AdVtBxHJWPcMfNRMH8EVv7gJalA=; b=Nig0qyUf+TPvScOEAThWQagGYc0pZQnLXdiWR41czq9ODyMBe8281D+altQ/+U7QbU 6x+GKNecxPw/rLFsxDQ+FILzF4tRaV/oQ4nVBsq0ssVb1P4fY5IWlXSn2Rq3tZwSTKtP Ax2Qz8BX72ywIcQo1ZM2JLhQF6UjvkbGBO0QyXiJT416xQLSjGQUB8arl+Q0fKNFcIJ9 UqwF8qkIyeMfjiL0faClIsNnXJhfa5qEyS6HwFDOdK7f344ExdzDmZNOxWnmhtZCIvpl AU1dQ6HHK1qKY+VEbkvoq6w05PYihxHk7szMaahtw3USzpe6cF9YepAOxqZNyzM2NWWp GUFg== X-Gm-Message-State: AOAM530RHZDN0bVwF4byjoCILBF7XpLVHfGKWcrFVgSdkYjbhCtTeR6T GY+hwcM4PIIVUci3xE6TPMfllXXNuws916eSE25Cew== X-Google-Smtp-Source: ABdhPJx06von7JT53TGVZFlki01ijRhmL1GfVC0Mnhpi5vWifJyzoQeSjcDPzMuM5EjLg2LfBIJutd4b5I55Ak3kpsk= X-Received: by 2002:a05:6402:6cf:: with SMTP id n15mr11581412edy.85.1630905295539; Sun, 05 Sep 2021 22:14:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 6 Sep 2021 08:14:46 +0300 Message-ID: Subject: Re: Cross-compilation with zig To: Adam Bouhenguel , ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Steeve Morin , Zhongpeng Lin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable + ~motiejus/bazel-zig-cc@lists.sr.ht (please subscribe[0]). Also switching from top-down to bottom-up posting. On Sun, Sep 5, 2021 at 10:14 PM Adam Bouhenguel wrote= : > > Thanks for adding me to the thread, Motiejus. > > Steeve, I'm very curious to hear how your investigation goes. Please keep= me posted! > > I've been bitten a few times now by regressions in zig cc. Both 0.7.1 and= 0.9-dev have problems with C++ exceptions and break runtime behavior of th= ird party libraries I'm using. Zig 0.7.1 to zig 0.9-dev moved from clang-11 to clang-12, so, from the surface, I would attribute behavior changes to this. Did you narrow this down to something specific? > Seems like the ability to build a set of specific projects in bazel (with= a hermetic zig cc based toolchain) might be helpful for keeping everyone o= n the same page. Have you noticed regressions with `zig cc` when upgrading zig? Since it is covered by "bug stability program[1]", I expect zig upstream to be quite responsive with regressions there. If C++ behavior changes, it's probably a fault of a new clang, which should be reported to Apple (likely with help of zig developers, since they have done this many times). > To this end, what do you folks think about having a small suite of accept= ance tests for the toolchain? We already have //test:hello[2]. Feel free to add yours. > As a bonus we might be able to use qemu to ensure that the cross-compiled= artifacts actually work. I am looking for multi-arch build support in sr.ht, which is "not yet available"[3], which would be ideal. Currently I am cross-compiling to a few architectures and checking whether the resulting "file" command returns an expected string. I agree qemu-system- is a good next step. What are your architectures of interest? Motiejus [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc [1]: https://ziglang.org/download/0.8.0/release-notes.html#zig-cc [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/test/BUILD [3]: https://man.sr.ht/builds.sr.ht/compatibility.md [4]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/.build.yml > Cheers, > Adam > > On Thu, Sep 2, 2021, 06:31 Motiejus Jak=C5=A1tys wrot= e: >> >> Let me know how it goes. I set up a mailing list on srht for patches, if= any. >> >> On Thu, Sep 2, 2021, 15:42 Steeve Morin wrote: >>> >>> Hey Motiejus, >>> >>> Thank for working on that! >>> I'll see if I can hack on it one weekend. What I'd like though is have = the `zig cc` toolchain have the same level of features as the "host" toolch= ain. >>> And it feels to me that doing the toolchain.bzl file by hand isn't the = right way to do it. I'm still looking into how bazel generates it and see i= f we can let it do it. >>> >>> Steeve >>> >>> >>> On Wed, 1 Sept 2021 at 21:03, Motiejus Jak=C5=A1tys = wrote: >>>> >>>> Zhongpeng, thank you for bringing the group together. +Adam, who creat= ed the initial toolchain (mine is a fork of Adam's initial hard work), and = he has obvious interest in the toolchain too. >>>> >>>> Steeve, my zig-cc toolchain is hosted here. I am obviously interested = in solving all the outlined issues, and rules_go#2894 is one of them. I am = currently very limited in capacity myself, but happy to merge improvements,= either the mentioned issues or anything else you find reasonably necessary= for usage of the toolchain. >>>> >>>> Motiejus >>>> >>>> On Wed, Sep 1, 2021 at 9:17 PM Zhongpeng Lin wrote: >>>>> >>>>> Hello Motiejus, >>>>> >>>>> In today's Bazel-Go maintainers meeting, Steeve (cc'ed) mentioned tha= t he wanted to work on zig-based toolchain for rules_go. Steeve is also an = expert in cgo support in rules_go. Checking the last email you sent, it see= ms you've made good progress on that. Do you still need help on rules_go#28= 94? Steeve is probably the most knowledgeable person for you to talk to if = you need. >>>>> From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=uber.com header.i=@uber.com Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by mail-b.sr.ht (Postfix) with ESMTPS id 7F60211F01D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 14 Sep 2021 12:18:17 +0000 (UTC) Received: by mail-pf1-f176.google.com with SMTP id 18so11985902pfh.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 14 Sep 2021 05:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uber.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OrT2HLfEH5T84qiDOOT1fkL1jScAGScbvztl9Bh21pc=; b=90ZPl0uDFnNAu2aY6Ya/MrR2y70iL0LQKpEOGY09XP+7MwX7/86CY6t52iN6YXoH2z NyujV8NNjIvkDfTt9lTbuTlXfH6zw/zWuXooDeKhJ5F8EV51HksugrDVwRL7pnv8H7ir a69BVlE46C9ZTXFo+uPGKG0LzUu/FB9bCESWQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OrT2HLfEH5T84qiDOOT1fkL1jScAGScbvztl9Bh21pc=; b=Ce65X6V72tRXX3lsb+mUwj1Tl/p6n/UYy3NIcFZ4HyhO7r02nN9WV8dFapeKhWHcHq aQUqblPaAUew8VnVJ76tt5ycFfyt0r+2uyq50xnoV6K6/1T3bvxJ6/KzUG2eEV/O7hVB xkMaYXWM4X1d62n18Z0IYGwfH8oNvgS+gNjuaoPipRxDKW5oJ7/hNpWYNK3Bdg1klq0j JcDZWDVt6Icz2V7bI/Hg5rm4jWjJT2UVhO2dU/ORhTei5G4x4bEB5K2vnBNnewmIZkla aruAAoUK6ES8wGwDVEs4dkjrtcF4iG+Y+6VdNs7S4c/IK5YPqP3ZWnjiS9SYof/fx3hp MjNg== X-Gm-Message-State: AOAM530UpTvU3UcNBbcQR2g9AazB7DLWy/Efj1NzsIcbZOWRJyxpGydG Oc79jHwoMosaawx9gQ4QRMbjlwM9ThZOelu/hmh05g== X-Google-Smtp-Source: ABdhPJwrF4zc8+XPliKolcZkIgfEaf2EZWHhN4u3jxGdRRd12ErlTeUw0hq/4vbWlDizwNXDf/l1lw58uq4TfJsojxQ= X-Received: by 2002:a62:8c08:0:b0:434:652b:1319 with SMTP id m8-20020a628c08000000b00434652b1319mr4534198pfd.24.1631621895297; Tue, 14 Sep 2021 05:18:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 14 Sep 2021 15:18:04 +0300 Message-ID: Subject: Re: Cross-compilation with zig To: Steeve Morin Cc: Adam Bouhenguel , ~motiejus/bazel-zig-cc@lists.sr.ht, Zhongpeng Lin Content-Type: text/plain; charset="UTF-8" On Tue, Sep 14, 2021 at 2:21 AM Steeve Morin wrote: > > Alright you guys, I found a way to use bazel's auto toolchain configuration with zig! > It's rather archaic for now, but it works, I got protoc compiled and running for both macos and linux. > > Still needs some love, I'll post updates in the next few days. Looking forward to anything that will simplify it's setup/boilerplate. > The main idea is to give to @bazel_tools//tools/cpp:unix_cc_configure.bzl configure_unix_toolchain() what it want, and that's it! Interesting! I have slightly updated the toolchain today: - added support for darwin-arm64 and linux-arm64 host (though don't have an arm64 machine to test this with). - tried to upgrade zig itself, but cross-compilation to darwin-amd64 fails with it; there seems to be a regression somewhere. I will look into it sometime soon. ... so please rebase before sending patches. Regards, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mail-b.sr.ht (Postfix) with ESMTPS id 7AA8311EF38 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 29 Oct 2021 04:45:34 +0000 (UTC) Received: by mail-lf1-f45.google.com with SMTP id p16so18563959lfa.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 28 Oct 2021 21:45:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=e1CN1JJJM9joKaUlYnsska9HvRy43YfFeSGJYgiQjQs=; b=N7pGbkjAvxhSXwB+tTVrJHBV8BHUuBWcqQlTvb/BtI/Jc5fNEvIj/GA7D/AxiqmIR1 27T8aTQ1DlzX+OQOW406lwGXbvZZL3V0ehPNMd7iusogsbnKu2EHBr+ThWpVtedV7vPU /9iK0Z4ZmfsEN7uJIfRUN7dG+A2YhndnNXTgPJ25NCCICu4PpIOqbgYjywgE1GiC0Hay YZymEWSaVLn7vKlbEkbxhKZ+UztEBLATrHZRKj5RfKyaqp2tlWgH+0o3I/gLxrtZVcX+ TKhoRqrxjGjYZrkdYwrVpHQ3k2w9/PTe7fRODmp9cYS9PRwEQC30OFWWz3eXgps+DMc8 LPbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=e1CN1JJJM9joKaUlYnsska9HvRy43YfFeSGJYgiQjQs=; b=r89AESahTPDW+InsPvQBy5oShDlHrIWGg57AY8KjJBEXQgzGmw3EvmJjiLcsgSl+Wb 8zqr7NZ1dMcpon8GeT6jHeCKGHshHUqTFd6g52JIBGF/zUCVb56UUBDR3ioI7bGrPQxB vPys0M00zxd8XxmgXoNXGlzsrPQb5Ey6G4c8LoGfByNU1MGq4QOeJalsLpZlqBRufnC8 KGaMUySwLmdUEJkvr6cwUVU0aH/NFH/a3SNJjqbErS7+BsG8L8c2mHfgXHRK5gKDSSW5 OeZFJhvSyckmkmydjakuc2ujue4AmXI0zHOqHG6x4BmRn9zLXGsubF3PTdnznc0FpSve 3QLw== X-Gm-Message-State: AOAM530q79ok7W8D4VaBKIDpBl3HwOetwH0gt33opT4qmBP6+foicf1Z 2uv9qkI/iyrmnil6tOaY/QE= X-Google-Smtp-Source: ABdhPJyuFdbOG4l8g9NVpT78xmShrZBBHNU8pGNzJkGl1MbHL1FDvr/UfAiOZ67yA0UmaKYiXhMxsQ== X-Received: by 2002:a05:6512:33c2:: with SMTP id d2mr7692886lfg.182.1635482732884; Thu, 28 Oct 2021 21:45:32 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id e22sm493971lfr.237.2021.10.28.21.45.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Oct 2021 21:45:32 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 29 Oct 2021 07:45:31 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Motiejus =?utf-8?Q?Jak=C5=A1tys?= Cc: Steeve Morin , Adam Bouhenguel , ~motiejus/bazel-zig-cc@lists.sr.ht, Zhongpeng Lin Subject: Re: Cross-compilation with zig Message-ID: <20211029044531.vvtv7btw2ur7u6zc@mtpad.i.jakstys.lt> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Tue, Sep 14, 2021 at 03:18:04PM +0300, Motiejus Jakštys wrote: > On Tue, Sep 14, 2021 at 2:21 AM Steeve Morin wrote: > > > > Alright you guys, I found a way to use bazel's auto toolchain configuration with zig! > > It's rather archaic for now, but it works, I got protoc compiled and running for both macos and linux. > > > > Still needs some love, I'll post updates in the next few days. > > Looking forward to anything that will simplify it's setup/boilerplate. Hi all, the way plans are panning out now, at some point in 2022H1 bazel-zig-cc will be scrutinized by much more competent colleagues than myself, before being moved to github.com/uber (or equivalent). After that major changes will be much harder to make. Steeve, if you are still considering on major changes in bazel-zig-cc, this year is better than next year. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 57B3B11EF37 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 5 Nov 2021 13:23:34 +0000 (UTC) From: ~mjonaitis Date: Thu, 04 Nov 2021 18:54:42 +0200 Subject: [PATCH bazel-zig-cc] add go_binary override Message-ID: <163611861421.17091.108675275474200386-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~mjonaitis To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Mantas Jonaitis --- BUILD | 2 ++ README.md | 7 +++++++ rules/BUILD | 0 rules/go_binary_override.bzl | 27 +++++++++++++++++++++++++++ test/BUILD | 15 ++++----------- 5 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 rules/BUILD create mode 100644 rules/go_binary_override.bzl diff --git a/BUILD b/BUILD index 07e6a04..a34acae 100644 --- a/BUILD +++ b/BUILD @@ -1,6 +1,8 @@ load("@bazel_gazelle//:def.bzl", "gazelle") load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier") =20 +# gazelle:map_kind go_binary go_binary //rules:go_binary_override.bzl + # gazelle:build_file_name BUILD # gazelle:prefix github.com/motiejus/bazel-zig-cc gazelle(name =3D "gazelle") diff --git a/README.md b/README.md index 8ae3935..7c83752 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,13 @@ go_binary( ) ``` =20 +A workaround with [gazelle](https://github.com/bazelbuild/bazel-gazelle) `ma= p_kind` directive is possible. This will override rules_go `go_binary` rule w= ith `go_binary` which contains default `gc_linkopts` parameters. Add this lin= e to your BUILD files (usually adding to root BUILD file will suffice) and ru= n `gazelle` to automatically generate `load` statements. + +``` +# gazelle:map_kind go_binary go_binary @bazel-zig-cc//rules:go_binary_overri= de.bzl +``` + + ## incorrect glibc version autodetection =20 **Severity: Low** diff --git a/rules/BUILD b/rules/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/rules/go_binary_override.bzl b/rules/go_binary_override.bzl new file mode 100644 index 0000000..6ac14cf --- /dev/null +++ b/rules/go_binary_override.bzl @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", go_binary_rule =3D "go_binary") + +""" +go_binary overrides go_binary from rules_go and provides default +gc_linkopts values that are needed to compile for macos target. +To use it, add this map_kind gazelle directive to your BUILD.bazel files +where target binary needs to be compiled with zig toolchain. + +Example: if this toolchain is registered as bazel-zig-cc in your WORKSPACE, = add this to +your root BUILD file +# gazelle:map_kind go_binary go_binary @bazel-zig-cc//rules:go_binary_overri= de.bzl +""" +def go_binary(**args): + new_args =3D {} + new_args["gc_linkopts"] =3D select({ + "@platforms//os:macos": [ + "-s", + "-w", + "-buildmode=3Dpie", + ], + "//conditions:default": [], + }) + for k, v in args.items(): + new_args[k] =3D v + print("Key: {}".format(k)) + go_binary_rule(**new_args) + diff --git a/test/BUILD b/test/BUILD index 133fe5a..415b9c2 100644 --- a/test/BUILD +++ b/test/BUILD @@ -1,4 +1,5 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("//rules:go_binary_override.bzl", "go_binary") +load("@io_bazel_rules_go//go:def.bzl", "go_library") =20 go_library( name =3D "hello_lib", @@ -7,22 +8,14 @@ go_library( importpath =3D "github.com/motiejus/bazel-zig-cc/test", visibility =3D ["//visibility:private"], deps =3D [ - "@com_github_datadog_zstd//:go_default_library", - "@com_github_mattn_go_sqlite3//:go_default_library", + "@com_github_datadog_zstd//:zstd", + "@com_github_mattn_go_sqlite3//:go-sqlite3", ], ) =20 go_binary( name =3D "hello", embed =3D [":hello_lib"], - gc_linkopts =3D select({ - "@platforms//os:macos": [ - "-s", - "-w", - "-buildmode=3Dpie", - ], - "//conditions:default": [], - }), static =3D "on", visibility =3D ["//visibility:public"], ) --=20 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 3B44211EF37 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 5 Nov 2021 13:39:06 +0000 (UTC) From: ~mjonaitis Date: Thu, 04 Nov 2021 18:54:42 +0200 Subject: [PATCH bazel-zig-cc v2] add go_binary override Message-ID: <163611954593.18596.9121656084211429991-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~mjonaitis To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Mantas Jonaitis --- BUILD | 2 ++ README.md | 7 +++++++ rules/BUILD | 0 rules/go_binary_override.bzl | 26 ++++++++++++++++++++++++++ test/BUILD | 15 ++++----------- 5 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 rules/BUILD create mode 100644 rules/go_binary_override.bzl diff --git a/BUILD b/BUILD index 07e6a04..a34acae 100644 --- a/BUILD +++ b/BUILD @@ -1,6 +1,8 @@ load("@bazel_gazelle//:def.bzl", "gazelle") load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier") =20 +# gazelle:map_kind go_binary go_binary //rules:go_binary_override.bzl + # gazelle:build_file_name BUILD # gazelle:prefix github.com/motiejus/bazel-zig-cc gazelle(name =3D "gazelle") diff --git a/README.md b/README.md index 8ae3935..7c83752 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,13 @@ go_binary( ) ``` =20 +A workaround with [gazelle](https://github.com/bazelbuild/bazel-gazelle) `ma= p_kind` directive is possible. This will override rules_go `go_binary` rule w= ith `go_binary` which contains default `gc_linkopts` parameters. Add this lin= e to your BUILD files (usually adding to root BUILD file will suffice) and ru= n `gazelle` to automatically generate `load` statements. + +``` +# gazelle:map_kind go_binary go_binary @bazel-zig-cc//rules:go_binary_overri= de.bzl +``` + + ## incorrect glibc version autodetection =20 **Severity: Low** diff --git a/rules/BUILD b/rules/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/rules/go_binary_override.bzl b/rules/go_binary_override.bzl new file mode 100644 index 0000000..cb37807 --- /dev/null +++ b/rules/go_binary_override.bzl @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", go_binary_rule =3D "go_binary") + +""" +go_binary overrides go_binary from rules_go and provides default +gc_linkopts values that are needed to compile for macos target. +To use it, add this map_kind gazelle directive to your BUILD.bazel files +where target binary needs to be compiled with zig toolchain. + +Example: if this toolchain is registered as bazel-zig-cc in your WORKSPACE, = add this to +your root BUILD file +# gazelle:map_kind go_binary go_binary @bazel-zig-cc//rules:go_binary_overri= de.bzl +""" +def go_binary(**args): + new_args =3D {} + new_args["gc_linkopts"] =3D select({ + "@platforms//os:macos": [ + "-s", + "-w", + "-buildmode=3Dpie", + ], + "//conditions:default": [], + }) + for k, v in args.items(): + new_args[k] =3D v + go_binary_rule(**new_args) + diff --git a/test/BUILD b/test/BUILD index 133fe5a..415b9c2 100644 --- a/test/BUILD +++ b/test/BUILD @@ -1,4 +1,5 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("//rules:go_binary_override.bzl", "go_binary") +load("@io_bazel_rules_go//go:def.bzl", "go_library") =20 go_library( name =3D "hello_lib", @@ -7,22 +8,14 @@ go_library( importpath =3D "github.com/motiejus/bazel-zig-cc/test", visibility =3D ["//visibility:private"], deps =3D [ - "@com_github_datadog_zstd//:go_default_library", - "@com_github_mattn_go_sqlite3//:go_default_library", + "@com_github_datadog_zstd//:zstd", + "@com_github_mattn_go_sqlite3//:go-sqlite3", ], ) =20 go_binary( name =3D "hello", embed =3D [":hello_lib"], - gc_linkopts =3D select({ - "@platforms//os:macos": [ - "-s", - "-w", - "-buildmode=3Dpie", - ], - "//conditions:default": [], - }), static =3D "on", visibility =3D ["//visibility:public"], ) --=20 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by mail-b.sr.ht (Postfix) with ESMTPS id 758F711EF37 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 5 Nov 2021 17:51:50 +0000 (UTC) Received: by mail-wr1-f50.google.com with SMTP id b12so14932424wrh.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 05 Nov 2021 10:51:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=7twJFp2dPdxRaWs/e7LS95o7UbEONAXKNGJm0Ob1Wjg=; b=a1+afz8XHDlEPSMPQ1FTgCSKIt1O6BU6Rd4OMsdb+YfNN0HarXLbPXkX4nwcoQVJZl x0TBYE3Lv3abwUPqgPzEvO2sLMXjYZr+ys2guFw/LE3OUQwzEaewfhGeM7mJKoc9wlcf i5BNu3VV3MsDnylAcsasQ2W/9eEkhZbsQIILo+XOQjiBkEW7CmzR2aSg5bsTLYbGBjz5 4ERwpIY9uod2Z7w4cucD22+vJjRatF7upBT0EqPSw7Pkb5UUvac/z0u0tLh+uoIN+Xw9 d/X/U1GpLXoKyGTwMqq3JCNPXwaESWJdtRmzXXtW3fAC10J7Pa2a8suCwFYSiBOctRhd wVXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=7twJFp2dPdxRaWs/e7LS95o7UbEONAXKNGJm0Ob1Wjg=; b=LzlcGF6wJrQFFQM72QIjedm8gc+GZmW44ruRoyW2VSCL/XTPU47Ort7mBfXb51+d0/ HLI5U6348cQ393BjvT1Sl3xByrOLnM7E6rQLQ45WbTAjIbmXTKzOp3ngAAmeiSDuo9XN IBZFmmu6Ztil9eyyBr1zN9u4yPyLS0OS44m1coDmUG7j4hqsWaUL/e6qZayoYMQyXBzI g32V/kYSxO+2gcpzc2yI+xVewyST29fczusxH8F33q6ky3FK1nAgpTpSsOmpXQND9K3/ 8+5lYmEXYeEIjmR73OlWwQ8qC4NJK6Q3vlaJf5ts7I8unS/E/mN6aNQyespWDRsEUZ4b D9Aw== X-Gm-Message-State: AOAM532XofickUl56P1GLD+NqdFHGBckg60NosiMHdXkJsbJ8j24RYrE rXjKqltKIHdehkIOocslQnc= X-Google-Smtp-Source: ABdhPJylZROyH/qdWll3OEJtLDTYrSm3ZUIC8mX0SUk/ck3AxLsAnvVQEyMX4exhznKgRF84qJrdFg== X-Received: by 2002:a05:6000:143:: with SMTP id r3mr5508367wrx.236.1636134709441; Fri, 05 Nov 2021 10:51:49 -0700 (PDT) Received: from localhost ([195.235.63.50]) by smtp.gmail.com with ESMTPSA id n7sm8534493wro.68.2021.11.05.10.51.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Nov 2021 10:51:48 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 5 Nov 2021 19:51:54 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~mjonaitis Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc v2] add go_binary override Message-ID: <20211105175154.bzfuu666zuaxyt27@mtpad.i.jakstys.lt> References: <163611954593.18596.9121656084211429991-0@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <163611954593.18596.9121656084211429991-0@git.sr.ht> On Thu, Nov 04, 2021 at 06:54:42PM +0200, ~mjonaitis wrote: > From: Mantas Jonaitis > > --- > BUILD | 2 ++ > README.md | 7 +++++++ > rules/BUILD | 0 > rules/go_binary_override.bzl | 26 ++++++++++++++++++++++++++ > test/BUILD | 15 ++++----------- > 5 files changed, 39 insertions(+), 11 deletions(-) > create mode 100644 rules/BUILD > create mode 100644 rules/go_binary_override.bzl Applied[1], thank you. Although I left only the acknowledgement in the README; see [2] for why. Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/523943bd35d33f96f946be653311787426149135 [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/22b5d3e8e38e762a35adbfd4e13bfe5c2fb07972 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mail-b.sr.ht (Postfix) with ESMTPS id 9413211EF81 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 6 Dec 2021 20:01:32 +0000 (UTC) Received: by mail-lf1-f45.google.com with SMTP id n12so28168895lfe.1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 06 Dec 2021 12:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=XbmO1rVL6sHMTrVhfrqqOl/bwac3U2zY7lWAQ/rHyYI=; b=Ui4E27zUkVkuxOSfzUqdvgjLvJt2zihUNYH6RF9nSLXybcoG1pmy2uszNB9mMp4OKE cQuFWrQbItNulmWxf1DF3oAEgyKe7TzjEGgayv/9zDmBJzlYpVetrACw5cx1UZjxHK66 weYxKw7rBN4y9y9mADbf2HLqibIbE61Q2WRJ9N+q09jTqY3t5bOCQaN7NrTnXfvdrMHv l2+1m2JnjwmHVWnpYNaKODmnO7yBl2G/JtBF7iaVx2gzP8oYtGHZREWaeYfHuAQJtaqB 53rMyZIceJJBpsNv0Od2W/gbBXEtiER5ESSg3zFwZySBYdF5KGfnsa3fclAAxZOKyEkc n8jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=XbmO1rVL6sHMTrVhfrqqOl/bwac3U2zY7lWAQ/rHyYI=; b=xItNJQnvwvQPGYo/eRO3rcIcghIeEYeqaHhNjWXULh3N/u95sFwCOaPITMuXYQGi3Q Ob4+R3CDSl54/jzyIM9UTdXO7l9Cjoc46/uE3PcTBxchclkg5wvlW+gf7qqcOPh1CT6N 2yOR9Zm0lm5SsekIu7TZ/i/bt0ki+xegDDLDIkfpaS6FMbAwxpsC8UTU0+Cjro+6z6/b VeL4OKWI/brQARrFG3ou2k3SEH/5fGDDosuDXuvJLNxHfL19epeM1wRwKu5DNMCN0Xwf a87rrTOyys46rLwxGIiMzJ774y6pUlTWWyw4Wats/CmugLFoaaAXWLBqIQdvkSuhJm+V GtXw== X-Gm-Message-State: AOAM530mwZuS8Zn37xIFZxYCoDokFqKGJTy4gP29snlm1IBQBAVALfoZ gpL3eENl0BUbF1SG2YeWITc= X-Google-Smtp-Source: ABdhPJzSblFiitOVK4mUPDvYX2C+QgZFR6SJ06DAAEp2kDJ1On6O52o6QBmThDQZbAdysSZh0aIlgQ== X-Received: by 2002:a05:6512:2305:: with SMTP id o5mr37990569lfu.362.1638820890548; Mon, 06 Dec 2021 12:01:30 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id q24sm1443528lfp.103.2021.12.06.12.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 12:01:29 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 6 Dec 2021 22:01:28 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Thomas Way Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: bazel-zig-cc contributions Message-ID: <20211206200128.vyx7b4r5h2moe5dk@mtpad.i.jakstys.lt> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, Dec 06, 2021 at 05:57:46PM +0000, Thomas Way wrote: > Hey Motiejus! > Thank you so much for your work on the Zig CC rules. They're been > extremely helpful and a true gamechanger for the way we work with our > repository. > Per Zig's cache race conditions, we've made some changes to the rules and > were wondering what the best way to contribute them would be? Hi Thomas! See [1]; I also recommend you to subscribe. I haven't heard of anyone using bazel-zig-cc, so I guess I'll need to be more careful/upfront about breaking changes. > A quick summary: > - Use an alias for the Go-style toolchain. This should be more efficient. > - Some general cleanup of unused features (i.e unnecessary filegroups). > - Most importantly: Use a cache location inside Bazel. We found that > sometimes Zig's cache would become corrupt on the host and would become > irrecoverable even after running `bazel clean --expunge`. Using a cache > location inside Bazel fixes this issue and is good practise in general I > believe. These sound great, send them over! > I look forward to hearing from you. Have you found a need/way to specify a different default url for the zig bundle? I've been playing with it[2], but unsatisfied with the API so far. Motiejus [1]: https://sr.ht/~motiejus/bazel-zig-cc/#contribution-guidelines [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/8f5f249227aa6a9d3de441058eb9d3aae330620b From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by mail-b.sr.ht (Postfix) with ESMTPS id 9975311EF93 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 10 Dec 2021 07:57:40 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id m27so16481755lfj.12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 09 Dec 2021 23:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=HQ/hL64B6GWzGaNBVZUn4QLaOj38mBj6tYEQkF5T6Hc=; b=HRbxSWHJkd1mlvqgFdlGyFOVOlXJr8/e2Tz9lm1YMGwoH50u/oTHT0Qv3csF9/DxXs 0vAyK8YeTncB6iGP/uyCF2mzrTRLsWaJXwYMmRGq0Q32iQkHjURwdbaruxZF/EAHx4V9 1O20KHVUapedNnIzdC940UhaYnwTolyUi7tHj6dQLPyA26ukzQK6TYjrlNRZa5qyogX5 W3OTN1Kk0mfU8IOWyCJocFb0sozLbzT//HP/L+UfXkid4IvtpuEfTLIkBr/Ez0fZEXtY 0HW3+PZKwNBV8A1eMNfmX+aW0XPfPpek8mCZ41iGi/5TEBdO2O75520iDnYXYqfc4VZ2 VuCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=HQ/hL64B6GWzGaNBVZUn4QLaOj38mBj6tYEQkF5T6Hc=; b=rgCpluQpBDnpflGkjPs3XJ4t/c293EfjPhwWqR6bwA+eGn12gq6HsZ8ZC+aPW2TBVX rdcNzG6RWq4v4asAp8Ng3pDESOGLPADxlsLqS/RxW6pqTzZXNE67kCvoEDEzZ6mE8bIg AK56XSqB6bfUkl9PJbd4R7l6O4EZjM/7AQGoSY3xW1OQ2XXvQ8PjMNWrSuF6rZVq02y6 MuxhGBzQer/LQmI8M6XL9lNAYKJzeimwG2zVzmGWX+d1cJig37qc3QF1HBK57PG6rxnw gteWVE/yPY5J3ul1aBTW0VV3seXnb8KixoihOsvc7aH0/PqxjyV6Fga8WbFQvwpDat7c JRhQ== X-Gm-Message-State: AOAM533n1LpdCI+K//K6+CY/Cqn/Tw+F334UDBFn1SSG0G+TDXt+3kt+ 8NFjbzbVpYsCB/CYuQVrhM+W99Yg5Ck= X-Google-Smtp-Source: ABdhPJz07XVpRcQkYipcpP+OcZMq1nSXbEg5HLv7ziv6SBn8gWkNFCfBr4BGn3fJkpaD+Ur7p/dZpg== X-Received: by 2002:ac2:5f85:: with SMTP id r5mr10983167lfe.566.1639123055422; Thu, 09 Dec 2021 23:57:35 -0800 (PST) Received: from localhost (m90-131-39-222.cust.tele2.lt. [90.131.39.222]) by smtp.gmail.com with ESMTPSA id a1sm262188lfb.190.2021.12.09.23.57.34 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Dec 2021 23:57:34 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 10 Dec 2021 09:57:33 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: recent changes in bazel-zig-cc Message-ID: <20211210075733.ihb2b57lyges4l6d@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi bazel-zig-cc users, Due to a recent bug-fixing spree in zig, bazel-zig-cc improved quite a bit: - `zig c++` no longer errs with the dreaded FileNotFound[1]. This was very prominent on many-core machines, and now unblocked larger-scale tests. - can compile Darwin again: x86_64[2] and aarch64[3]. Although if you are interested in compiling for Darwin, Jakub's comments in [3] are must-read. My only short-term wish-list from Zig today is [4]: if Foundation framework is requested, but zig doesn't find it, the compiler should fail. Currently only a warning is emitted, and the binary is wedged with a possibly "difficult to track runtime exception"[5]: ``` warning(link): framework not found for '-framework CoreFoundation' warning(link): Framework search paths: ``` I added an Upcoming Wishlist category to the README[6], which is: - Move Zig cache path to bazel root, so bazel clean --expunge clears the zig cache. - Provide a way to specify alternative URLs for the zig toolchain (currently zig is downloaded from jakstys.lt, which is nuts). - Rename @zig_sdk//:_toolchain to @zig_sdk//toolchain: or similar; so the user-facing targets are in their own namespace. - Provide a way to specify sysroot for Darwin (OSX). See [#Compiling OS X executables] for an ongoing discussion. As bazel-zig-cc is only ~10% of my $dayjob, I am not planning to work on the above any time soon. But it gives a nice starting point for a question "how do I help/contribute"? Zig 0.9.0 is 10 days away, I will cut bazel-zig-cc 0.4.0 once that happens. [1]: https://github.com/ziglang/zig/issues/9431 [2]: https://github.com/ziglang/zig/issues/10297 [3]: https://github.com/ziglang/zig/issues/10299 [4]: https://github.com/ziglang/zig/issues/10299#issuecomment-990404953 [5]: https://github.com/ziglang/zig/issues/10299#issuecomment-989153750 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by mail-b.sr.ht (Postfix) with ESMTPS id 6E05E11EF94 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 13 Dec 2021 02:38:20 +0000 (UTC) Received: by mail-lj1-f177.google.com with SMTP id bn20so21731895ljb.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 12 Dec 2021 18:38:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=yoiGVjBHZN2xJAtcYYTqPfPA8yxvgKQ0VkBgA3ZSX20=; b=f1258iMcV/Wbk9swTsCSoWGYASEwg9aI6PY4Ee8hYi1a6CQMkWzwFdEiaaYyCOpABn 4AtFWDrTM3fZ+ctksbg+tDl782Z9o929B/4SAcfXInX9oKHsobmzO0ChoS7QaFX3JK32 /sKmWTcN6rLg8BUSmN4D8EkIG3mJV48jx1VdbHKSZtlPxHLHIWMIWJCzsTr9ihVMCYkE 2lik9ffXQLWbQScNgwirCm14fb44rEBRQ3ooXYBG/wRsPyH+IP15/fZN47AF7kPrITU1 Pbg2s7PL8WxYNogXtD7f77UsfyN7/YrJOqUIlfe0yxQb1wtMXibAB7su9uSpKZ3/PoIU q20w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=yoiGVjBHZN2xJAtcYYTqPfPA8yxvgKQ0VkBgA3ZSX20=; b=L9A3RyHTzHV+FMUGbXt87CW6BV9dZ7kcW4N2Y6v6EGeuaGYohH7qt5jGFHF3qL2+rk lv3ZY/3cCaCgBq1G1QevpO40orf+7Ci4hLvL0YLC8MqI4QWzTemvMJsq3jb8aZ9lBMIs HMXrqAuEhqatukjO/o5gykvb6oFhJF56HCwe3dIZgud75BaYNSKZKRvg/1X30S9EjBg3 +Y+qElbC26lKKpzvTnlG8VI4Gg+W1aMNeaa6gB/ybsddLGIss+jtoKWgI+Pey/P6b1bV Hc0mwChymAeWPdIBlYD5cphbFMr9uPl4ceoQCw7l6+du+lI1M2/x5jFUV0taGLBTaHR2 FadA== X-Gm-Message-State: AOAM532NYpPD+ClV9sorQ9xbOrDBd+RgPqTbGjWmHYTxFYWTzBlmr8Ae f3Y9g5K1oa/cMkDMkzESuHr/EpL1yy4= X-Google-Smtp-Source: ABdhPJwy5PDLB0wyelzZ7tpYgzeQzFLInozFHtZ4lQRvqE0cFrzbeHeXlgo/tK2Bzr/WRZea468KCA== X-Received: by 2002:a05:651c:323:: with SMTP id b3mr26998720ljp.316.1639363097753; Sun, 12 Dec 2021 18:38:17 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id z2sm1235075lfd.301.2021.12.12.18.38.16 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Dec 2021 18:38:17 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 13 Dec 2021 04:38:16 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.0-rc1 Message-ID: <20211213023816.obgjrpaxt445lzpn@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi folks, I released v0.4.0-rc1; notable changes from v0.3.4: - upgrade to zig 0.9.0-dev.1950+a76910b69. Now compilation on Darwin will fail if `-framework` was specified, but wasn't able to be linked[1]. This happens on darwin/arm64, which I had to disable CI for. A patch that passes `zig cc --sysroot=/path/to/sdk` is sought for, if you care about darwin/arm64 (or darwin in general). - remove default `-O3`[2]. This now re-enables UBSAN by default, which is an important default in upstream[3]. v0.4.0 will be released when zig 0.9.0 is released, which is scheduled for Dec 20. About undefined behavior (removal of `-O3`) ------------------------------------------- The second change broke my use of brotli, which relies on undefined behaior[4]. This is my ugly way to mitigate it: Project's WORKSPACE ``` BROTLI_COMMIT = "4ec67035c0d97c270c1c73038cc66fc5fcdfc120" http_archive( name = "brotli", sha256 = "9f57c32e5903768a03900366d8a055d49c01ecbbded046dce47eae24115b58b8", strip_prefix = "brotli-%s" % BROTLI_COMMIT, urls = ["https://github.com/google/brotli/archive/%s.zip" % BROTLI_COMMIT], patch_args = ["-p1"], patches = [ "//patches:brotli-disable-undefined-behavior.patch", ], ) ``` And the patch: ``` diff --git a/BUILD b/BUILD index 07a6793..2b4d1c1 100644 --- a/BUILD +++ b/BUILD @@ -43,7 +43,7 @@ config_setting( create_msvc_config() -STRICT_C_OPTIONS = select({ +STRICT_C_OPTIONS = ["-DBROTLI_BUILD_PORTABLE"] + select({ ":msvc": [], "//conditions:default": [ "--pedantic-errors", ``` If anyone has a better idea how to append a COPT to a downstream Bazel project, I would be happy to learn from you. Motiejus [1]: https://github.com/ziglang/zig/pull/10312/ [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/985e26b474fb7594bb385ce9382def7c95373ca9 [3]: https://github.com/ziglang/zig/issues/4830#issuecomment-605491606 [4]: https://github.com/google/brotli/blob/ce222e317e36aa362e83fc50c7a6226d238e03fd/CMakeLists.txt#L104-L108 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by mail-b.sr.ht (Postfix) with ESMTPS id 8F7BE11EFCB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 15 Dec 2021 13:13:09 +0000 (UTC) Received: by mail-lj1-f172.google.com with SMTP id z8so33239469ljz.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 15 Dec 2021 05:13:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=Nd/WltjseH/65+GIHu93VIGVBFJcCg0jRhztUcKW+SU=; b=YifS23k0ae73nB9jZrmpDfVWyVtYzoJdrWXc+5MNan5dueiYI+Pmjnkg9jxIEOwcnL +VQHmcJ/Y9M6AdNgdKZwndRPHH0Czcw5mAcY0TeM47/bsU3T430BePLSIS5/O6p6JX/2 Hwxm8E9j6Z7zWCGPQZaZp+rFNsF2Zu9O26JiTRJQUhLsUysQG6FZknoPtpfX3BeZ+yoM v2LcX8luagONzI+/x3P45oLzYKCDigtt18ZB3KRPNEshaf5dmN8RStVg1IDrw1FjUtRT oL9zGkok8U8knDDek8p7lhB3MRboeGt594Ne5yQY/fbAJ2/X+Z1+xj7B4K6RRPlnHRXO OAUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=Nd/WltjseH/65+GIHu93VIGVBFJcCg0jRhztUcKW+SU=; b=pf8ogSdB1vOvUEquKYzJlAQtWpqT33q/Bg6qFpxtPUo1WjfP9wQr2AaOrjf5vw6aop xEwyTnjTlepxIE+vzRGJia9BFnl1521dGEJQEs3U1+oUsuBbVRakm8nHmW/nxOXuMJAY 5ZO5wINNUWWAXNCoqAt9IL+AwhgnPu2ywTUtB7U+lSp04UuiykNScGtuZJ2RUx5P+0aj Fe0POq1r5B4A7Jd7CqsD1ScZryljzSpljtqAUoDyofvfGG9IThOIGh2/7CWvFFgJW8Ad ZSHXjUYfzwt/y3MJLaJplBF5rsFzROStOsSGLx30sltzXSmCrrJYG1LtXuAIm5rgj1SJ 6rrw== X-Gm-Message-State: AOAM533R97q6G/KfXwqKpV2oIKXGZVFqUK4F6MiTLkJRDOtDFFszGnUt aYBdph3HB+26HO13BPLB93gvtQqpLtc= X-Google-Smtp-Source: ABdhPJx3uV4VjLPjCmWnmHQG63N7zAf+Y2l6UqhNBFLQzu4Z0QoQypdM5i/S04/3RQt/gC2gd7mUZw== X-Received: by 2002:a2e:7305:: with SMTP id o5mr10152834ljc.180.1639573987957; Wed, 15 Dec 2021 05:13:07 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id o24sm316972lfr.117.2021.12.15.05.13.07 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 05:13:07 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 15 Dec 2021 15:13:06 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.0-rc2 Message-ID: <20211215131306.toz7czanzdhhukbe@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi folks, I released v0.4.0-rc2, this time only upgrading zig to 0.9.0-dev.1968+ff93486d0 (from 1950). Two notable changes with regards to `zig cc`: - [darwin] zig cc will now fail hard if `-framework` is specified, but not found. It used to produce a strange-looking, likely-unworkable binary. - glibc stubs are fixed[2]. I have been waiting for this for a long time. More on this in HN[3]. These resolve the last known high-severity issues. Thanks zig team! As I am not expecting any final-day fixes in zig itself, there likely won't be an rc3. A few weeks after 0.9.0 is released, I am planning to remove the dev versions from my mirror[4]. Tip of the day -------------- This is helpful in `.bazelrc`: build --compilation_mode=opt This makes non-tests to be compiled with -O2. Tests will be compiled without optimizations, making compilation faster, and retaining UBSAN[5]. Open questions -------------- The question from last week[6] still holds: how to adjust CFLAGS for an external Bazel project? Motiejus [1]: https://github.com/ziglang/zig/pull/10312 [2]: https://github.com/ziglang/zig/pull/10330 [3]: https://news.ycombinator.com/item?id=29538264 [4]: https://dl.jakstys.lt/zig/ [5]: https://github.com/ziglang/zig/issues/4830#issuecomment-605491606 [6]: https://lists.sr.ht/~motiejus/bazel-zig-cc/%3C20211213023816.obgjrpaxt445lzpn%40mtpad.i.jakstys.lt%3E From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by mail-b.sr.ht (Postfix) with ESMTPS id E229D11EF12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 27 Dec 2021 08:41:55 +0000 (UTC) Received: by mail-lj1-f177.google.com with SMTP id i11so12257671ljm.13 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 27 Dec 2021 00:41:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=wbwsWNmX9ACiddCLR8HrD69hw93GH+pGJxzcr23R6rM=; b=dJQmTKPHoBlHHAkyWNFHks9q1bXMAkrYrZl5scATSk3Njq3uDtNg6ZePXJE2E52O8j 5t3SLmKPiCE4cljIPqMwljlWHrKZZJ3kc4a6cnGGGdXhOV53CHBYg/ox7Ck8f06/v6Ja Rnw3hk5ExzZdfNIpieCztf5pAczKs+EJ83cxoJOR0KvGdof0gWsOop2M59eFpIEDuBzn wlgxkVdd3zwmO2lOS7QUwosUkIbOyZkqY7JooI6WvL6GNcxeZdzGZrGy79F2oy1Y9cNc pxAU1lr/REJg05oAR2T4pnRE5CKu2IEcxQhrj93Ev6xMxsvoNBl+1lPBGRoQjN0mH53i bD1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=wbwsWNmX9ACiddCLR8HrD69hw93GH+pGJxzcr23R6rM=; b=0a0GA3vwn7I9H5bZ+7j9JKANjBci6Cy6bVy2w2CwnWwTaa7DFuQtq3WPn1ew623EN3 0MOuhwhGNKATpe2xicuCNX0bGAYcdELucvNqCRgtJmCCemuvpNhft+iqNFqbikUU104R MXZJ4umCMwL7q9qFSHFZ2ss7yzsOpPipUsEx8vUfzbWDK+t/C0k8TbqPYu9J5GxTM0Ij pykyVmYm1dZgTnZ2/MnnTupfSVB0lyT1IVCaKlcShPKNoZBMVVoGlSPC9OcwrxvFmCyO /1VVlw3/SSvaDsubVmRRLygqLzc2g+u4u4qvhgFm6jIwycYgUMQmftvWCpg+byXQi1w2 +YIw== X-Gm-Message-State: AOAM53232Y6heOR1VRU9KAEewm/STKfMJjfFhmrKpvp33SRSRIjhReRT MzLK1b9lTWFqiutkuzy6t/tEP8Xd2Nw= X-Google-Smtp-Source: ABdhPJx6ysrzoYMTFmAldsjWAd2AmWOnspuGaPYDfO1NywR7rTlaoEe1V3yyloNzmWWczgMgR9EN1A== X-Received: by 2002:a05:651c:12c3:: with SMTP id 3mr13364719lje.311.1640594514193; Mon, 27 Dec 2021 00:41:54 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id z17sm1581748lfu.128.2021.12.27.00.41.53 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Dec 2021 00:41:53 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 27 Dec 2021 10:41:52 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: upcoming bazel-zig-cc 0.4.0 Message-ID: <20211227084152.mjkx33nbxhnls5qz@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi folks, I cannot yet release bazel-zig-cc 0.4.0, because there is a regression in `zig c++`; you may follow along here[1]. I am happy bazel-zig-cc CI caught this[2]; this regression was quite easy to trigger. I accidentally pushed 0.4.0 a few days ago, but promptly deleted the tag. If you managed to catch 0.4.0 (it was there for <1 hour), please remove the tag. My mistake, I will try harder not to do this again. Note that this affects only glibc targets; I am successfully using zig 0.9.0 with a musl target (0.4.0-rc2 with a custom zig version). Regards, Motiejus [1]: https://github.com/ziglang/zig/issues/10386 [2]: https://builds.sr.ht/~motiejus/job/654617 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mail-b.sr.ht (Postfix) with ESMTPS id 3EB8D11EFDB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 4 Jan 2022 17:16:46 +0000 (UTC) Received: by mail-wr1-f54.google.com with SMTP id q16so77569936wrg.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 04 Jan 2022 09:16:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=KTpeB6mEXbEVO9a1XtNR3GFzrxOFWa+ZXF8Ntx3rgQE=; b=Xqqvwjx/OFAQCXqZrQRRfr4f/6Hy6ogWOP8o9/6CBrtsLEFipeCcyCM4UlWOpa/9Fy VKSnc4F2ZzQVZVUES7wSf7KFum76ug5kMU5PwBuFX9A8bEf9lcHrpCxXN3x9H+9TPvC6 7sKeEX/UHtzvz+DW+rRwhFs8avs4emaJytc1g/5xrdZHYzRQBJjc0JOQk4YmenkQWYh5 CoCPoKtD+0AHORd7s4bAjdxHcSuNco/9YOtrNcpbpJoZWpBuF89vpOhiNnXkjHZ+Ib5r fpS0I0H/WuM6OPAtWk/9buSDH8eMqeQvdFfM8NQOQpfnuznjacKtcOmDxitr3qGpYlP0 o1rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=KTpeB6mEXbEVO9a1XtNR3GFzrxOFWa+ZXF8Ntx3rgQE=; b=EoaQhWc7ZeEt+nZ4OO9aWJ8EBVIwUx77DkAP8gfTjY4TOTQdw3NvqB8IXfMOaKncLL jHzl5jeG2xBsKuMluZ5T39g+CHXiauQpeE6xAwO1tMdspk8LLhNtqNXiE03o/MKLi2DX n0Z2CNfyj5kIXSn4+xGuGjoxxj3skjGSu8Qo81FdEzmQYeSCXsRGuiPehleMRtjyo4Y6 wppYadALhSCdQYpYtBK260baG1d8NlhO0I8qT3EGA9svs6Pq+2Jmn64poWYcLrwXdehI hgKWt1gq9HEetyBTozHsntK3+rM5I/9rWaqoisQ2RXCHjLk7ABmXRT+GnG/TPOklhyH2 bvOA== X-Gm-Message-State: AOAM533nQTAoOK3lrkUd5a9qUOIOlNZqE9sijsCribhFatAX7FRj5Yk4 AAxFSmbbSf9wffS6dz99DqKatIhgqm/6eHoqtxtPf1bPXSk= X-Google-Smtp-Source: ABdhPJz5SDvu+LXfelCJO5FWEZ1/pCy7suiHJOP2dd4cF85wjaqUTXVLRsNB38Gvt9oPDvc//YU8gletRsD/roItGgQ= X-Received: by 2002:adf:fc0d:: with SMTP id i13mr42706077wrr.296.1641316604314; Tue, 04 Jan 2022 09:16:44 -0800 (PST) MIME-Version: 1.0 From: Joe Schafer Date: Tue, 4 Jan 2022 09:16:33 -0800 Message-ID: Subject: uname -m on M1 MacBook returns arm64 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hello, I'm a big fan of this project. It's *lot* easier than trying to figure out other Bazel CC toolchains. One of my teammates ran into a curious error on an M1 Macbook using the latest bazel-zig-cc. cc/toolchain/defs.bzl", line 219, column 70, in _zig_repository_impl zig_include_root = repository_ctx.attr.host_platform_include_root[host_platform] Error: key "macos-arm64" not found in dictionary I traced this to toolchain/defs.bzl [1] which uses `uname -m` to get the architecture. It looks like bazel-zig-cc only supports aarch64 but M1 Macs return arm64. What's really spooky is that bazel-zig-cc worked on my M1 mac but it didn't work for two other devs on my team also on M1 macs; they got the above error. I was able to work around the problem with the following steps: https://gist.github.com/jschaf/c9be10d806020087680310e49f6e2072. - Uploaded all zig SDKs to my own hosting. I had to use my own hosting to create macos-arm64 which is really just a copy of maco-aarch64 but I had to change the folder name to match the archive name. - Added "macos-arm64" to host_platform_include_root, similar to "macos-aarch64". I'm by no means a Bazel toolchain expert, but I would have thought there's a better way to get the host platform architecture than by shelling out to uname. Appears that there's not [2] but that answer is from 2017. Maybe platforms provide a way out [3]? [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/toolchain/defs.bzl#L210 [2]: https://stackoverflow.com/a/45029999/30900 [3]: https://github.com/bazelbuild/rules_go/blob/master/go/private/go_toolchain.bzl#L95 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by mail-b.sr.ht (Postfix) with ESMTPS id E27F211EEAC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 4 Jan 2022 19:01:44 +0000 (UTC) Received: by mail-ed1-f41.google.com with SMTP id j21so152096346edt.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 04 Jan 2022 11:01:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=sqozoOSn/Xg8xLEoqSt6hEPuCR5lAjjcsfSFhFhcG28=; b=a5i7J7P+5dbR5hl9nrzn0rGAkpdY0vv+Cc/GvjD76am5EYdD6fAfwSTe7zkNzUa057 9BHEl6yT3TJB64QY7y46wtmX2arRDct0A1vVBi3rkNeU9qNm7HAc9SyjMMWH3qnKYjPj /2hKFGMdZl8nPSQQLbe5jNHWWjy4pHjTufC3T0bnslJYRb/ZF/St8ceebXJdsd2QK39r lOsuZBdKccvOU4hCU16mI+TNlXSCru8VJoagGVFrct1KumgBPaMw9TPacKtGAhJGtO2S K1v6VICmXAKJQdpUpAjJGDA8SWMTbK66r8ePnQCfmTIw5ulTzWnZsstAhlbJZ4iIXaKy 0UKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=sqozoOSn/Xg8xLEoqSt6hEPuCR5lAjjcsfSFhFhcG28=; b=Sh6rOJJbCS73hQaXWJ24BSAdUhnVxIcU9hHGN5WQIPR4n4jP+sEJjaN4kVurdXFwhP XlpdrGSkqKLwjhYUI66FDhQBMIh2kylKLftNE8C0u027dJ/iGtRnGbdUQXOAf6Q8E8+b +lMJoI55Jvl0g+ytjpGDyXUYgnZj7jxuWtZTchTRiB1f+GbBpPxIQtexfo9FbnWfM0gk 6tUJlR9VFLallMaiIDyJmgdDKhgN6xpd2Z8dUvK3GApXvgUjimuOHgiU/0omX5giImRB 3+XhMfBShAVDj3hFL+gWid4JB0YMZyr7TqRB0JJyCTZ8k9xxMnzKslN0fAqoaQW/rfxX lKMg== X-Gm-Message-State: AOAM531XYd7AS2cJLP7y2V3qLSjker6j1R0GeTmQmEqRsP+VLbmd6h09 1xv4u9Wi6FL3PkC+fRkk1PE= X-Google-Smtp-Source: ABdhPJxmWYo6/XUgdzhYjIyhKSbIam61biE8MnttlBA315Az3EYiIUwHczhxeqqmFvn3kXL69nQs5A== X-Received: by 2002:a05:6402:1702:: with SMTP id y2mr49857910edu.372.1641322903749; Tue, 04 Jan 2022 11:01:43 -0800 (PST) Received: from localhost (c54-242.i04-14.onvol.net. [84.255.54.242]) by smtp.gmail.com with ESMTPSA id nd36sm11599581ejc.196.2022.01.04.11.01.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jan 2022 11:01:43 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 4 Jan 2022 20:01:42 +0100 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Joe Schafer Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: uname -m on M1 MacBook returns arm64 Message-ID: <20220104190142.gwu27ru3iprhkyr2@mtpad.i.jakstys.lt> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On Tue, Jan 04, 2022 at 09:16:33AM -0800, Joe Schafer wrote: > Hello, > > I'm a big fan of this project. It's *lot* easier than trying to figure > out other Bazel CC toolchains. > > One of my teammates ran into a curious error on an M1 Macbook using > the latest bazel-zig-cc. > > cc/toolchain/defs.bzl", line 219, column 70, in _zig_repository_impl > zig_include_root = > repository_ctx.attr.host_platform_include_root[host_platform] > Error: key "macos-arm64" not found in dictionary > > I traced this to toolchain/defs.bzl [1] which uses `uname -m` to get > the architecture. It looks like bazel-zig-cc only supports aarch64 but > M1 Macs return arm64. > > What's really spooky is that bazel-zig-cc worked on my M1 mac but it > didn't work for two other devs on my team also on M1 macs; they got > the above error. Hi, Joe, that's interesting indeed. I don't have an M1 mac, nor know anyone with M1 mac, to test this "more closely". > I was able to work around the problem with the following steps: > https://gist.github.com/jschaf/c9be10d806020087680310e49f6e2072. > > - Uploaded all zig SDKs to my own hosting. I had to use my own hosting > to create macos-arm64 which is really just a copy of maco-aarch64 but > I had to change the folder name to match the archive name. > > - Added "macos-arm64" to host_platform_include_root, similar to "macos-aarch64". > > I'm by no means a Bazel toolchain expert, but I would have thought > there's a better way to get the host platform architecture than by > shelling out to uname. Appears that there's not [2] but that answer is > from 2017. Maybe platforms provide a way out [3]? Re [3]: looks like `declare_toolchains` is an external function, and it accepts `host` as a parameter, which should be set by the caller? If so, I am not following how that would help. If you can dig in for more information why `uname -m` returns arm64 vs aarch64 (OSX minor version? something else?). If there is no other way out, I would be OK to for an internal workaround to map darwin/arm64 to darwin/aarch64 during download, provided it's the only problem Is downloading the toolchain the only problem? Once you add that workaround, does it keep working as one would expect? Motiejus > [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/toolchain/defs.bzl#L210 > [2]: https://stackoverflow.com/a/45029999/30900 > [3]: https://github.com/bazelbuild/rules_go/blob/master/go/private/go_toolchain.bzl#L95 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mail-b.sr.ht (Postfix) with ESMTPS id 51C2B11F170 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 6 Jan 2022 22:43:41 +0000 (UTC) Received: by mail-wr1-f47.google.com with SMTP id a5so3645821wrh.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 06 Jan 2022 14:43:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=WVJwDaPOhVhlyrEU+IRdCCE5Bs5cs9UYUZN+DWlC13U=; b=Z/YdhgFssOWay1GX6DwjpELzE/O5CmnFXAOJZ+pn2YLEu07Qs9sIEatIYuFpIWdSGz 3ys7HemMNLgN40g+u90oqSWvUIBDpaxaeuzkXAyzJz/u5dnF2H+EFJdKa4b2RoldgMR2 vX/4tDQIRRuhEfjp4xdZ4sIEhjdpvpXGkI5UFaxymHpynCWdKJCF5yY5e7YcJU54tUkQ B+n9XOftt91ax28/+6M2tsQSvr/lZQHWDc6MWOuTfpmcuHdme0or7AjCV1d4Szmi1lCK 2OxbGJm9YGHDbbEwYJnk0x+tpppdnKJ3fRryThv+wh2eIsqV3pjANZRW7lN6dl2GnY5+ xcSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=WVJwDaPOhVhlyrEU+IRdCCE5Bs5cs9UYUZN+DWlC13U=; b=nHdFi9MD25Cmnt+QIo5ORWYAUAwJkPxPhA7B5pAWgHocWB4t7WqwMhBBwOW2Ak2NJn mcGhdWj/ZTE2/v0CEOo25uOng9gFD/dAxcRSnxNmgSYGGlJOUCTebMA+e8ke9UzpY6Mu Jebqf1DK8Z7Z5kbQInEtTVN2d3GPFrWbv09WRDBKwZgITEpm5cJwGMRiicQ7cT3X3w5n 1yjZCN0MMkld5x67RL8MhTt67uFMOsg2Fjuyeb+GSfMuSifmEFebd3sssa4bWP9KNDWQ PcuyVLGDarSS3tAKPnpLBbCDX8mcwvZE5jxigcq+aDyv7AeneNSs2qlUYP7G2ZVVIVHf v6dQ== X-Gm-Message-State: AOAM531xruJG1qetqb3s6+BOTwLPHXsX/dT/uuM4/WasEwcAw9Os6Sxu j4REnms9oZpJjZToGhu1eb29LLGb/DMsOjF10q8= X-Google-Smtp-Source: ABdhPJxRSSzGKj43T3pehcBp+IYkqmzlgASVkMQHNoO58R9ZKtMCcLdOodTRXRfoEgA0ot8Jo67L0SZFfh1RBrbXXCU= X-Received: by 2002:a5d:64c6:: with SMTP id f6mr50835474wri.711.1641509019852; Thu, 06 Jan 2022 14:43:39 -0800 (PST) MIME-Version: 1.0 References: <20220104190142.gwu27ru3iprhkyr2@mtpad.i.jakstys.lt> In-Reply-To: <20220104190142.gwu27ru3iprhkyr2@mtpad.i.jakstys.lt> From: Joe Schafer Date: Thu, 6 Jan 2022 14:43:28 -0800 Message-ID: Subject: Re: uname -m on M1 MacBook returns arm64 To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > If you can dig in for more information why `uname -m` returns arm64 vs aarch64 (OSX minor version? something else?) I think I figured it out. It depends on whether the Bazel binary is an amd6= 4 or arm64 binary. I installed the amd64 version Bazel first on my team befor= e arm64 was available. macOS runs the amd64 binary and propagates the architecture down the call chain, including the subshell to uname. I can confirm by running uname under x86_64 emulation with: arch -x86_64 uname -m x86_64 So I think this package will not work for an M1 mac running an arm64 versio= n of Bazel. I think an internal translation from arm64 to aarch64 is likely t= he easiest approach. > Is downloading the toolchain the only problem? Once you add that workaround, does it keep working as one would expect? Yep, as long as both the host_platform_sha256 and host_platform_include_root dictionaries account for arm64. On Tue, Jan 4, 2022 at 11:01 AM Motiejus Jak=C5=A1tys = wrote: > > On Tue, Jan 04, 2022 at 09:16:33AM -0800, Joe Schafer wrote: > > Hello, > > > > I'm a big fan of this project. It's *lot* easier than trying to figure > > out other Bazel CC toolchains. > > > > One of my teammates ran into a curious error on an M1 Macbook using > > the latest bazel-zig-cc. > > > > cc/toolchain/defs.bzl", line 219, column 70, in _zig_repository_imp= l > > zig_include_root =3D > > repository_ctx.attr.host_platform_include_root[host_platform] > > Error: key "macos-arm64" not found in dictionary > > > > I traced this to toolchain/defs.bzl [1] which uses `uname -m` to get > > the architecture. It looks like bazel-zig-cc only supports aarch64 but > > M1 Macs return arm64. > > > > What's really spooky is that bazel-zig-cc worked on my M1 mac but it > > didn't work for two other devs on my team also on M1 macs; they got > > the above error. > > Hi, Joe, > > that's interesting indeed. I don't have an M1 mac, nor know anyone > with M1 mac, to test this "more closely". > > > I was able to work around the problem with the following steps: > > https://gist.github.com/jschaf/c9be10d806020087680310e49f6e2072. > > > > - Uploaded all zig SDKs to my own hosting. I had to use my own hosting > > to create macos-arm64 which is really just a copy of maco-aarch64 but > > I had to change the folder name to match the archive name. > > > > - Added "macos-arm64" to host_platform_include_root, similar to "macos-= aarch64". > > > > I'm by no means a Bazel toolchain expert, but I would have thought > > there's a better way to get the host platform architecture than by > > shelling out to uname. Appears that there's not [2] but that answer is > > from 2017. Maybe platforms provide a way out [3]? > > Re [3]: looks like `declare_toolchains` is an external function, and it > accepts `host` as a parameter, which should be set by the caller? If so, > I am not following how that would help. > > If you can dig in for more information why `uname -m` returns arm64 vs > aarch64 (OSX minor version? something else?). If there is no other way > out, I would be OK to for an internal workaround to map darwin/arm64 to > darwin/aarch64 during download, provided it's the only problem > > Is downloading the toolchain the only problem? Once you add that > workaround, does it keep working as one would expect? > > Motiejus > > > [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/toolchain/= defs.bzl#L210 > > [2]: https://stackoverflow.com/a/45029999/30900 > > [3]: https://github.com/bazelbuild/rules_go/blob/master/go/private/go_t= oolchain.bzl#L95 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by mail-b.sr.ht (Postfix) with ESMTPS id 5DC9611EF4B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 7 Jan 2022 19:10:47 +0000 (UTC) Received: by mail-ed1-f48.google.com with SMTP id a18so24731800edj.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 07 Jan 2022 11:10:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=mta6/kgE1u4vhkm5wKRTH7vrhBWpwE4m037Yrcq+h8k=; b=cwU6fvE8zumy7+kfivo84iJf9gJnFO3+SS8nGqTNtHk63A/mVHWUMjG/8Myof0S1iB Evq8JKMfHWTlFNHAXQAqisYTJgQcDF/FhutaE0KYfGaoS0jZrASHQVLBzmSqAEL7CMsA n7arDFnhywBPsYlQYcZJdS6DQQMwk5lOU7NDl3/vMmhCLzztb5pnDMVIHDYIeNuM6JiH AnGlVvROwU2JHYu/oTZMngfhRr3qe7rAh5UVQDQAPStYvPYUPg3DVJfzlqUjlEq9dNTb KoOiftL/jkiqgO6Ef9tfl86STF1jl7ovMTrUdfaM92oh2Lrg4mPrd6j9y9I1llGAEBOr +oIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=mta6/kgE1u4vhkm5wKRTH7vrhBWpwE4m037Yrcq+h8k=; b=ahwosd6ENKxO3uOYiH1wRIn1v2+tXREtNQzPlkjcsS+a6BJXRgQr8fm+O2nvBbd9ji a8g1wRrjgeY1W1wuVs+bUKrTxE0u22v5wUxrsJpxT0axtg6v13Q5jXaUyg7tisCWdu0k B5zvX0LAzL3xkcll3CJ0lpr8B/KR+XZXGFXf5pjN4DYcnf+Wonk71z8h+WfJi6+g1cRP xfKATpGqBEbvjNHwfN8PFw+kX1PYqHUmWcTcrr2J2iUlg+Qwb/rrdrUD2Tv3z9QRwa3h w/O8Nxk1xTTf6ClJZ5S94Eb1D2Q2WQAkKNvyjg0/8sv/vWXELsfRed5FFju/KJGy6UHQ CpNw== X-Gm-Message-State: AOAM532KdgUfIklM7pNasbPCLx4Uxn6SCjPEQaXH0Xg9ng5RfMU3QrtV 1qD54g4GQcqyGWGiGcrrFc8= X-Google-Smtp-Source: ABdhPJzfI4GCxLf8Gg1gskwaSfK0xpn5sH/6JMdgodDJX7fdSEAxLasmU6+TAV5+tlW9A8nUGdygPQ== X-Received: by 2002:a17:907:9808:: with SMTP id ji8mr51547186ejc.665.1641582646132; Fri, 07 Jan 2022 11:10:46 -0800 (PST) Received: from localhost (c54-242.i04-14.onvol.net. [84.255.54.242]) by smtp.gmail.com with ESMTPSA id j9sm23919ejg.64.2022.01.07.11.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jan 2022 11:10:45 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 7 Jan 2022 20:10:43 +0100 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Joe Schafer Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: uname -m on M1 MacBook returns arm64 Message-ID: <20220107191043.5tl2jcliuh4ehp74@mtpad.i.jakstys.lt> References: <20220104190142.gwu27ru3iprhkyr2@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On Thu, Jan 06, 2022 at 02:43:28PM -0800, Joe Schafer wrote: > > If you can dig in for more information why `uname -m` returns arm64 vs > aarch64 (OSX minor version? something else?) > > I think I figured it out. It depends on whether the Bazel binary is an amd64 > or arm64 binary. I installed the amd64 version Bazel first on my team before > arm64 was available. macOS runs the amd64 binary and propagates the > architecture down the call chain, including the subshell to uname. I can > confirm by running uname under x86_64 emulation with: > > arch -x86_64 uname -m > x86_64 > > So I think this package will not work for an M1 mac running an arm64 version > of Bazel. I think an internal translation from arm64 to aarch64 is likely the > easiest approach. > > > Is downloading the toolchain the only problem? Once you add that > workaround, does it keep working as one would expect? > > Yep, as long as both the host_platform_sha256 and > host_platform_include_root dictionaries account for arm64. Hi Joe, thanks for clarifying! In that case, I will accept a patch that rewrites the architecture for OSX from arm64 to aarch64. Please don't extend the dict though, as it will be duplicate information and thus harder to maintain. Something along the lines: arch = `uname -m` # two sentence explanation (an extract from your email would suffice) if macos and arch == "arm64" arch = "aarch64" ... keep going with the `arch` variable. See https://sr.ht/~motiejus/bazel-zig-cc/#questions-amp-contributions for how to send the patch. Thanks for your report! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by mail-b.sr.ht (Postfix) with ESMTPS id 9857111EF33 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 17 Jan 2022 15:11:32 +0000 (UTC) Received: by mail-lf1-f54.google.com with SMTP id x7so58771527lfu.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 17 Jan 2022 07:11:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=LwNHKhyXvDWWILJKIlSXcX0ihphVZMlQHLLR1EMYlXU=; b=qEWnJSQXmLoa7O7rrgOAvcO9WFQ2BvtWmA+ZCjxhXSlZOq66HeIAJPBP43FcfahZHj pbqsSQjVKTIChLryf2wGpOZWTULsaez6ZMzKsE08t3uLr8g/MkeeiQbPT5Wfged8BBjg 1B/WJHerfObEcrxVft3aNArknPktFeXZiDJeySh3y3v2DJsp7yVJndpVfIq3YN0LLXXr wzSQMLABLurB4GnuTkk3E0BiInNFMCkAjLvwNfLEBLYBSgXcJ+1dpu9H16OQJGUsTb9G JJ6qOqclLXbTu7Wi//nFlxJEFXE7ZqI9H98nki+o1RA3nsyZtzwHXoCGXqTalXMHfId6 Kdgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=LwNHKhyXvDWWILJKIlSXcX0ihphVZMlQHLLR1EMYlXU=; b=2YSu1BSyV/wzreFDcWI0y0RlG627clg0N4Ow0DVUajWxO+8kP2Jgmqnl4R2Bc4n0nS gMRpQ/9mdpUv07Tea7VjmKvdg9OlflrmCP/W1MLKW/Dw56ynt7GEFR8X8EIwsL/lX/RU 71DyAp3Hbs10zM7Qti4C36uy9czFVC2DFKAtAO62y/UsFvntnRtKXmGq4f66VNTjhsVZ rAixSKwc3Chp+YM5qIBPtdFry4rYu+/f0JR+mMhmHnrRA2fzPOU3WwLVBGvnCllHW9Xq yGdH8Ij7MuD26ZpIfypZCd34GHGPW/gzUgITt6Pt2Dxfd6+Dx8TxIPFSNscpKRFgaCZj 0Skw== X-Gm-Message-State: AOAM5332i04xrhpV3v4y8o7ezH1et4Cse/k14KT/IknPaUoLFoApOX7c tQwofHgBoNfuU9P0tbNgVSzxvjB4CwM= X-Google-Smtp-Source: ABdhPJzlsEGEQrpYJ8pZKope/CpBPy7mLUnLz2qSCClcr1R1PxGlIMy/Z9NGRoAtS9/FVRoNJHLa6Q== X-Received: by 2002:a05:6512:a94:: with SMTP id m20mr14846375lfu.546.1642432291016; Mon, 17 Jan 2022 07:11:31 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id u14sm532440lfc.292.2022.01.17.07.11.30 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Jan 2022 07:11:30 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 17 Jan 2022 17:11:29 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.0 Message-ID: <20220117151129.kdvzdw3w2dnuaxrj@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I just released bazel-zig-cc v0.4.0. It is the first release after zig 0.9.0 came out. I didn't cut a release with 0.9.0 due to[1]. Many thanks Xavier for addressing that one! This version has no known upstream issues, and, as usual, a few ones[2] I will be accepting patches to, or will get to myself at some point. Happy hacking, Motiejus [1]: https://github.com/ziglang/zig/issues/10386 [2]: https://git.sr.ht/~motiejus/bazel-zig-cc#known-issues-in-bazel-zig-cc From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by mail-b.sr.ht (Postfix) with ESMTPS id ABA1911EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 26 Jan 2022 05:44:02 +0000 (UTC) Received: by mail-lj1-f177.google.com with SMTP id c15so14139217ljf.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 25 Jan 2022 21:44:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=ZPIE+T8JZChmC3IzGFrcmvVvO2ND70BBO5FF9GExK5Q=; b=HTwHTDZX/I7CSkd0ZpQuKHqBc5aAjlYedJVaOjGL6wCgeX4F5Zwsq8HQtStMYNq1mG OFHCaVkzvGAOyLNfArV0sXlrwHAUT1846q/jGURV1HJA7EGz4iMz0jMu/416FIiD55Td SWlVLhn2gb2/FRBGE00k2uAYfFSaW2iQ/XkJW7cQ+0oIVvcGfoaxA1Vk45kneGri0Vkg XZIa9J6D54SMxSIl2wsuWybMnWEgbL2jWUmvcZGpSrP1+kINzaYiPxXD8lyt5Doir4oy ppc3QF+6AMLOIy4pPRKdsdw7xb8iC6pZBiFyolxV5ebccWcr7Vj5NhtC8853QXF/Q7n7 1FTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=ZPIE+T8JZChmC3IzGFrcmvVvO2ND70BBO5FF9GExK5Q=; b=ebv8j2lQilm9IeIqajKQamk9SlFu0Erv0015fMchG4uPf+v3FIGDWbWwK52Mbprpjv 6Qcdj9y8uiD4qyG/HkZAjczQV7O+vwn+Q+nQB9jrSd/2D/1b02bOIXhVahFqCvZLYV8o 9PBrFVxpQ/UKjO+Jxmd8rxxpihhOxqdC6f8eT3MdjHRVt16oZUWxosvU/eWXBbDyvnLr cML31Xm+HK5ZiPAi7raNpKYEpb0t/bAY+wm+R2mipl0CM9sW+I3yzXZGpVMsytqbaLOs 32znAYlz06L9ryeqo3tONEP6dxGoeRtAnADHhr1XK7b9ArsOIRxjTAXLpaPXpnjLt54J r1bA== X-Gm-Message-State: AOAM530GrI6qZZJctG4jJt/0OZ7XNlMN4GT4RfjHMZcRSB8ljHV31/Ns WgSHFIZyjzgIUPwISqIAzBPSzJtpC+w= X-Google-Smtp-Source: ABdhPJxus+2x3ziq6MGKHqA4hJMsMQAFXfVHMhG8j4pNQ2iT970HgmsFoP+8MjiP6ZeAHPsO0POZyA== X-Received: by 2002:a2e:6e0e:: with SMTP id j14mr4657369ljc.510.1643175838877; Tue, 25 Jan 2022 21:43:58 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id q12sm1419957ljh.16.2022.01.25.21.43.57 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Jan 2022 21:43:58 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 26 Jan 2022 07:43:57 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.1 and envoy PoC Message-ID: <20220126054357.h5jxh7jtg75k3g57@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I cut bazel-zig-cc v0.4.1, which upgrades zig to 0.10.0-dev.399+366c76744. Notably, it implements the following linker args: * --whole-archive, -whole-archive * --no-whole-archive, -no-whole-archive * -s, --strip-all * -S, --strip-debug ... which were surfaced by Envoy trying out bazel-zig-cc[1]. I also renewed my gpg key (just updated the expiry date, keys are unchanged), which you can find in today [2]. For some inexplicable reason I keep signing my releases. Regards, Motiejus [1]: https://github.com/envoyproxy/envoy/issues/19535 [2]: https://jakstys.lt/mtpad/gpg.txt From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by mail-b.sr.ht (Postfix) with ESMTPS id 3C7CC11EFBD for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 27 Jan 2022 09:15:33 +0000 (UTC) Received: by mail-pj1-f44.google.com with SMTP id b1-20020a17090a990100b001b14bd47532so2351913pjp.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 27 Jan 2022 01:15:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=l2IL1hDG/wSYO+PblgmPSfkqj7PPv5mJfn293Xgw73s=; b=GgAXrKlG1tG2EbkFA/s7+RvEyH0tbRU06xQHi4/grJr5t34fiCntHOtuOGEM9/Ry8V FZio35kw0jk5pr4bujR5di/jGk4UBBg+z/pGti9Pj69dk2Ea24alcNokiuzkbfHJ0PYC 9TYcgC/A08g3CyWJJ0A7HwKagKXKjnC7k7XaWkywSn/FDoCwfhHZzsSnu0B3ZxNFEC+R hjqnERKrAU/urSTBamqChs9Q4zdn1cWPl7qnHMW/7o6z048YVGJP48azpBwhPFxQqWui TOri7Fxg3/6BrNsa0MMOr4tcgzlHVPtlbArKBj3f4ftd3tQVN0qga1ZLK+MxQAm3LSrX 76EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=l2IL1hDG/wSYO+PblgmPSfkqj7PPv5mJfn293Xgw73s=; b=7XviGnEKKaxoby6FvKmwDoejO/LGWTy4Z4FR4GZbuAAXW6tihvwnDbUy2YfYjDgGzE 3WE5kBPnibuTJklRKvnwoEmqHvTfIWb45rmoxK7niJ6+VNbsxwAvai7Y/jyNTq96cKCo d/Gfc8RQeqG8O/p4jT8pYSnk7UGfRwvBirSfxWkcgGn06hEZGZOrsAk6FY2yRQpRCdav 0lOs91QBS/k2hG5SBt4kERGN5xPhshWbCB8jSPT+xpQxV4yWR3l8Q4IOuGrMZRk5xi68 QAtjXozIKl6SikjDF0V5/QOyqfNhxTAIUbP/TrA7cnZM+n3qGzGWASewO+Pv8kY0sxov emmQ== X-Gm-Message-State: AOAM531u9gQGl0U6kPxkXMkmxs6zxWCAblpRS977LnnylyyVQwSByswN 6OncviD3c0m1pTAzONn7y/whSWkygZ8= X-Google-Smtp-Source: ABdhPJwylL0/y/L7pD9UsX5ejQIsUCE84DECwz3l+joFVSHQGXR3t35Btz/+0h4nVB/tBBoPWDiNqw== X-Received: by 2002:a17:902:c403:: with SMTP id k3mr1966059plk.117.1643274930940; Thu, 27 Jan 2022 01:15:30 -0800 (PST) Received: from localhost (88-119-96-125.static.zebra.lt. [88.119.96.125]) by smtp.gmail.com with ESMTPSA id ip4sm2056750pjb.8.2022.01.27.01.15.29 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jan 2022 01:15:30 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 27 Jan 2022 11:15:27 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.2 Message-ID: <20220127091527.oe53s3gm75354rdm@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I cut bazel-zig-cc v0.4.2, which upgrades zig to 0.10.0-dev.430+35423b005. Notable changes: - fix linux kernel's aarch64 include paths, use stable kernel for headers[1]. - implement --hash-style linker parameter[2]. I am working on aarch64 at my dayjob, which resulted in (1). The latter was surfaced in envoy's ongoing investigation into zig-cc and bazel-zig-cc[3]. Motiejus [1]: https://github.com/ziglang/zig/pull/10699 [2]: https://github.com/ziglang/zig/commit/40c9ce2caf8f [3]: https://github.com/envoyproxy/envoy/issues/19535 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by mail-b.sr.ht (Postfix) with ESMTPS id 7F1CF11EEDD for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 2 Feb 2022 13:32:17 +0000 (UTC) Received: by mail-lf1-f41.google.com with SMTP id u14so40638261lfo.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 02 Feb 2022 05:32:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=CaNfsprl7AZ0nZjlw9C6IbI2Leuo8/M+n+R0iuzS+cY=; b=L+7CoNGpEND6STivveZtxm5V2vE3pCeLaBKHvJvsFUh/x8n3BIVoiA/AG5o27MG0xF 4X1ikzp9eYLAFRK3ISIaZ5aYwbBwhU+noXuWqK/JRPmbLsj1rbPMefVWSfBRKud/aVhW sKBrU0KwOstAnh9kajQEBR1oUhn9GN7rUok1WEl9zximfVVL+3dMbOP9Ry0oNauYRQQw wJjL3/zlMlqaRSzhOMDMQNdXK0XXj5BdhIq6LYHG1lqTYc8Sm6ulBVY/Mc91nk2f7VMT 4REW+8p5rXDtATKuezmsM3ooxBxa6PR69aMn635w8M6YQQOyV0f/aNdW5Nc9xExoEOdM nQNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=CaNfsprl7AZ0nZjlw9C6IbI2Leuo8/M+n+R0iuzS+cY=; b=c3+2Uvi12fzwT/Rdf21yrUu9zQry0vHZp1+IUOk3uFtE3SrceACYFbKqLuORdpfAno 3Noa/4kRkCLchOI0B8+mzMwzk2uTpxBqT+X2DPcz0c0t34p/yd0EkVjDZUr/iKHeVzh9 UULn/HOYm1dYyJhauFiMBmIuzuVkUx3Wt29XMBufKuoJgKWA0271BbYqC42XCf5yCk5a OeLvnTPdRh6yGurvPcB30bpmQtUX8PWBDCACiq4qBU7Lf8mbbTbHmONyjRWw2g6+C1Gr yekWw8zjayekGtAEwyFn1Ve0WN4hQYXkR2yF7+HhcSu2UmTIKbSXhUyKjTuLxbgsdjeG owUg== X-Gm-Message-State: AOAM530ewLoLRvtGBos0lqYEAwwXrUfGvqfLBiIlO/6HSSC26FgXyiRn XeVc1bRmFHku4DlppyKu9rZIQ6i+qFQ= X-Google-Smtp-Source: ABdhPJwEoIgMEhpBLz+ai9v9eSwdLa6kW5PAcKQK+5jQByExX2Rh1+OBULJPudgaVVKKSEwwEeb7Yg== X-Received: by 2002:a05:6512:ac6:: with SMTP id n6mr22945258lfu.322.1643808734872; Wed, 02 Feb 2022 05:32:14 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id u12sm3672275lfm.308.2022.02.02.05.32.14 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Feb 2022 05:32:14 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 2 Feb 2022 15:32:13 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.3 Message-ID: <20220202133213.g6c66zwont7qyrr4@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I released v0.4.3. It only zig, which fixes[1] `--hash-style` and `--whole-archive`. The README was also updated following some users' questions[2]. "The starlark" remains the same. At some point I will not be releasing new versions of bazel-zig-cc when *only* zig is updated; at that point, you will need to download zig provide it to bazel-zig-cc. Something akin to [3]. Motiejus [1]: https://github.com/envoyproxy/envoy/issues/19535#issuecomment-1024533163 [2]: https://github.com/envoyproxy/envoy/issues/19535#issuecomment-1026111822 [3]: https://github.com/grailbio/bazel-toolchain#quickstart From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 6C8BC11EFDA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 4 Feb 2022 11:56:02 +0000 (UTC) Received: by mail-lj1-f182.google.com with SMTP id c7so8094148ljr.13 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 04 Feb 2022 03:56:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=FKPxTpAiSiY0k9tKJOGQ14KTAR6pM4E7CD61F5+ZIZg=; b=Q71lKWPQHHD7J7ZIiQyw9CPA/wvS6GzZN3HjrOD58SK/g6CFpfHwBFeDGLyI7QlD2x LaHTPfJ8QGMtubI9dhFzTxBLJGUPqk7JTKDWHWe8Hwu5UY2ngDc6GnoDmf2t+98vhwiT iZQdCzUYq3k5Od7kSi7J3MEIuuIvUNa2nDvRKCgbeCGZGenFzJ06aH64Ht6GfX2PbAaK xTPWCY8/G83aRCiCC/diLatM4RCUTDkI254mcJ55/xJJ/DvmM2cmrxvRRBldly/jZmeF gh2ZVz84Hik8v29pmbHh7fV4XHXLpMyCARe249KGIFmdDb5WFF8rKtubb7X0Jl/Uv5ML Bnng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=FKPxTpAiSiY0k9tKJOGQ14KTAR6pM4E7CD61F5+ZIZg=; b=q3seF01i5nl0FcHfaPDeGtBzJUeuUhZdYawh3fvAOimJmUKLkjTZZZmiyHfkn9hbvr UXcHcXizu0+QLPwb+z2gIOeO5zQdjOSV6+2SnNvrNWwFxpN2t5teCqsUJtTr2G9n5pXl YdNRtCZUSQjOvOsGhH0Ncv4H8wHBnchGzT8HT+K39tsSrjsPwVVFNmzQdcLYGc9O48ae 3yLJ1FB41qiFX8M/PRc32aeIDxRYhTCoD4i5AoGJ6CkvtZtQtcbg7n+d9SRy9d0FyGXL f4hdYavfhxiCLljcS0VmJskiJ58aFbPkRvKcJP9N2tafMSaS85x7MbSPVWFjn1N11hW6 elsw== X-Gm-Message-State: AOAM533rCo1xV4yuik3hvvB17GySt46j8+KS4cEhKTHoJeQ3kgaV7vjH 9FzcGJK4wJetxV5cFR4BPKwpb9Azuzo= X-Google-Smtp-Source: ABdhPJz+wWN6uIoFx23yDrPATpG+aJ1LdP/b1iN2zD70pcef7VbGScFaG0UPhS8LtIkUtd4JBKfoGw== X-Received: by 2002:a2e:b8c7:: with SMTP id s7mr1606227ljp.118.1643975759407; Fri, 04 Feb 2022 03:55:59 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id bu32sm280744lfb.287.2022.02.04.03.55.58 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 03:55:58 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 4 Feb 2022 13:55:57 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel test under qemu-aarch64: help needed Message-ID: <20220204115557.dhs7gvnyk3bapyja@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi folks, I spent a good day trying to figure this out, I need help enabling tests for aarch64. Goal: run `bazel test //test/...` for 2 architectures: amd64 and arm64. Arm64 would be executed under qemu-aarch64. This works on my laptop (amd64/buster): git clone https://git.sr.ht/~motiejus/bazel-zig-cc -b qemu cd bazel-zig-cc; direnv allow . bazel test --run_under=qemu-aarch64 \ --platforms @zig_sdk//:linux_arm64_platform \ --extra_toolchains @zig_sdk//:linux_arm64_musl_toolchain \ //test/go:go_test Fails[1] on builds.sr.ht, which is also buster/amd64. 2022/02/04 09:21:03 fork/exec /home/<...>/go_test: exec format error However, when executed directly via qemu-aarch64 on the given CI machine, it works: build@build:~/bazel-zig-cc$ qemu-aarch64 /<...>/go_test PASS build@build:~/bazel-zig-cc$ strace, investigating the bazel's sandboxing (I suspected this may be caused by linux-sandbox-pid1.cc) didn't reveal anything. Any pointers? Thanks, Motiejus [1]: https://builds.sr.ht/~motiejus/job/687819 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by mail-b.sr.ht (Postfix) with ESMTPS id DFEC611F2DA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 5 Feb 2022 04:55:32 +0000 (UTC) Received: by mail-lf1-f54.google.com with SMTP id u6so16394869lfm.10 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 04 Feb 2022 20:55:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=XKOR1hOp9WbzmRujEKM5M3zyyBvcZgTOpIPrU4XXc20=; b=KwIUKAX2O9OUNMyVWbwGDD75T/hCnF8WJgURSnnJ7LcHZiHyPh3LUzdxrovVHj70GS ZgMP25hwmgDJlexldlQ5goH7XRn/EwV+viynlbq/8W3X4Zi8r2FpH0Waa4ds/g0uLJri Xhchxy8fX8h6JKX8faOOwrTmsYrQ20oOAqxfrFfa0Fsfdy5f9JRviCmRdqcb4gyvHw5P 3JvIvyaGmL95RlR4mL5iQfKXB5pewagGtOKSf4zuqUgcyyKfP7HIHA7bOPXweyJsFJ6F KsfSuztCsYO0jA5PAGv5VZqS3L8nZUdDWgNRsyxSA85zaLH98zDrn1w7uveQ9Oycp7/D QdYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=XKOR1hOp9WbzmRujEKM5M3zyyBvcZgTOpIPrU4XXc20=; b=pDyTgKvM5oVBXYVcmDAHVYBF6u69uAleBhZXMtxTABp6jGMbdX0oFv5SD5Z+AQTyuq Qoz2/iX0A1erkQ3JTejCG5zjYIOYqbh7MvgOtAM+sgzS9xk3ASfbTCYtf3lemN4ZjBN0 R9nt+huX7vqqIDmFhBVf6UaQ3nFHu7c5HiBSIhEGE7Ck6KTQQYAXCFM2QCo68Ez3AeHF uFaHgYZBQSvY5Dpr1/8nHd9yzKPVdipni3gErD600QTHwRZ1KTW0evKmhBcmwuPoiOVz cKUOZzOKZM1fLL2S84Q0kSNyoqRDv9kfAP6Xg8jdkacdnNVzYdi7R/v8nKH8pUjiXX7y lXnQ== X-Gm-Message-State: AOAM530784Z7OOYq/FydPztz1MiT4dtQ4Hr+v++1DfRT3rqwoYRlw/3V RWN1qZX3Aunatwrf1e6RtRU6UnxfiRI= X-Google-Smtp-Source: ABdhPJxJ0QD5Cq/QWw3sHoVTecWwIu9kamdfu4rahFH5eT2GWNJIdzr+y76ReriZ2P0sWLeLjCDvoQ== X-Received: by 2002:a05:6512:4014:: with SMTP id br20mr1577156lfb.217.1644036931198; Fri, 04 Feb 2022 20:55:31 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id z27sm577500lfg.31.2022.02.04.20.55.30 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 20:55:30 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 5 Feb 2022 06:55:29 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: bazel test under qemu-aarch64: help needed Message-ID: <20220205045529.c4quz7koyncgfqiz@mtpad.i.jakstys.lt> References: <20220204115557.dhs7gvnyk3bapyja@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220204115557.dhs7gvnyk3bapyja@mtpad.i.jakstys.lt> On Fri, Feb 04, 2022 at 01:55:57PM +0200, Motiejus Jakštys wrote: > Hi folks, > > I spent a good day trying to figure this out, I need help enabling tests > for aarch64. Hi all, Piotr Sikora replied out-of-band[1]. Two things needed to be changed: 1. Install binfmt-support. That registers qemu handlers to binfmt. 2. use qemu-aarch64-static instead of the shared version. ... and now we run all unit tests on both amd64 and arm64, and the test runner[2] is less ugly. Motiejus [1]: https://github.com/PiotrSikora/bazel-zig-cc/commit/10101bf7f11ff404e66f582bbb64a3a875f8e45f#commitcomment-66048081 [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/ci/test From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by mail-b.sr.ht (Postfix) with ESMTPS id 4707611F2DA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 5 Feb 2022 05:06:31 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id x23so16612445lfc.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 04 Feb 2022 21:06:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=YqUW7x3rsx9mzzxrNShByRFQQHaM25RXdnjFURhRiTc=; b=aUMZbJhDNBCB6wVPI8VBaPiGorrlY2MGcHpyX5chxJEWcdl0gWmAFL5V55Vcor0E4i VhdChdEOXTHAxFrvDOIABVrpnZp/XrToQa1dqphOLjelmVAbyu6XI0XNgy3uXJ94kHec APDqE0WpflKzbmggrrU+85yjh/jmEW6XuLJ054dkkf8K6grBNlRi5KBQyfqfwAwuJLT6 FciVpP5r8QQ7hBCtdEUw36s/flZNMRAxvdoBnLUUNjAndU73JZwy5WyCZ6YepAIiFwpl 3m3oYcX1A7AOPI/OntxO9KYqR39DGEkfbURn8nmAYccrvY3Iw1X8yC3aTU1t7F7HP8U8 Hlnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=YqUW7x3rsx9mzzxrNShByRFQQHaM25RXdnjFURhRiTc=; b=eobDiXZbHrULR7IVzjffjOMSIRbBOjGpoBNcmRjZOxXm1LKQ+75fa/gO3+fKG6WaZs jIk77c+LTLCETXGTNwQ5mb/9n7dpCOv5M0qydN6cw2yUe49i+ooJ6CHg1ZFVMeHD+QA2 6+TnYvY2N1qsicSfaoPvHW249jbWHjvro5KKuMh+QBgwibXmo0LvICQCjA0U8dJ7adBZ 7QHOJiBPxc2kmN0jk8SUL5oi3+2lawi58Enas2XwGwk+gpwtUUsp6F6BZ/5JuuvuDs3G YSSyCmt5a3CJmvZ2dCm6e8gAJF0fk1/Us4fZ1GWjp54QhQfi45xXgv+87tuqAK0jFn0X EGAA== X-Gm-Message-State: AOAM530HYBE3U1cQ8IVpBmUBM25gs3Cl/xw++l9knhpUQUCYWIUIpy3Z pUMy1q0uu3uLFLCkwRdyd7Y6BsnaXg8= X-Google-Smtp-Source: ABdhPJzfulESjC6wntPstFC25e8xaYDPKQen6k5HrvMwq6aQsB65WuJBlVzadqsNnwNGQNv6hu9BvA== X-Received: by 2002:ac2:43ae:: with SMTP id t14mr1493698lfl.599.1644037590060; Fri, 04 Feb 2022 21:06:30 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id be20sm524965ljb.105.2022.02.04.21.06.29 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Feb 2022 21:06:29 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 5 Feb 2022 07:06:28 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.4.4 and upcoming zig 0.9.1 Message-ID: <20220205050628.3m6ewpkxnvqngcqw@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, bazel-zig-cc v0.4.4 is out. Major changes: - register "bazel platforms" @zig_sdk//:__platform. Example `--platform @zig_sdk//:linux_amd64_platform`. Note that this is in the wrong place[1] and is likely to be changed. - Tests are now executed[2] with `bazel test //test/...` on amd64 (natively) and arm64 (via qemu-aarch64-static). You are enocouraged to add your own tests if you would like me to catch issues for you before bumping zig-cc. - I did NOT upgrade zig, it's the same as in v0.4.3. Zig's maintainer Andrew asked me to test the 0.9.x release branch before he does a zig 0.9.1 release. So if you care for zig not breaking something before the release, but that doesn't really fit into zig's test suite, a test in test/ may be a good place. Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/v0.4.4/item/README.md#toolchain-and-platform-target-locations [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/v0.4.4/item/ci/test From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 2D5CC11F033; Thu, 10 Feb 2022 23:32:58 +0000 (UTC) From: ~kmicklas Date: Thu, 10 Feb 2022 23:32:57 +0000 Subject: [PATCH bazel-zig-cc 0/3] Support ARM64 Mac MIME-Version: 1.0 Message-ID: <164453597791.17553.15415322179801626658-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit With this I'm able to build a simple `cc_library` target on an M1. Ken Micklas (3): Fix darwin arm64 case in .envrc for loading bazel Interpret arm64 output from uname as aarch64 on mac OS Fix and adjust darwin libc header paths depending on CPU .envrc | 2 +- toolchain/defs.bzl | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) -- 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 5AB6311F0C1; Thu, 10 Feb 2022 23:32:58 +0000 (UTC) From: ~kmicklas Date: Thu, 10 Feb 2022 18:20:56 -0500 Subject: [PATCH bazel-zig-cc 1/3] Fix darwin arm64 case in .envrc for loading bazel Message-ID: <164453597791.17553.15415322179801626658-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164453597791.17553.15415322179801626658-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- .envrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.envrc b/.envrc index 802d197..2b1d835 100644 --- a/.envrc +++ b/.envrc @@ -17,7 +17,7 @@ case "$(uname | tr A-Z a-z)-$(uname -m)" in bzl=3D$(direnv fetchurl "${_u}linux-arm64" sha256-wd5oYN1PjV4uwnAJe9= RtaiEblxoLizhVl4S9BR6pUKE=3D);; darwin-x86_64) bzl=3D$(direnv fetchurl "${_u}darwin-amd64" sha256-5IW7+EUy0CpgsOsjx= wJhC1QI3zoZkIek8rXgmVu/LVo=3D);; - darwin-aarch64) + darwin-arm64) bzl=3D$(direnv fetchurl "${_u}darwin-arm64" sha256-wi1IYBRm2dOwQ8zXQ= FHy9CMPm59FCfCXAXyXMDqojRM=3D);; *) >&2 echo "unsupported architecture tuple $(uname | tr A-Z a-z)-$(una= me -m)" --=20 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 7571711F0C9; Thu, 10 Feb 2022 23:32:58 +0000 (UTC) From: ~kmicklas Date: Thu, 10 Feb 2022 18:22:37 -0500 Subject: [PATCH bazel-zig-cc 2/3] Interpret arm64 output from uname as aarch64 on mac OS Message-ID: <164453597791.17553.15415322179801626658-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164453597791.17553.15415322179801626658-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 693e2da..2b572d3 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -222,12 +222,15 @@ def _zig_repository_impl(repository_ctx): res =3D repository_ctx.execute(["uname", "-m"]) if res.return_code !=3D 0: fail("failed to run uname -m") - uname =3D res.stdout.strip() + arch =3D res.stdout.strip() =20 + os =3D "linux" if repository_ctx.os.name.lower().startswith("mac os"): - host_platform =3D "macos-{}".format(uname) - else: - host_platform =3D "linux-{}".format(uname) + os =3D "macos" + if arch =3D=3D "arm64": + # uname -m reports arm64 on an M1 Mac. + arch =3D "aarch64" + host_platform =3D "{}-{}".format(os, arch) =20 zig_include_root =3D repository_ctx.attr.host_platform_include_root[host= _platform] zig_sha256 =3D repository_ctx.attr.host_platform_sha256[host_platform] --=20 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 93FE611F189; Thu, 10 Feb 2022 23:32:58 +0000 (UTC) From: ~kmicklas Date: Thu, 10 Feb 2022 18:24:21 -0500 Subject: [PATCH bazel-zig-cc 3/3] Fix and adjust darwin libc header paths depending on CPU Message-ID: <164453597791.17553.15415322179801626658-3@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164453597791.17553.15415322179801626658-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 2b572d3..8ed93c7 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -54,15 +54,17 @@ _GLIBCS = [ ] def _target_darwin(gocpu, zigcpu): + min_os = "10" + if zigcpu == "aarch64": + min_os = "11" return struct( gotarget = "darwin_{}".format(gocpu), zigtarget = "{}-macos-gnu".format(zigcpu), includes = [ "libunwind/include", - # FIXME: add macos.10, macos.11 and macos.12 targets, - # and adjust the includes - "libc/include/{}-macos.10-gnu".format(zigcpu), - "libc/include/{}-macos-any".format(zigcpu), + # TODO: Define a toolchain for each minimum OS version + "libc/include/{}-macos.{}-gnu".format(zigcpu, min_os), + "libc/include/any-macos.{}-any".format(min_os), "libc/include/any-macos-any", ], linkopts = [], -- 2.32.0 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=iFZPni2s8+PUNzy+zRMfM/84OlUZYNc44+op1j+85vU=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1644536758; v=1; b=nwchpQbJskdTrW86U+nIYMXtY5qtrAAQ1PmhQMEU2DRVR6LyoUWQ0m/XoKSOakS2QYNAtKFG eH7jqHuViZjuINpv4NscE+l+u238PRAf5qTMiusugMOetvvlzw6n25oPckO9bs5/2kidDkRiuVF ZbDyp/L4+98ACknuwLr9+kOd1QZjU34L6S81GkOKE23jKHNnLT+wAmyDq2KS91EQUk4rGPuCTuK 0NnT9gJrEx3ytD5iyb7eyjtcupQBHTqbEDUpPpW7pc0QsvgTOobiv1rK7K6dwcSGBT1Kx6pml3V eMidvLC1gkLkL0Tx+2371PVoanmuBKJ+Jy/uN43X1NFlA== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 6539E11F033; Thu, 10 Feb 2022 23:45:58 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 10 Feb 2022 23:45:58 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <164453597791.17553.15415322179801626658-3@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 12m57s [Support ARM64 Mac][0] from [~kmicklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/29276 [1]: mailto:accounts@kmicklas.com =E2=9C=93 #693103 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/693103 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) by mail-b.sr.ht (Postfix) with ESMTPS id 1A0A511F006 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 11 Feb 2022 04:34:02 +0000 (UTC) Received: by mail-lj1-f171.google.com with SMTP id z20so10896707ljo.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 10 Feb 2022 20:34:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=uNKHiAfOE1XXriWNUtxZO2RyASkqd7Sf7RgJXzrnxZw=; b=bG/yg7+8EDr7XPFG5C4Pi9CaXTtY36Ndidvr6aaLEQxdc9Vk7OXjhkIsS2e3AhkmqO QMAT8Yluz5r1VpQ+/5UWk0DfRWbEI9Q7KMPS1NkkgFmbzNljLdfs8HuV1JsbjAqbDixn beA4+J1vxNy5nj0eeP70+TaPC5G+W7Rrzr7dPDa/ZY4ey3Itx3kHDZA7b5BTTVYeSNrB bNcvS+x5mpTYFaacqYSuS7pZfiF1JhC9LjOeE5mQjpVztRWPAeJJKh0tdx0/2q3zf/Kb iecc2tcaMmUerc78LmogJ4QPBlUEapaew8FQe1k12N7UNQ0blQP3SLVRf1eelSQUyF/v jUXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=uNKHiAfOE1XXriWNUtxZO2RyASkqd7Sf7RgJXzrnxZw=; b=3kpFIibEGFkECokJqdQej4nn8+cg4yeLhxFMgU4/IxcQaxTcpkeBGU7zh3jl6KQJTa WOn9lYlWNzZXGJtjAajDqELCqMFiTAJLPU16OE43QKNVzhhr5aLpIUoTp6b1AFtRYTTZ VmXLnMBsP+0AE1GaksMzm6f6wjlsUWz++hY0NcX5qKdPUogbXFQu5KzWUJDejB4sROeo l7pPb8MvLRg7sTjhRfzMffL96sIqtjXAK6o9wHAyExWH5RjQhOTXnJk8BJ2iOezNVsmw mnybyeSrIoHnl8PEovLDriZFgWJpgpmqTd0Vj82UH/50LZK+PbKEVjaGBMf7/1B8Lw6Y w+wA== X-Gm-Message-State: AOAM533jR9y8KlycSsOOu2CgJ8L5yL5a869ALofm8kSQ6tSwqAa+YvAO VTpASzqriQCJEvn/7j0F+1I= X-Google-Smtp-Source: ABdhPJybI1W3A3/4xVRPIq7fWV8haq5HpYKCBiFGcgS9/uhSDBKHjInW6LLK6a75vfURGLbrb1KjUw== X-Received: by 2002:a2e:b047:: with SMTP id d7mr7118977ljl.359.1644554038457; Thu, 10 Feb 2022 20:33:58 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id l1sm2988565lfh.151.2022.02.10.20.33.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Feb 2022 20:33:57 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 11 Feb 2022 06:33:56 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~kmicklas Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, kmicklas@uber.com, joesmoe10@gmail.com Subject: Re: [PATCH bazel-zig-cc 0/3] Support ARM64 Mac Message-ID: <20220211043356.xgchjv34q246kxa3@mtpad.i.jakstys.lt> References: <164453597791.17553.15415322179801626658-0@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <164453597791.17553.15415322179801626658-0@git.sr.ht> On Thu, Feb 10, 2022 at 11:32:57PM +0000, ~kmicklas wrote: > With this I'm able to build a simple `cc_library` target on an M1. > > Ken Micklas (3): > Fix darwin arm64 case in .envrc for loading bazel > Interpret arm64 output from uname as aarch64 on mac OS > Fix and adjust darwin libc header paths depending on CPU Thank you. Applied all 3 patches and tagged v0.4.5. cc Joe, who had problems with M1 before. These are now fixed. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 5024911EF37; Thu, 17 Mar 2022 20:04:30 +0000 (UTC) From: ~kmicklas Date: Thu, 17 Mar 2022 20:04:29 +0000 Subject: [PATCH bazel-zig-cc 0/3] Download improvments MIME-Version: 1.0 Message-ID: <164754746999.13783.11303815672892555536-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit This adds support for netrc and multiple download mirrors. Ken Micklas (3): Pull default SHA256s into constant and don't update Support multiple URL formats Support netrc for Zig SDK download toolchain/defs.bzl | 66 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 16 deletions(-) -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 7FAB111EF43; Thu, 17 Mar 2022 20:04:30 +0000 (UTC) From: ~kmicklas Date: Thu, 17 Mar 2022 15:11:17 -0400 Subject: [PATCH bazel-zig-cc 1/3] Pull default SHA256s into constant and don't update Message-ID: <164754746999.13783.11303815672892555536-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164754746999.13783.11303815672892555536-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas Starlark's default argument semantics are pretty weird and likely not what you would expect: https://github.com/bazelbuild/starlark/blob/master/spec.md#functions Additionally, this is just easier to read. --- toolchain/defs.bzl | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 8ed93c7..f942c5b 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -158,29 +158,28 @@ _URL_FORMAT_JAKSTYS =3D "https://dl.jakstys.lt/zig/zig-= {host_platform}-{version}.t =20 _VERSION =3D "0.10.0-dev.513+029844210" =20 +_HOST_PLATFORM_SHA256 =3D { + "linux-aarch64": "fc0b929948d57d1b15aaac33db0cd136a1f79830926c9285fd3f5b= 6445f1ef95", + "linux-x86_64": "c6f323b02b0bcf7b18143983bf2525640dd541f39af661e963823c9= a61a09b28", + "macos-aarch64": "0ccd8dad1264474ca824d45c3021b7e549b67792fa1a66cb9d4d70= 40775319bb", + "macos-x86_64": "3c939bebe8648c277ee66d1c600e68576e382d0309dc29eb4c32aba= 96b83f6f0", +} + def register_toolchains( register =3D [], version =3D _VERSION, url_format =3D _URL_FORMAT_JAKSTYS, - host_platform_sha256 =3D {}): + host_platform_sha256 =3D _HOST_PLATFORM_SHA256): """ Download zig toolchain and register some. @param register registers the given toolchains to the system using native.register_toolchains(). See README for possible choices. """ - sha256s =3D { - "linux-aarch64": "fc0b929948d57d1b15aaac33db0cd136a1f79830926c9285fd= 3f5b6445f1ef95", - "linux-x86_64": "c6f323b02b0bcf7b18143983bf2525640dd541f39af661e9638= 23c9a61a09b28", - "macos-aarch64": "0ccd8dad1264474ca824d45c3021b7e549b67792fa1a66cb9d= 4d7040775319bb", - "macos-x86_64": "3c939bebe8648c277ee66d1c600e68576e382d0309dc29eb4c3= 2aba96b83f6f0", - } - sha256s.update(host_platform_sha256) - zig_repository( name =3D "zig_sdk", version =3D version, url_format =3D url_format, - host_platform_sha256 =3D sha256s, + host_platform_sha256 =3D host_platform_sha256, host_platform_include_root =3D { "linux-aarch64": "lib/", "linux-x86_64": "lib/", --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id AFC4C11EF44; Thu, 17 Mar 2022 20:04:30 +0000 (UTC) From: ~kmicklas Date: Thu, 17 Mar 2022 15:39:41 -0400 Subject: [PATCH bazel-zig-cc 2/3] Support multiple URL formats Message-ID: <164754746999.13783.11303815672892555536-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164754746999.13783.11303815672892555536-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index f942c5b..f883cc2 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -168,7 +168,8 @@ _HOST_PLATFORM_SHA256 =3D { def register_toolchains( register =3D [], version =3D _VERSION, - url_format =3D _URL_FORMAT_JAKSTYS, + url_format =3D [_URL_FORMAT_JAKSTYS], + url_formats =3D [], host_platform_sha256 =3D _HOST_PLATFORM_SHA256): """ Download zig toolchain and register some. @@ -178,7 +179,8 @@ def register_toolchains( zig_repository( name =3D "zig_sdk", version =3D version, - url_format =3D url_format, + url_format =3D url_format if type(url_format) =3D=3D type("") else N= one, + url_formats =3D url_format if type(url_format) =3D=3D type([""]) els= e None, host_platform_sha256 =3D host_platform_sha256, host_platform_include_root =3D { "linux-aarch64": "lib/", @@ -239,10 +241,17 @@ def _zig_repository_impl(repository_ctx): "version": repository_ctx.attr.version, "host_platform": host_platform, } - zig_url =3D repository_ctx.attr.url_format.format(**format_vars) + + url_format =3D repository_ctx.attr.url_format + url_formats =3D repository_ctx.attr.url_formats + + if len(url_formats) =3D=3D 0: + url_formats =3D [url_format] + elif url_format !=3D "": + fail("Only one of url_format and url_formats should be specified.") =20 repository_ctx.download_and_extract( - url =3D zig_url, + url =3D [uf.format(**format_vars) for uf in url_formats], stripPrefix =3D "zig-{host_platform}-{version}/".format(**format_var= s), sha256 =3D zig_sha256, ) @@ -279,7 +288,8 @@ zig_repository =3D repository_rule( attrs =3D { "version": attr.string(), "host_platform_sha256": attr.string_dict(), - "url_format": attr.string(), + "url_format": attr.string(doc =3D "Deprecated in favor of url_format= s"), + "url_formats": attr.string_list(), "host_platform_include_root": attr.string_dict(), }, implementation =3D _zig_repository_impl, --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id D52B611EF52; Thu, 17 Mar 2022 20:04:30 +0000 (UTC) From: ~kmicklas Date: Thu, 17 Mar 2022 15:47:45 -0400 Subject: [PATCH bazel-zig-cc 3/3] Support netrc for Zig SDK download Message-ID: <164754746999.13783.11303815672892555536-3@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164754746999.13783.11303815672892555536-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index f883cc2..0ea7a26 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,5 +1,5 @@ load("@bazel_skylib//lib:shell.bzl", "shell") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_netrc", "use_net= rc") load(":zig_toolchain.bzl", "zig_cc_toolchain_config") =20 DEFAULT_TOOL_PATHS =3D { @@ -250,8 +250,11 @@ def _zig_repository_impl(repository_ctx): elif url_format !=3D "": fail("Only one of url_format and url_formats should be specified.") =20 + urls =3D [uf.format(**format_vars) for uf in url_formats] + repository_ctx.download_and_extract( - url =3D [uf.format(**format_vars) for uf in url_formats], + auth =3D use_netrc(read_user_netrc(repository_ctx), urls, {}), + url =3D urls, stripPrefix =3D "zig-{host_platform}-{version}/".format(**format_var= s), sha256 =3D zig_sha256, ) @@ -407,3 +410,25 @@ def zig_build_macro(absolute_path, zig_include_root): name =3D "{os}_{gocpu}_platform".format(os =3D os, gocpu= =3D gocpu), constraint_values =3D constraint_values, ) + +# Copied from https://github.com/bazelbuild/bazel/blob/master/tools/build_de= fs/repo/utils.bzl +# TODO: Upgrade to Bazel 5.1 and import this instead. +def read_user_netrc(ctx): + """Read user's default netrc file. + Args: + ctx: The repository context of the repository rule calling this utilit= y function. + Returns: + dict mapping a machine names to a dict with the information provided a= bout them. + """ + if ctx.os.name.startswith("windows"): + home_dir =3D ctx.os.environ.get("USERPROFILE", "") + else: + home_dir =3D ctx.os.environ.get("HOME", "") + + if not home_dir: + return {} + + netrcfile =3D "{}/.netrc".format(home_dir) + if not ctx.path(netrcfile).exists: + return {} + return read_netrc(ctx, netrcfile) --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=7E5ugq03gQepqZijHDKqWwmyoSoljjtR17dVHMYjfto=; c=simple/simple; d=sr.ht; h=Date:In-Reply-To:Subject:To:Cc:From; q=dns/txt; s=srht; t=1647548274; v=1; b=aTuLBd3oZ//M2LwIw2Rup9HB16zQiEx5QkEq/L8E/T+y7EX72a7E5EVzqniFdJ+YN0l6Lb+y 3l5fvv4E43+2OwzTCAvnIHZU0FLLjYNzCG8FuyAssCABK3+Tj+jjplVZm/StyQjbIPiEuj6/XFa jBx2L1zac0NHkjCHyQ6tcGY8pjFksQGdHoZ9DcLuUEVlXsf7xL+DUK31RzMlZFFcLPaR/wyYaf8 GUpjAWdoIp+54H0vUQgt+cjtTxzv7ILPkF1E7xUuvtpdE7pzpOLygodgIKZB2ImLMa3w/CZ11rf L0mNJgGnomwUBTrALMJZnjlwSlB3v0bYP3n2tNVTOA9hQ== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id F25FC11EF37; Thu, 17 Mar 2022 20:17:53 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 17 Mar 2022 20:17:53 +0000 Message-ID: In-Reply-To: <164754746999.13783.11303815672892555536-3@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 13m21s [Download improvments][0] from [~kmicklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/30313 [1]: mailto:git@kmicklas.com =E2=9C=93 #717171 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/717171 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) by mail-b.sr.ht (Postfix) with ESMTPS id 8FFDB11EFC0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 18 Mar 2022 05:58:51 +0000 (UTC) Received: by mail-lj1-f171.google.com with SMTP id 25so10006112ljv.10 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 17 Mar 2022 22:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=O5wygcx8YHlm9775MqZTv4VJEnvHYlC1UwlOjkrGTrU=; b=f92Rz2hfsT15yHex1cxQWB0PaPyKA48jRdlarTnZj2BiC/jJ9ZHRBQzbZw9bTgHaU9 X/8+7wTlBzGgsrot4pN+2q1TAxL0lcYR3EpBUihhIPWNRYRx2odjeBm3khgRKs4tGfy5 mZvIuoncaj5su8mw6G9rP4MF0l0BSFoF4YX9zrkMYblOxO8Pst8VpyqN83qv/wTkCYER EKD/qD3bTuD/V7qyZ37D5NudbabbwggRdazfuXcFMu7UKMY6I+JOWumd7ptA6GXiPPrh E1Tkk1cQN9CY4UAF+Ie4I3ghZ1qCMq0R6BbsO01g0tKOAOuarPmQSyN7TJAOXq8wDRaE E6zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=O5wygcx8YHlm9775MqZTv4VJEnvHYlC1UwlOjkrGTrU=; b=x+4EEFsiiz57BGZprGzyJZLYG5Ci2gvxI1xHGgyfL6PAA3t+1lS1MAK6jLbwgHf6IG ZLZ9BvaD7zR8QtFWGjoKKlVtSagMvjiGHT9k67hNMDcy3ZEX76UFBxFQTXbv0DkIYrYu r+YXtKAQhmxgCsX2Jxia0xPLHQtZJR2w6E/devmhpb8v4m1QEcVqjvkzSTbmQEY11S0b pxJAx9/7ZJPjUd9R7BGr50050Yzmxln8hk3ERFb6dBbvP49lqW2yZxrpioKr6ciGYTP7 0Bd33Y7VEMRgEin0ImL3kGDyD2sTjEFL9lkLcnGXkCxm5VIPpQIvFfHYW0jHDf5Nq5zt FNmg== X-Gm-Message-State: AOAM5310aa6U0D3DwRUXBG0km88Duds7a04XE9uMa5/NHpkVlM7i4M7Y hNtj0uOOIetpr+7wBBHVgOYvEf4a08Kg7A== X-Google-Smtp-Source: ABdhPJyQwYb1aPDuUAsW4HWDz5avo2+R7rK/HjA9tOlhOyQodRvS76ToI2lMUcBnpSgb1Jy4zkwl/A== X-Received: by 2002:a05:651c:512:b0:249:71cf:37ee with SMTP id o18-20020a05651c051200b0024971cf37eemr339884ljp.484.1647583128947; Thu, 17 Mar 2022 22:58:48 -0700 (PDT) Received: from localhost ([87.54.21.186]) by smtp.gmail.com with ESMTPSA id j14-20020a056512108e00b004481ee0cee1sm690552lfg.67.2022.03.17.22.58.48 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Mar 2022 22:58:48 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 18 Mar 2022 06:58:47 +0100 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.5.0 Message-ID: <20220318055847.p3qo75w55piucvix@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, thanks to Ken Micklas contributions, bazel-zig-cc can now do the following: - support netrc authentication. You can use internal mirrors for zig bundle now (assuming they support netrc, of course). - provide multiple download urls for the zig toolchain via `url_formats`. This option is now documented, among with `version` and `sha256`. - while at it, upgraded zig to 0.10.0-dev.1393+291f5055f. I will be cleaning up pre-0.10.0 from dl.jakstys.lt, consider yourself warned. Since `sha256`, `urls` and `version` are part of the "official" API, I will not be upgrading zig in bazel-zig-cc (or, rather, will upgrade much more rarely); please do so in your application. Reminder: dl.jakstys.lt is a small machine in my home closet. No UPS, no monitoring whatsoever. So, if you are depending on this for work, you may want to use your mirror. Happy compiling, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id B878611EF57; Fri, 25 Mar 2022 15:53:45 +0000 (UTC) From: ~kmicklas Date: Fri, 25 Mar 2022 15:53:45 +0000 Subject: [PATCH bazel-zig-cc 0/4] Upgrade to Bazel 5.1.0 and associated cleanups MIME-Version: 1.0 Message-ID: <164822362548.25319.8453123527885867890-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Also pins the Go SDK version. Ken Micklas (4): Upgrade to Bazel 5.1.0 Remove repo fetch-time uname dependency, use new os.arch instead Use upstream read_user_netrc from Bazel 5.1 Pin Go SDK to 1.18 for reproducibility .bazelversion | 2 +- WORKSPACE | 2 +- toolchain/defs.bzl | 41 ++++++++--------------------------------- 3 files changed, 10 insertions(+), 35 deletions(-) -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id D86DC11F01F; Fri, 25 Mar 2022 15:53:45 +0000 (UTC) From: ~kmicklas Date: Fri, 25 Mar 2022 11:45:39 -0400 Subject: [PATCH bazel-zig-cc 1/4] Upgrade to Bazel 5.1.0 Message-ID: <164822362548.25319.8453123527885867890-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164822362548.25319.8453123527885867890-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Ken Micklas --- .bazelversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bazelversion b/.bazelversion index af8c8ec..831446c 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -4.2.2 +5.1.0 -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id F2C8E11F0F2; Fri, 25 Mar 2022 15:53:45 +0000 (UTC) From: ~kmicklas Date: Fri, 25 Mar 2022 11:46:11 -0400 Subject: [PATCH bazel-zig-cc 2/4] Remove repo fetch-time uname dependency, use new os.arch instead Message-ID: <164822362548.25319.8453123527885867890-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164822362548.25319.8453123527885867890-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 810db50..840976d 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -221,17 +221,14 @@ _ZIG_TOOLS =3D [ ] =20 def _zig_repository_impl(repository_ctx): - res =3D repository_ctx.execute(["uname", "-m"]) - if res.return_code !=3D 0: - fail("failed to run uname -m") - arch =3D res.stdout.strip() + arch =3D repository_ctx.os.arch + if arch =3D=3D "amd64": + arch =3D "x86_64" =20 - os =3D "linux" - if repository_ctx.os.name.lower().startswith("mac os"): + os =3D repository_ctx.os.name.lower() + if os.startswith("mac os"): os =3D "macos" - if arch =3D=3D "arm64": - # uname -m reports arm64 on an M1 Mac. - arch =3D "aarch64" + host_platform =3D "{}-{}".format(os, arch) =20 zig_include_root =3D repository_ctx.attr.host_platform_include_root[host= _platform] --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 3AA1D11F178; Fri, 25 Mar 2022 15:53:46 +0000 (UTC) From: ~kmicklas Date: Fri, 25 Mar 2022 11:46:59 -0400 Subject: [PATCH bazel-zig-cc 3/4] Use upstream read_user_netrc from Bazel 5.1 Message-ID: <164822362548.25319.8453123527885867890-3@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164822362548.25319.8453123527885867890-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 840976d..112a64a 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,6 +1,6 @@ load("@bazel_skylib//lib:shell.bzl", "shell") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_netrc", "use_net= rc") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "us= e_netrc") load(":zig_toolchain.bzl", "zig_cc_toolchain_config") =20 DEFAULT_TOOL_PATHS =3D { @@ -240,7 +240,7 @@ def _zig_repository_impl(repository_ctx): =20 urls =3D [uf.format(**format_vars) for uf in repository_ctx.attr.url_for= mats] repository_ctx.download_and_extract( - auth =3D use_netrc(_read_user_netrc(repository_ctx), urls, {}), + auth =3D use_netrc(read_user_netrc(repository_ctx), urls, {}), url =3D urls, stripPrefix =3D "zig-{host_platform}-{version}/".format(**format_var= s), sha256 =3D zig_sha256, @@ -396,25 +396,3 @@ def zig_build_macro(absolute_path, zig_include_root): name =3D "{os}_{gocpu}_platform".format(os =3D os, gocpu= =3D gocpu), constraint_values =3D constraint_values, ) - -# Copied from https://github.com/bazelbuild/bazel/blob/master/tools/build_de= fs/repo/utils.bzl -# TODO: Upgrade to Bazel 5.1 and import this instead. -def _read_user_netrc(ctx): - """Read user's default netrc file. - Args: - ctx: The repository context of the repository rule calling this utilit= y function. - Returns: - dict mapping a machine names to a dict with the information provided a= bout them. - """ - if ctx.os.name.startswith("windows"): - home_dir =3D ctx.os.environ.get("USERPROFILE", "") - else: - home_dir =3D ctx.os.environ.get("HOME", "") - - if not home_dir: - return {} - - netrcfile =3D "{}/.netrc".format(home_dir) - if not ctx.path(netrcfile).exists: - return {} - return read_netrc(ctx, netrcfile) --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 5A3F711EF57; Fri, 25 Mar 2022 15:53:46 +0000 (UTC) From: ~kmicklas Date: Fri, 25 Mar 2022 11:47:10 -0400 Subject: [PATCH bazel-zig-cc 4/4] Pin Go SDK to 1.18 for reproducibility Message-ID: <164822362548.25319.8453123527885867890-4@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <164822362548.25319.8453123527885867890-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Ken Micklas --- WORKSPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE b/WORKSPACE index eeb098a..0aff5db 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -28,7 +28,7 @@ load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") go_rules_dependencies() # use latest stable. -go_download_sdk(name = "go_sdk") +go_download_sdk(name = "go_sdk", version = "1.18") go_register_toolchains() -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=vl6q2l7OOKEBhNt4qtJAxHIft46gdMwjqZrsBx08HLM=; c=simple/simple; d=sr.ht; h=Date:In-Reply-To:Subject:To:Cc:From; q=dns/txt; s=srht; t=1648224469; v=1; b=grlGdG4ZDS5JH4IcFhaf7h4A5MUCfTSq78jO+bUR4LXCdjgOxQD4LUiHPJVGHkqAWEItA8rp kagxXYt7EYuF2U3R2Ub0ygW/2G3JiwFDAlpUdA0E5d0Zm3KCMaiI8OpLwZO0C0TdJ4SdgL28K83 IuxKzxJwp/hl31zQROAhFlPI0Lln10Bo9qC1tcCqDB5qjSwBPeFl3yTD8lvlwScp0VzNvoVVKKt qFn0sfWwWkE/12x4SzFcm+HzJFvMaVIiPfxJFhvyj1z7ATuNMo18n4jFOCb0LRECw02rPIrbgvs sxbGBnopieamHloWulztJlETdQrYe/J8vsc+eIYwic5Gg== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 89B2D11F01F; Fri, 25 Mar 2022 16:07:49 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 25 Mar 2022 16:07:49 +0000 Message-ID: In-Reply-To: <164822362548.25319.8453123527885867890-4@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build failed To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 14m1s [Upgrade to Bazel 5.1.0 and associated cleanups][0] from [~kmicklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/30549 [1]: mailto:git@kmicklas.com =E2=9C=97 #722785 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/722785 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by mail-b.sr.ht (Postfix) with ESMTPS id 2AE3F11EEFB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 26 Mar 2022 14:06:40 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id bu29so17829100lfb.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 26 Mar 2022 07:06:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=Pjp+gqfwJjtlGbhG+5IobsfAGPuvy8DjKMfMfW3ADko=; b=RI7sHW8r7FyGW0vbk3qyqAq3MuUjawc9/2p29i3aZxM87nfsYuD62WXN5evfRFez2t NfhZhLLpXh7WEHvD5DJYsMJQ5/w9q+JPs+M/Px9OJkRzh9LNQWIyKHax8oNw3k+yqOEv A2KF2vD8d64ryhYW0eyeCKPNCrHNiz+xs3cxGr139Uds3+yVhFohqkuXtzSaciXbyv+d Iv1qc5/ag2fsCHjUmaPakLmGqrH0qkxo5fCD8YNcV1K0ihH6u37dZL4vxPTgx4IZUnY1 tXHuTXZOmlFafkK7rKSQSubju4TSvh0gIkpL2k07/qEkZs826Ic2LfZ6CQ+Wp1FFPK4D 3wGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=Pjp+gqfwJjtlGbhG+5IobsfAGPuvy8DjKMfMfW3ADko=; b=C4Yr3Sd0roSvg87qIpO7coq1CuXnajM/v7T1MqnSSjxl2M4lYT2GiSTEXTUreffZ7D Wrnr9o+wXrwDfm6FIg6DTuOHXJBz47j9aF5kp8DlGxSq692B62mhW4Cfs9sMslk38KxF xIpThBrG+JoSkdrGw0uds9uutUP+/yJja/JTs9DEY/HfalnTu9IylQxAOTdOa8u8ON6y VpyIEe1fXB14IsUwpyWfVNm6IzYf/ioDtW/DLs8AiDf/Z8qcyZO+UDaslRXn9Hx/8zHL u3i/gaqj77fkMfkjuISHsPz/bkjYZNCoaOKY5G3LnO2poyvmSs04hffjtdPEFKQQV4nZ UA3w== X-Gm-Message-State: AOAM533hURPTlwQiQpKPHi6X0Pec8XKTXELjIFbPijs7YX/qsA2lhh96 mudeKBHrIAjCtXojtDPGne4= X-Google-Smtp-Source: ABdhPJz8vo3yFz/ewrYm/4U/ieOtYJRdVogRkE0lVcRSKpjbVUEhyKlhBOQiTFQsXTSs8ANMmkPCxw== X-Received: by 2002:a05:6512:224e:b0:44a:7bae:527f with SMTP id i14-20020a056512224e00b0044a7bae527fmr3850225lfu.322.1648303597462; Sat, 26 Mar 2022 07:06:37 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id q17-20020a2e8751000000b00244beaacef1sm1043982ljj.18.2022.03.26.07.06.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Mar 2022 07:06:36 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 26 Mar 2022 16:06:35 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~kmicklas Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, kmicklas@uber.com Subject: Re: [PATCH bazel-zig-cc 4/4] Pin Go SDK to 1.18 for reproducibility Message-ID: <20220326140635.yhzoo74n2gudaihk@mtpad.i.jakstys.lt> References: <164822362548.25319.8453123527885867890-0@git.sr.ht> <164822362548.25319.8453123527885867890-4@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <164822362548.25319.8453123527885867890-4@git.sr.ht> On Fri, Mar 25, 2022 at 11:47:10AM -0400, ~kmicklas wrote: > From: Ken Micklas > > --- > WORKSPACE | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/WORKSPACE b/WORKSPACE > index eeb098a..0aff5db 100644 > --- a/WORKSPACE > +++ b/WORKSPACE > @@ -28,7 +28,7 @@ load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") > go_rules_dependencies() > > # use latest stable. > -go_download_sdk(name = "go_sdk") > +go_download_sdk(name = "go_sdk", version = "1.18") I was on the edge about this myself, since that would require us to upgrade it with every go version, even patch ones. But I guess you're right, leaving it like this for reproducibility. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by mail-b.sr.ht (Postfix) with ESMTPS id 942C011EEFB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 26 Mar 2022 14:07:22 +0000 (UTC) Received: by mail-lj1-f174.google.com with SMTP id g24so13600550lja.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 26 Mar 2022 07:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=skzF2rzi5tynBle2oTMXjUWcWv4l0MA2+RTOPpkNpPM=; b=GZ5rcUtXhyF0l2l1SEFkrIH4P9N+zQTGl+HTbUxhaDXriIWpkKIBg+yyl2L4pHnfe9 tEGxxjFItRJr2362cUOhjeepUZQccgruWISJdojLDpP/MKVnJF9Dbcz37lvgwzlZDhGT v3H8UVUadD1VcSBm5Wil0svCKqtmgZ49WJ6JAlY07LJqAN5O/JMZKXLG6aBvr4bP0OqI +lQRPdyCrpFPU8hSAhzVFW3TpSWqv/vpQhUeiIckZaaaig+iONeOHggcWUsouNhVVPlE eXGXLilT79UYbJUlMjMoppfy8NIHlVfnf4QLP462YF1aEjWp79hKUZhPjOc9zCAXhuPl 2uug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=skzF2rzi5tynBle2oTMXjUWcWv4l0MA2+RTOPpkNpPM=; b=cQGHnNmkyoRITbX37Kh4Xk+F1Hrwgas32m+irYiGC0GnHc9ETWxeTBIK6I0SctgYYL CqvJmahfPtgchqLFb2XS+MVK+M5p/55PSL1n7NIyaILIe4yF6Bfc086uGtFvdgy5LeWx s1zJyJoakElOu+tInarcVCS0tnXa83DKoyqir64TuK1iz0Yp/Hh/f5pB1a85DD31zeS4 MXHOwY8RVNAWcRCNnQpujtC7/VEVh1xy87FSeDeCMs+PJn5KKlOn27bc1iy6/HuwZ7vr NogutdjHUOx5MoQt4Jtu32/zv1XEOhmcyS0I5CCEM9FhN3sggvj7DNUwFM0kdj6mP1c8 ZOeQ== X-Gm-Message-State: AOAM530ltYKvJutOC++bK2hnktHvvRWxnaa5Ql87dRHhMFOLflj9+qkz 1aN/+FXRivw/AYqj/BRkEXXjHqv+br0= X-Google-Smtp-Source: ABdhPJymq04BSTzfJpVHdZ+laiZbzglDSEIbJnE2fdBBOkR9NviuD4mebDzB5lu2c+1zY8w4/rSv9g== X-Received: by 2002:a2e:a58c:0:b0:249:b1ce:ba97 with SMTP id m12-20020a2ea58c000000b00249b1ceba97mr9423600ljp.78.1648303638993; Sat, 26 Mar 2022 07:07:18 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id d6-20020a193846000000b0044a589efadbsm1075763lfj.2.2022.03.26.07.07.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Mar 2022 07:07:18 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 26 Mar 2022 16:07:17 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~kmicklas Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, kmicklas@uber.com Subject: Re: [PATCH bazel-zig-cc 0/4] Upgrade to Bazel 5.1.0 and associated cleanups Message-ID: <20220326140717.oep2mxniosjzzetg@mtpad.i.jakstys.lt> References: <164822362548.25319.8453123527885867890-0@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <164822362548.25319.8453123527885867890-0@git.sr.ht> On Fri, Mar 25, 2022 at 03:53:45PM +0000, ~kmicklas wrote: > Also pins the Go SDK version. > > Ken Micklas (4): > Upgrade to Bazel 5.1.0 > Remove repo fetch-time uname dependency, use new os.arch instead > Use upstream read_user_netrc from Bazel 5.1 > Pin Go SDK to 1.18 for reproducibility Thanks, applied all of them (+buildifier). Do you want me to cut v0.5.1? Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 150F811EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 09:37:53 +0000 (UTC) From: ~laurynasl Date: Thu, 07 Apr 2022 09:37:52 +0000 Subject: [PATCH bazel-zig-cc 0/4] Move platforms and toolchains MIME-Version: 1.0 Message-ID: <164932427279.26543.1789507091630612744-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Move platform and toochains definitions into their own "namespaces". laurynasl (4): move platforms under @zig_cc//platform: Move declare_platforms() to platform/ Move toolchainss under @zig_sdk//platform: Move toolchain definitions to toolchains/ .bazelrc | 8 +- README.md | 27 +-- ci/test | 4 +- toolchain/BUILD.sdk.bazel | 5 +- toolchain/defs.bzl | 244 +++------------------------- toolchain/platform/BUILD | 3 + toolchain/platform/defs.bzl | 17 ++ toolchain/private/BUILD | 0 toolchain/private/defs.bzl | 124 ++++++++++++++ toolchain/toolchain/BUILD | 0 toolchain/toolchain/BUILD.sdk.bazel | 10 ++ toolchain/toolchain/defs.bzl | 87 ++++++++++ 12 files changed, 277 insertions(+), 252 deletions(-) create mode 100644 toolchain/platform/BUILD create mode 100644 toolchain/platform/defs.bzl create mode 100644 toolchain/private/BUILD create mode 100644 toolchain/private/defs.bzl create mode 100644 toolchain/toolchain/BUILD create mode 100644 toolchain/toolchain/BUILD.sdk.bazel create mode 100644 toolchain/toolchain/defs.bzl -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 30F8411EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 09:37:53 +0000 (UTC) From: ~laurynasl Date: Wed, 06 Apr 2022 19:16:53 +0000 Subject: [PATCH bazel-zig-cc 1/4] move platforms under @zig_cc//platform: Message-ID: <164932427279.26543.1789507091630612744-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl In-Reply-To: <164932427279.26543.1789507091630612744-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: laurynasl --- README.md | 9 +++------ ci/test | 2 +- toolchain/defs.bzl | 10 ++++++++-- toolchain/platform/BUILD | 3 +++ 4 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 toolchain/platform/BUILD diff --git a/README.md b/README.md index 1c8e011..d855c78 100644 --- a/README.md +++ b/README.md @@ -114,9 +114,6 @@ The path to Bazel toolchains is `@zig_sdk//:_t= oolchain`. It should be moved to `@zig_sdk//toolchain:` or similar; so the user-facing targets are in their own namespace. =20 -Likewise, platforms are `@zig_sdk//:_platform`, and should be moved -to `@zig_sdk//:platform:`. - ## OSX: sysroot =20 For non-trivial programs (and for all darwin/arm64 cgo programs) MacOS SDK m= ay @@ -164,7 +161,7 @@ may apply to aarch64, but the author didn't find a need t= o test it (yet). ## build & run linux cgo + glibc =20 ``` -$ bazel build --platforms @zig_sdk//:linux_amd64_platform //test/go:go +$ bazel build --platforms @zig_sdk//platform:linux_amd64 //test/go:go $ file bazel-out/k8-opt-ST-d17813c235ce/bin/test/go/go_/go bazel-out/k8-opt-ST-d17813c235ce/bin/test/go/go_/go: ELF 64-bit LSB executab= le, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux= -x86-64.so.2, for GNU/Linux 2.0.0, Go BuildID=3Dredacted, with debug_info, no= t stripped $ bazel-out/k8-opt-ST-d17813c235ce/bin/test/go/go_/go @@ -176,7 +173,7 @@ hello, world ``` $ bazel test \ --config=3Dqemu-aarch64 \ - --platforms @zig_sdk//:linux_arm64_platform \ + --platforms @zig_sdk//platform:linux_arm64 \ --extra_toolchains @zig_sdk//:linux_arm64_musl_toolchain //test/... ... INFO: Build completed successfully, 10 total actions @@ -186,7 +183,7 @@ INFO: Build completed successfully, 10 total actions ## macos cgo =20 ``` -$ bazel build --platforms @zig_sdk//:darwin_amd64_platform //test/go:go +$ bazel build --platforms @zig_sdk//platform:darwin_amd64 //test/go:go ... $ file bazel-out/k8-opt-ST-d17813c235ce/bin/test/go/go_/go bazel-out/k8-opt-ST-d17813c235ce/bin/test/go/go_/go: Mach-O 64-bit x86_64 ex= ecutable, flags: diff --git a/ci/test b/ci/test index e9a8e9a..5b9a4d7 100755 --- a/ci/test +++ b/ci/test @@ -18,7 +18,7 @@ while read -r action platform toolchain config; do fi =20 args+=3D(\ - --platforms "@zig_sdk//:${platform}_platform" \ + --platforms "@zig_sdk//platform:${platform}" \ --extra_toolchains "@zig_sdk//:${toolchain}_toolchain" \ //test/... \ ) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 112a64a..eb005fe 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -264,6 +264,11 @@ def _zig_repository_impl(repository_ctx): content =3D _fcntl_h, ) =20 + repository_ctx.symlink( + Label("//toolchain/platform:BUILD"), + "platform/BUILD", + ) + repository_ctx.template( "BUILD.bazel", Label("//toolchain:BUILD.sdk.bazel"), @@ -380,6 +385,7 @@ def zig_build_macro(absolute_path, zig_include_root): toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) =20 +def declare_platforms(): # create @zig_sdk//{os}_{arch}_platform entries with zig and go conventi= ons for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): for bzlos, oss in {"linux": ["linux"], "macos": ["macos", "darwin"]}= .items(): @@ -389,10 +395,10 @@ def zig_build_macro(absolute_path, zig_include_root): "@platforms//cpu:{}".format(zigcpu), ] native.platform( - name =3D "{os}_{zigcpu}_platform".format(os =3D os, zigc= pu =3D zigcpu), + name =3D "{os}_{zigcpu}".format(os =3D os, zigcpu =3D zi= gcpu), constraint_values =3D constraint_values, ) native.platform( - name =3D "{os}_{gocpu}_platform".format(os =3D os, gocpu= =3D gocpu), + name =3D "{os}_{gocpu}".format(os =3D os, gocpu =3D gocp= u), constraint_values =3D constraint_values, ) diff --git a/toolchain/platform/BUILD b/toolchain/platform/BUILD new file mode 100644 index 0000000..b02436b --- /dev/null +++ b/toolchain/platform/BUILD @@ -0,0 +1,3 @@ +load("@bazel-zig-cc//toolchain:defs.bzl", "declare_platforms") + +declare_platforms() --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 4D67411EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 09:37:53 +0000 (UTC) From: ~laurynasl Date: Wed, 06 Apr 2022 19:19:44 +0000 Subject: [PATCH bazel-zig-cc 2/4] Move declare_platforms() to platform/ Message-ID: <164932427279.26543.1789507091630612744-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl In-Reply-To: <164932427279.26543.1789507091630612744-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: laurynasl --- toolchain/defs.bzl | 17 ----------------- toolchain/platform/BUILD | 2 +- toolchain/platform/defs.bzl | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 toolchain/platform/defs.bzl diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index eb005fe..3f6b4bd 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -385,20 +385,3 @@ def zig_build_macro(absolute_path, zig_include_root): toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) =20 -def declare_platforms(): - # create @zig_sdk//{os}_{arch}_platform entries with zig and go conventi= ons - for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): - for bzlos, oss in {"linux": ["linux"], "macos": ["macos", "darwin"]}= .items(): - for os in oss: - constraint_values =3D [ - "@platforms//os:{}".format(bzlos), - "@platforms//cpu:{}".format(zigcpu), - ] - native.platform( - name =3D "{os}_{zigcpu}".format(os =3D os, zigcpu =3D zi= gcpu), - constraint_values =3D constraint_values, - ) - native.platform( - name =3D "{os}_{gocpu}".format(os =3D os, gocpu =3D gocp= u), - constraint_values =3D constraint_values, - ) diff --git a/toolchain/platform/BUILD b/toolchain/platform/BUILD index b02436b..ce0ffc7 100644 --- a/toolchain/platform/BUILD +++ b/toolchain/platform/BUILD @@ -1,3 +1,3 @@ -load("@bazel-zig-cc//toolchain:defs.bzl", "declare_platforms") +load("@bazel-zig-cc//toolchain/platform:defs.bzl", "declare_platforms") =20 declare_platforms() diff --git a/toolchain/platform/defs.bzl b/toolchain/platform/defs.bzl new file mode 100644 index 0000000..e094029 --- /dev/null +++ b/toolchain/platform/defs.bzl @@ -0,0 +1,17 @@ +def declare_platforms(): + # create @zig_sdk//{os}_{arch}_platform entries with zig and go conventi= ons + for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): + for bzlos, oss in {"linux": ["linux"], "macos": ["macos", "darwin"]}= .items(): + for os in oss: + constraint_values =3D [ + "@platforms//os:{}".format(bzlos), + "@platforms//cpu:{}".format(zigcpu), + ] + native.platform( + name =3D "{os}_{zigcpu}".format(os =3D os, zigcpu =3D zi= gcpu), + constraint_values =3D constraint_values, + ) + native.platform( + name =3D "{os}_{gocpu}".format(os =3D os, gocpu =3D gocp= u), + constraint_values =3D constraint_values, + ) --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 6C1EB11EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 09:37:53 +0000 (UTC) From: ~laurynasl Date: Wed, 06 Apr 2022 19:46:15 +0000 Subject: [PATCH bazel-zig-cc 3/4] Move toolchainss under @zig_sdk//platform: Message-ID: <164932427279.26543.1789507091630612744-3@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl In-Reply-To: <164932427279.26543.1789507091630612744-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: laurynasl --- .bazelrc | 8 ++--- README.md | 18 ++++------ ci/test | 2 +- toolchain/BUILD.sdk.bazel | 5 ++- toolchain/defs.bzl | 55 ++++++++++++++++++----------- toolchain/toolchain/BUILD | 0 toolchain/toolchain/BUILD.sdk.bazel | 10 ++++++ 7 files changed, 57 insertions(+), 41 deletions(-) create mode 100644 toolchain/toolchain/BUILD create mode 100644 toolchain/toolchain/BUILD.sdk.bazel diff --git a/.bazelrc b/.bazelrc index cba4a5e..fed6f0b 100644 --- a/.bazelrc +++ b/.bazelrc @@ -6,10 +6,10 @@ build --worker_sandboxing build --compilation_mode=3Dopt =20 build --incompatible_enable_cc_toolchain_resolution -build --extra_toolchains @zig_sdk//:linux_amd64_gnu.2.19_toolchain -build --extra_toolchains @zig_sdk//:linux_arm64_gnu.2.28_toolchain -build --extra_toolchains @zig_sdk//:darwin_amd64_toolchain -build --extra_toolchains @zig_sdk//:darwin_arm64_toolchain +build --extra_toolchains @zig_sdk//toolchain:linux_amd64_gnu.2.19 +build --extra_toolchains @zig_sdk//toolchain:linux_arm64_gnu.2.28 +build --extra_toolchains @zig_sdk//toolchain:darwin_amd64 +build --extra_toolchains @zig_sdk//toolchain:darwin_arm64 =20 test:qemu-aarch64 --test_env=3DQEMU_LD_PREFIX=3D/usr/aarch64-linux-gnu/ test:qemu-aarch64 --run_under=3Dqemu-aarch64-static diff --git a/README.md b/README.md index d855c78..1a20d5f 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,10 @@ And this to `.bazelrc`: =20 ``` build --incompatible_enable_cc_toolchain_resolution -build --extra_toolchains @zig_sdk//:linux_amd64_gnu.2.19_toolchain -build --extra_toolchains @zig_sdk//:linux_arm64_gnu.2.28_toolchain -build --extra_toolchains @zig_sdk//:darwin_amd64_toolchain -build --extra_toolchains @zig_sdk//:darwin_arm64_toolchain +build --extra_toolchains @zig_sdk//toolchain:linux_amd64_gnu.2.19 +build --extra_toolchains @zig_sdk//toolchain:linux_arm64_gnu.2.28 +build --extra_toolchains @zig_sdk//toolchain:darwin_amd64 +build --extra_toolchains @zig_sdk//toolchain:darwin_arm64 ``` =20 The snippets above will download the zig toolchain and register it for the @@ -80,7 +80,7 @@ different one is registered using `--extra_toolchains ` in tests) on linux/amd64/musl, you may specify: =20 ``` ---extra_toolchains @zig_sdk//:linux_amd64_musl_toolchain +--extra_toolchains @zig_sdk//toolchain:linux_amd64_musl ``` =20 ## UBSAN and "SIGILL: Illegal Instruction" @@ -108,12 +108,6 @@ how to contribute. Currently zig cache is in `$HOME`, so `bazel clean --expunge` does not clear the zig cache. Zig's cache should be stored somewhere in the project's path. =20 -## Toolchain and platform target locations - -The path to Bazel toolchains is `@zig_sdk//:_toolchain`. It should -be moved to `@zig_sdk//toolchain:` or similar; so the user-facing -targets are in their own namespace. - ## OSX: sysroot =20 For non-trivial programs (and for all darwin/arm64 cgo programs) MacOS SDK m= ay @@ -174,7 +168,7 @@ hello, world $ bazel test \ --config=3Dqemu-aarch64 \ --platforms @zig_sdk//platform:linux_arm64 \ - --extra_toolchains @zig_sdk//:linux_arm64_musl_toolchain //test/... + --extra_toolchains @zig_sdk//toolchain:linux_arm64_musl //test/... ... INFO: Build completed successfully, 10 total actions //test/go:go_test PAS= SED in 0.2s diff --git a/ci/test b/ci/test index 5b9a4d7..35d0c07 100755 --- a/ci/test +++ b/ci/test @@ -19,7 +19,7 @@ while read -r action platform toolchain config; do =20 args+=3D(\ --platforms "@zig_sdk//platform:${platform}" \ - --extra_toolchains "@zig_sdk//:${toolchain}_toolchain" \ + --extra_toolchains "@zig_sdk//toolchain:${toolchain}" \ //test/... \ ) =20 diff --git a/toolchain/BUILD.sdk.bazel b/toolchain/BUILD.sdk.bazel index 8b5db49..cf5dc4a 100644 --- a/toolchain/BUILD.sdk.bazel +++ b/toolchain/BUILD.sdk.bazel @@ -1,11 +1,10 @@ -load("@bazel-zig-cc//toolchain:defs.bzl", "zig_build_macro") +load("@bazel-zig-cc//toolchain:defs.bzl", "declare_files") =20 package( default_visibility =3D ["//visibility:public"], ) =20 -zig_build_macro( - absolute_path =3D {absolute_path}, +declare_files( zig_include_root =3D {zig_include_root}, ) =20 diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 3f6b4bd..61e099f 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -189,7 +189,7 @@ def register_toolchains( }, ) =20 - toolchains =3D ["@zig_sdk//:%s_toolchain" % t for t in register] + toolchains =3D ["@zig_sdk//:toolchain:%s" % t for t in register] native.register_toolchains(*toolchains) =20 ZIG_TOOL_PATH =3D "tools/{zig_tool}" @@ -268,11 +268,19 @@ def _zig_repository_impl(repository_ctx): Label("//toolchain/platform:BUILD"), "platform/BUILD", ) - repository_ctx.template( - "BUILD.bazel", + "BUILD", Label("//toolchain:BUILD.sdk.bazel"), executable =3D False, + substitutions =3D { + "{zig_include_root}": shell.quote(zig_include_root), + }, + ) + + repository_ctx.template( + "toolchain/BUILD", + Label("//toolchain/toolchain:BUILD.sdk.bazel"), + executable =3D False, substitutions =3D { "{absolute_path}": shell.quote(str(repository_ctx.path(""))), "{zig_include_root}": shell.quote(zig_include_root), @@ -302,13 +310,21 @@ def filegroup(name, **kwargs): native.filegroup(name =3D name, **kwargs) return ":" + name =20 -def zig_build_macro(absolute_path, zig_include_root): +def declare_files(zig_include_root): filegroup(name =3D "empty") native.exports_files(["zig"], visibility =3D ["//visibility:public"]) filegroup(name =3D "lib/std", srcs =3D native.glob(["lib/std/**"])) =20 lazy_filegroups =3D {} =20 + for target_config in _target_structs(): + for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: + d =3D zig_include_root + d + if d not in lazy_filegroups: + lazy_filegroups[d] =3D filegroup(name =3D d, srcs =3D native= .glob([d + "/**"])) + + +def declare_toolchains(absolute_path, zig_include_root): for target_config in _target_structs(): gotarget =3D target_config.gotarget zigtarget =3D target_config.zigtarget @@ -316,8 +332,6 @@ def zig_build_macro(absolute_path, zig_include_root): cxx_builtin_include_directories =3D [] for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: d =3D zig_include_root + d - if d not in lazy_filegroups: - lazy_filegroups[d] =3D filegroup(name =3D d, srcs =3D native= .glob([d + "/**"])) cxx_builtin_include_directories.append(absolute_path + "/" + d) for d in getattr(target_config, "toplevel_include", []): cxx_builtin_include_directories.append(absolute_path + "/" + d) @@ -338,7 +352,7 @@ def zig_build_macro(absolute_path, zig_include_root): copts =3D copts + ["-include", absolute_path + "/" + incl] =20 zig_cc_toolchain_config( - name =3D zigtarget + "_toolchain_cc_config", + name =3D zigtarget + "_cc_config", target =3D zigtarget, tool_paths =3D absolute_tool_paths, cxx_builtin_include_directories =3D cxx_builtin_include_director= ies, @@ -353,35 +367,34 @@ def zig_build_macro(absolute_path, zig_include_root): ) =20 native.cc_toolchain( - name =3D zigtarget + "_toolchain_cc", + name =3D zigtarget + "_cc", toolchain_identifier =3D zigtarget + "-toolchain", - toolchain_config =3D ":%s_toolchain_cc_config" % zigtarget, - all_files =3D ":zig", - ar_files =3D ":zig", - compiler_files =3D ":zig", - linker_files =3D ":zig", - dwp_files =3D ":empty", - objcopy_files =3D ":empty", - strip_files =3D ":empty", + toolchain_config =3D ":%s_cc_config" % zigtarget, + all_files =3D "@zig_sdk//:zig", + ar_files =3D "@zig_sdk//:zig", + compiler_files =3D "@zig_sdk//:zig", + linker_files =3D "@zig_sdk//:zig", + dwp_files =3D "@zig_sdk//:empty", + objcopy_files =3D "@zig_sdk//:empty", + strip_files =3D "@zig_sdk//:empty", supports_param_files =3D 0, ) =20 # register two kinds of toolchain targets: Go and Zig conventions. # Go convention: amd64/arm64, linux/darwin native.toolchain( - name =3D gotarget + "_toolchain", + name =3D gotarget, exec_compatible_with =3D None, target_compatible_with =3D target_config.constraint_values, - toolchain =3D ":%s_toolchain_cc" % zigtarget, + toolchain =3D ":%s_cc" % zigtarget, toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) =20 # Zig convention: x86_64/aarch64, linux/macos native.toolchain( - name =3D zigtarget + "_toolchain", + name =3D zigtarget, exec_compatible_with =3D None, target_compatible_with =3D target_config.constraint_values, - toolchain =3D ":%s_toolchain_cc" % zigtarget, + toolchain =3D ":%s_cc" % zigtarget, toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) - diff --git a/toolchain/toolchain/BUILD b/toolchain/toolchain/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/toolchain/toolchain/BUILD.sdk.bazel b/toolchain/toolchain/BUILD.= sdk.bazel new file mode 100644 index 0000000..4b505dc --- /dev/null +++ b/toolchain/toolchain/BUILD.sdk.bazel @@ -0,0 +1,10 @@ +load("@bazel-zig-cc//toolchain:defs.bzl", "declare_toolchains") + +package( + default_visibility =3D ["//visibility:public"], +) + +declare_toolchains( + absolute_path =3D {absolute_path}, + zig_include_root =3D {zig_include_root}, +) --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id A38FF11EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 09:37:53 +0000 (UTC) From: ~laurynasl Date: Wed, 06 Apr 2022 20:10:45 +0000 Subject: [PATCH bazel-zig-cc 4/4] Move toolchain definitions to toolchains/ Message-ID: <164932427279.26543.1789507091630612744-4@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl In-Reply-To: <164932427279.26543.1789507091630612744-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: laurynasl --- toolchain/defs.bzl | 214 +--------------------------- toolchain/private/BUILD | 0 toolchain/private/defs.bzl | 124 ++++++++++++++++ toolchain/toolchain/BUILD.sdk.bazel | 2 +- toolchain/toolchain/defs.bzl | 87 +++++++++++ 5 files changed, 215 insertions(+), 212 deletions(-) create mode 100644 toolchain/private/BUILD create mode 100644 toolchain/private/defs.bzl create mode 100644 toolchain/toolchain/defs.bzl diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 61e099f..084af86 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,23 +1,7 @@ load("@bazel_skylib//lib:shell.bzl", "shell") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "us= e_netrc") -load(":zig_toolchain.bzl", "zig_cc_toolchain_config") - -DEFAULT_TOOL_PATHS =3D { - "ar": "ar", - "gcc": "c++", # https://github.com/bazelbuild/bazel/issues/4644 - "cpp": "/usr/bin/false", - "gcov": "/usr/bin/false", - "nm": "/usr/bin/false", - "objdump": "/usr/bin/false", - "strip": "/usr/bin/false", -}.items() - -DEFAULT_INCLUDE_DIRECTORIES =3D [ - "include", - "libcxx/include", - "libcxxabi/include", -] +load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORI= ES", "ZIG_TOOL_PATH", "target_structs") =20 _fcntl_map =3D """ GLIBC_2.2.5 { @@ -32,114 +16,6 @@ __asm__(".symver fcntl64, fcntl@GLIBC_2.2.5"); #endif """ =20 -# Zig supports even older glibcs than defined below, but we have tested only -# down to 2.17. -# $ zig targets | jq -r '.glibc[]' | sort -V -_GLIBCS =3D [ - "2.17", - "2.18", - "2.19", - "2.22", - "2.23", - "2.24", - "2.25", - "2.26", - "2.27", - "2.28", - "2.29", - "2.30", - "2.31", - "2.32", - "2.33", - "2.34", -] - -def _target_darwin(gocpu, zigcpu): - min_os =3D "10" - if zigcpu =3D=3D "aarch64": - min_os =3D "11" - return struct( - gotarget =3D "darwin_{}".format(gocpu), - zigtarget =3D "{}-macos-gnu".format(zigcpu), - includes =3D [ - "libunwind/include", - # TODO: Define a toolchain for each minimum OS version - "libc/include/{}-macos.{}-gnu".format(zigcpu, min_os), - "libc/include/any-macos.{}-any".format(min_os), - "libc/include/any-macos-any", - ], - linkopts =3D [], - copts =3D [], - bazel_target_cpu =3D "darwin", - constraint_values =3D [ - "@platforms//os:macos", - "@platforms//cpu:{}".format(zigcpu), - ], - tool_paths =3D {"ld": "ld64.lld"}, - ) - -def _target_linux_gnu(gocpu, zigcpu, glibc_version =3D ""): - glibc_suffix =3D "gnu" - if glibc_version !=3D "": - glibc_suffix =3D "gnu.{}".format(glibc_version) - - # https://github.com/ziglang/zig/issues/5882#issuecomment-888250676 - # fcntl_hack is only required for glibc 2.27 or less. We assume that - # glibc_version =3D=3D "" (autodetect) is running a recent glibc version= , thus - # adding this hack only when glibc is explicitly 2.27 or lower. - fcntl_hack =3D False - if glibc_version =3D=3D "": - # zig doesn't reliably detect the glibc version, so - # often falls back to 2.17; the hack should be included. - # https://github.com/ziglang/zig/issues/6469 - fcntl_hack =3D True - else: - # hack is required for 2.27 or less. - fcntl_hack =3D glibc_version < "2.28" - - return struct( - gotarget =3D "linux_{}_{}".format(gocpu, glibc_suffix), - zigtarget =3D "{}-linux-{}".format(zigcpu, glibc_suffix), - includes =3D [ - "libunwind/include", - "libc/include/generic-glibc", - "libc/include/any-linux-any", - "libc/include/{}-linux-gnu".format(zigcpu), - "libc/include/{}-linux-any".format(zigcpu), - ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), - toplevel_include =3D ["glibc-hacks"] if fcntl_hack else [], - compiler_extra_includes =3D ["glibc-hacks/glibchack-fcntl.h"] if fcn= tl_hack else [], - linker_version_scripts =3D ["glibc-hacks/fcntl.map"] if fcntl_hack e= lse [], - linkopts =3D ["-lc++", "-lc++abi"], - copts =3D [], - bazel_target_cpu =3D "k8", - constraint_values =3D [ - "@platforms//os:linux", - "@platforms//cpu:{}".format(zigcpu), - ], - tool_paths =3D {"ld": "ld.lld"}, - ) - -def _target_linux_musl(gocpu, zigcpu): - return struct( - gotarget =3D "linux_{}_musl".format(gocpu), - zigtarget =3D "{}-linux-musl".format(zigcpu), - includes =3D [ - "libc/include/generic-musl", - "libc/include/any-linux-any", - "libc/include/{}-linux-musl".format(zigcpu), - "libc/include/{}-linux-any".format(zigcpu), - ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), - linkopts =3D ["-s", "-w"], - copts =3D ["-D_LIBCPP_HAS_MUSL_LIBC", "-D_LIBCPP_HAS_THREAD_API_PTHR= EAD"], - bazel_target_cpu =3D "k8", - constraint_values =3D [ - "@platforms//os:linux", - "@platforms//cpu:{}".format(zigcpu), - ], - tool_paths =3D {"ld": "ld.lld"}, - ) - # Official recommended version. Should use this when we have a usable releas= e. URL_FORMAT_RELEASE =3D "https://ziglang.org/download/{version}/zig-{host_pla= tform}-{version}.tar.xz" =20 @@ -192,7 +68,6 @@ def register_toolchains( toolchains =3D ["@zig_sdk//:toolchain:%s" % t for t in register] native.register_toolchains(*toolchains) =20 -ZIG_TOOL_PATH =3D "tools/{zig_tool}" ZIG_TOOL_WRAPPER =3D """#!/bin/bash set -e =20 @@ -297,14 +172,7 @@ zig_repository =3D repository_rule( implementation =3D _zig_repository_impl, ) =20 -def _target_structs(): - ret =3D [] - for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): - ret.append(_target_darwin(gocpu, zigcpu)) - ret.append(_target_linux_musl(gocpu, zigcpu)) - for glibc in [""] + _GLIBCS: - ret.append(_target_linux_gnu(gocpu, zigcpu, glibc)) - return ret + =20 def filegroup(name, **kwargs): native.filegroup(name =3D name, **kwargs) @@ -317,84 +185,8 @@ def declare_files(zig_include_root): =20 lazy_filegroups =3D {} =20 - for target_config in _target_structs(): + for target_config in target_structs(): for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: d =3D zig_include_root + d if d not in lazy_filegroups: lazy_filegroups[d] =3D filegroup(name =3D d, srcs =3D native= .glob([d + "/**"])) - - -def declare_toolchains(absolute_path, zig_include_root): - for target_config in _target_structs(): - gotarget =3D target_config.gotarget - zigtarget =3D target_config.zigtarget - - cxx_builtin_include_directories =3D [] - for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: - d =3D zig_include_root + d - cxx_builtin_include_directories.append(absolute_path + "/" + d) - for d in getattr(target_config, "toplevel_include", []): - cxx_builtin_include_directories.append(absolute_path + "/" + d) - - absolute_tool_paths =3D {} - for name, path in target_config.tool_paths.items() + DEFAULT_TOOL_PA= THS: - if path[0] =3D=3D "/": - absolute_tool_paths[name] =3D path - continue - tool_path =3D ZIG_TOOL_PATH.format(zig_tool =3D path) - absolute_tool_paths[name] =3D "%s/%s" % (absolute_path, tool_pat= h) - - linkopts =3D target_config.linkopts - copts =3D target_config.copts - for s in getattr(target_config, "linker_version_scripts", []): - linkopts =3D linkopts + ["-Wl,--version-script,%s/%s" % (absolut= e_path, s)] - for incl in getattr(target_config, "compiler_extra_includes", []): - copts =3D copts + ["-include", absolute_path + "/" + incl] - - zig_cc_toolchain_config( - name =3D zigtarget + "_cc_config", - target =3D zigtarget, - tool_paths =3D absolute_tool_paths, - cxx_builtin_include_directories =3D cxx_builtin_include_director= ies, - copts =3D copts, - linkopts =3D linkopts, - target_cpu =3D target_config.bazel_target_cpu, - target_system_name =3D "unknown", - target_libc =3D "unknown", - compiler =3D "clang", - abi_version =3D "unknown", - abi_libc_version =3D "unknown", - ) - - native.cc_toolchain( - name =3D zigtarget + "_cc", - toolchain_identifier =3D zigtarget + "-toolchain", - toolchain_config =3D ":%s_cc_config" % zigtarget, - all_files =3D "@zig_sdk//:zig", - ar_files =3D "@zig_sdk//:zig", - compiler_files =3D "@zig_sdk//:zig", - linker_files =3D "@zig_sdk//:zig", - dwp_files =3D "@zig_sdk//:empty", - objcopy_files =3D "@zig_sdk//:empty", - strip_files =3D "@zig_sdk//:empty", - supports_param_files =3D 0, - ) - - # register two kinds of toolchain targets: Go and Zig conventions. - # Go convention: amd64/arm64, linux/darwin - native.toolchain( - name =3D gotarget, - exec_compatible_with =3D None, - target_compatible_with =3D target_config.constraint_values, - toolchain =3D ":%s_cc" % zigtarget, - toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", - ) - - # Zig convention: x86_64/aarch64, linux/macos - native.toolchain( - name =3D zigtarget, - exec_compatible_with =3D None, - target_compatible_with =3D target_config.constraint_values, - toolchain =3D ":%s_cc" % zigtarget, - toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", - ) diff --git a/toolchain/private/BUILD b/toolchain/private/BUILD new file mode 100644 index 0000000..e69de29 diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl new file mode 100644 index 0000000..8380071 --- /dev/null +++ b/toolchain/private/defs.bzl @@ -0,0 +1,124 @@ +DEFAULT_INCLUDE_DIRECTORIES =3D [ + "include", + "libcxx/include", + "libcxxabi/include", +] + +ZIG_TOOL_PATH =3D "tools/{zig_tool}" + +# Zig supports even older glibcs than defined below, but we have tested only +# down to 2.17. +# $ zig targets | jq -r '.glibc[]' | sort -V +_GLIBCS =3D [ + "2.17", + "2.18", + "2.19", + "2.22", + "2.23", + "2.24", + "2.25", + "2.26", + "2.27", + "2.28", + "2.29", + "2.30", + "2.31", + "2.32", + "2.33", + "2.34", +] + +def target_structs(): + ret =3D [] + for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): + ret.append(_target_darwin(gocpu, zigcpu)) + ret.append(_target_linux_musl(gocpu, zigcpu)) + for glibc in [""] + _GLIBCS: + ret.append(_target_linux_gnu(gocpu, zigcpu, glibc)) + return ret + +def _target_darwin(gocpu, zigcpu): + min_os =3D "10" + if zigcpu =3D=3D "aarch64": + min_os =3D "11" + return struct( + gotarget =3D "darwin_{}".format(gocpu), + zigtarget =3D "{}-macos-gnu".format(zigcpu), + includes =3D [ + "libunwind/include", + # TODO: Define a toolchain for each minimum OS version + "libc/include/{}-macos.{}-gnu".format(zigcpu, min_os), + "libc/include/any-macos.{}-any".format(min_os), + "libc/include/any-macos-any", + ], + linkopts =3D [], + copts =3D [], + bazel_target_cpu =3D "darwin", + constraint_values =3D [ + "@platforms//os:macos", + "@platforms//cpu:{}".format(zigcpu), + ], + tool_paths =3D {"ld": "ld64.lld"}, + ) + +def _target_linux_gnu(gocpu, zigcpu, glibc_version =3D ""): + glibc_suffix =3D "gnu" + if glibc_version !=3D "": + glibc_suffix =3D "gnu.{}".format(glibc_version) + + # https://github.com/ziglang/zig/issues/5882#issuecomment-888250676 + # fcntl_hack is only required for glibc 2.27 or less. We assume that + # glibc_version =3D=3D "" (autodetect) is running a recent glibc version= , thus + # adding this hack only when glibc is explicitly 2.27 or lower. + fcntl_hack =3D False + if glibc_version =3D=3D "": + # zig doesn't reliably detect the glibc version, so + # often falls back to 2.17; the hack should be included. + # https://github.com/ziglang/zig/issues/6469 + fcntl_hack =3D True + else: + # hack is required for 2.27 or less. + fcntl_hack =3D glibc_version < "2.28" + + return struct( + gotarget =3D "linux_{}_{}".format(gocpu, glibc_suffix), + zigtarget =3D "{}-linux-{}".format(zigcpu, glibc_suffix), + includes =3D [ + "libunwind/include", + "libc/include/generic-glibc", + "libc/include/any-linux-any", + "libc/include/{}-linux-gnu".format(zigcpu), + "libc/include/{}-linux-any".format(zigcpu), + ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), + toplevel_include =3D ["glibc-hacks"] if fcntl_hack else [], + compiler_extra_includes =3D ["glibc-hacks/glibchack-fcntl.h"] if fcn= tl_hack else [], + linker_version_scripts =3D ["glibc-hacks/fcntl.map"] if fcntl_hack e= lse [], + linkopts =3D ["-lc++", "-lc++abi"], + copts =3D [], + bazel_target_cpu =3D "k8", + constraint_values =3D [ + "@platforms//os:linux", + "@platforms//cpu:{}".format(zigcpu), + ], + tool_paths =3D {"ld": "ld.lld"}, + ) + +def _target_linux_musl(gocpu, zigcpu): + return struct( + gotarget =3D "linux_{}_musl".format(gocpu), + zigtarget =3D "{}-linux-musl".format(zigcpu), + includes =3D [ + "libc/include/generic-musl", + "libc/include/any-linux-any", + "libc/include/{}-linux-musl".format(zigcpu), + "libc/include/{}-linux-any".format(zigcpu), + ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), + linkopts =3D ["-s", "-w"], + copts =3D ["-D_LIBCPP_HAS_MUSL_LIBC", "-D_LIBCPP_HAS_THREAD_API_PTHR= EAD"], + bazel_target_cpu =3D "k8", + constraint_values =3D [ + "@platforms//os:linux", + "@platforms//cpu:{}".format(zigcpu), + ], + tool_paths =3D {"ld": "ld.lld"}, + ) diff --git a/toolchain/toolchain/BUILD.sdk.bazel b/toolchain/toolchain/BUILD.= sdk.bazel index 4b505dc..7cbca73 100644 --- a/toolchain/toolchain/BUILD.sdk.bazel +++ b/toolchain/toolchain/BUILD.sdk.bazel @@ -1,4 +1,4 @@ -load("@bazel-zig-cc//toolchain:defs.bzl", "declare_toolchains") +load("@bazel-zig-cc//toolchain/toolchain:defs.bzl", "declare_toolchains") =20 package( default_visibility =3D ["//visibility:public"], diff --git a/toolchain/toolchain/defs.bzl b/toolchain/toolchain/defs.bzl new file mode 100644 index 0000000..1b0c087 --- /dev/null +++ b/toolchain/toolchain/defs.bzl @@ -0,0 +1,87 @@ +load("@bazel-zig-cc//toolchain:zig_toolchain.bzl", "zig_cc_toolchain_config") +load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORI= ES", "ZIG_TOOL_PATH", "target_structs") + +DEFAULT_TOOL_PATHS =3D { + "ar": "ar", + "gcc": "c++", # https://github.com/bazelbuild/bazel/issues/4644 + "cpp": "/usr/bin/false", + "gcov": "/usr/bin/false", + "nm": "/usr/bin/false", + "objdump": "/usr/bin/false", + "strip": "/usr/bin/false", +}.items() + +def declare_toolchains(absolute_path, zig_include_root): + for target_config in target_structs(): + gotarget =3D target_config.gotarget + zigtarget =3D target_config.zigtarget + + cxx_builtin_include_directories =3D [] + for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: + d =3D zig_include_root + d + cxx_builtin_include_directories.append(absolute_path + "/" + d) + for d in getattr(target_config, "toplevel_include", []): + cxx_builtin_include_directories.append(absolute_path + "/" + d) + + absolute_tool_paths =3D {} + for name, path in target_config.tool_paths.items() + DEFAULT_TOOL_PA= THS: + if path[0] =3D=3D "/": + absolute_tool_paths[name] =3D path + continue + tool_path =3D ZIG_TOOL_PATH.format(zig_tool =3D path) + absolute_tool_paths[name] =3D "%s/%s" % (absolute_path, tool_pat= h) + + linkopts =3D target_config.linkopts + copts =3D target_config.copts + for s in getattr(target_config, "linker_version_scripts", []): + linkopts =3D linkopts + ["-Wl,--version-script,%s/%s" % (absolut= e_path, s)] + for incl in getattr(target_config, "compiler_extra_includes", []): + copts =3D copts + ["-include", absolute_path + "/" + incl] + + zig_cc_toolchain_config( + name =3D zigtarget + "_cc_config", + target =3D zigtarget, + tool_paths =3D absolute_tool_paths, + cxx_builtin_include_directories =3D cxx_builtin_include_director= ies, + copts =3D copts, + linkopts =3D linkopts, + target_cpu =3D target_config.bazel_target_cpu, + target_system_name =3D "unknown", + target_libc =3D "unknown", + compiler =3D "clang", + abi_version =3D "unknown", + abi_libc_version =3D "unknown", + ) + + native.cc_toolchain( + name =3D zigtarget + "_cc", + toolchain_identifier =3D zigtarget + "-toolchain", + toolchain_config =3D ":%s_cc_config" % zigtarget, + all_files =3D "@zig_sdk//:zig", + ar_files =3D "@zig_sdk//:zig", + compiler_files =3D "@zig_sdk//:zig", + linker_files =3D "@zig_sdk//:zig", + dwp_files =3D "@zig_sdk//:empty", + objcopy_files =3D "@zig_sdk//:empty", + strip_files =3D "@zig_sdk//:empty", + supports_param_files =3D 0, + ) + + # register two kinds of toolchain targets: Go and Zig conventions. + # Go convention: amd64/arm64, linux/darwin + native.toolchain( + name =3D gotarget, + exec_compatible_with =3D None, + target_compatible_with =3D target_config.constraint_values, + toolchain =3D ":%s_cc" % zigtarget, + toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", + ) + + # Zig convention: x86_64/aarch64, linux/macos + native.toolchain( + name =3D zigtarget, + exec_compatible_with =3D None, + target_compatible_with =3D target_config.constraint_values, + toolchain =3D ":%s_cc" % zigtarget, + toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", + ) --=20 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by mail-b.sr.ht (Postfix) with ESMTPS id D9FEC11EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 10:16:27 +0000 (UTC) Received: by mail-lf1-f51.google.com with SMTP id t25so8768526lfg.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 07 Apr 2022 03:16:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=5CcT+69xbBgEfxFL90+YhwoI1iopbKQyy7Oi4opMTIo=; b=WNQLVGqkd80D1Sm/Bfg3bmp/ynq5+d2t4yMiCcaS5ijR8tzSBD2ewFCCYO6rmEt3rN EgssWTJvHJ9cGVMB8k2ckF74+UvQUO4H/VKEqEkLiOy8xMpJAxtSFa21n4PjAOWchxQN CZ1vVmgVM68w3mKfoz92ah96+cb+ZTr8BDjnEevZphe+JnTnNPBZvHsUBvAIolRv6Dwg nSMlG6TvQvsWdPug+9oZxRGidUpgazXaDLT3g4LGcEz8AyC1GZJVTQoaZreRziWWeF88 zBQa9ATBItAAtHBA0zWKlO2x4+5qTJk9CmFKWJek018+i4hp2AGKaxY9GUIexq6QpQ5W obGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=5CcT+69xbBgEfxFL90+YhwoI1iopbKQyy7Oi4opMTIo=; b=YhFHoqEerjfIciMqFQcFW6XlcmM0SFvzFmVpIfvBBzhM/mGcqD9ABPjOgog1WbLH6x sp/aMZdeWURMfxcEiGFzqJxxRYTO0QVH4sVFqDz1Yph7p6QRbVZkFnubcqxK8frv/gEw LW1zj1gg7ELhhMOyZrXuPuzWhGgIIj3tF3PWyF8Q09GX7fUUe0itt/Mc6/Ohh9h/4yLo 54QUc+NEcBdEc3QYsEVGElbEjFubD6nCJHFHI4m9q4T9KuEdEnIEHaYlYW8f7nqz6Tuj b9Yd9o9xo+tXEGedd7sX7QsTxP4m0mpK7kUHi5B14u9fYe1vSmTi5zEVTl5ihT7ARcKi dDng== X-Gm-Message-State: AOAM532qmhQiEFzNxou2eb+eEvZXItLxJZCh4JqPJbRUeVx4UTFd1uHr 0X/kEjn6J/NE0+7UPzoqovuzemPp0rI= X-Google-Smtp-Source: ABdhPJzBikjzOYpY5FJD64W5d9x0JHb/4ZzQTYtpxW37qmpNx0PuZ7vUcGJcyNZEtHb/l4uDER4dAQ== X-Received: by 2002:a05:6512:2207:b0:45d:cd01:d3ca with SMTP id h7-20020a056512220700b0045dcd01d3camr9223234lfu.561.1649326586313; Thu, 07 Apr 2022 03:16:26 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id f15-20020a0565123b0f00b0044a29f8ec94sm2122687lfv.95.2022.04.07.03.16.25 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 03:16:25 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 7 Apr 2022 13:16:25 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: RW access to contributors; talk in zig meetup Message-ID: <20220407101625.aahrqx4fa4qme56i@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, As I've received significant contributions from Ken Micklas and Laurynas Lubys, I decided to grant them write access to bazel-zig-cc. Here is an email I've sent them privately with the rules: - When WIP, feel free to push your code to / branch. Remove the branch when done. - When ready for merging, push it to the `next` branch and ping me. - I will keep merging to `main`, tagging the releases keep emailing the announcements. That way, `main` will still have the latest tagged release signed by me. I will also be talking about bazel-zig-cc in the upcoming Zig meetup this weekend[1]. I was also listed in Google FOSS peer award and "earned" $250 for bazel-zig-cc[2]. Thanks Google! Regards, Motiejus [1]: https://twitter.com/croloris/status/1511342711764303890 [2]: https://opensource.googleblog.com/2022/03/Announcing-First-Group-of-Google-Open-Source-Peer-Bonus-Winners-in-2022.html From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by mail-b.sr.ht (Postfix) with ESMTPS id EC4CF11EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 11:46:53 +0000 (UTC) Received: by mail-lj1-f174.google.com with SMTP id m12so7091213ljp.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 07 Apr 2022 04:46:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=n3IIP9b/dm6u4Ogk5WbyKAVibt9GhM62nPVV/n4RUwk=; b=padVY/+QQ/vqOrkAO5EDkuy3Q71mz0nCyzYt7PzYZBn1TakTVltTOOOAt1dWqai4ZW 4UCaCWTTXp1QsTY1Jhy3jk1+VtNmwE5hCnog/oBLKyTZy9VG9oJCufZ98C0NhZH6QYWm /kV//4KYHgLBYm4xMVXqrQZDWUFqDOSBbobqqvXhDyFYCoJ0I2hE2am34t3t6iRTXnPi YBk3eHlG1YxdHJVAy9m/tPTdVoG7vJDMqvRWpdTO4bj/2y/mZsv+6EC+F++G4EaFqDU+ lkF0LqOOyXOjhPXH9mTDWDplqUGCOQpohocBkiklULHK9EOI6a2978e/xzVzXHXbrDUA ISFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=n3IIP9b/dm6u4Ogk5WbyKAVibt9GhM62nPVV/n4RUwk=; b=r6pUU4alpx0qxQLSeUrJJAZg3pPmByXNg4yS6TUtdO6XiMpFn+l/UbHfRI+j1kOze9 CjQBgMjN7cbD/qCDHmj5DcJ2stVmXB6w7JgplKWJKztHjZz7Xp7/dal13mWBJYY6bA0B tvk8GqbCWxKg1hjKHBQjVbonY7olfqYmvPLjrltNLWdMdhP0iYZi1Jx0Efbwo0wZYlyG u0GtCRmZo6mbncqqY0buGAZrbbZDyzmlYvoiiQgzDjVxJ2OArhC7JKzs4Oy4MrCVmcc2 n44RukxntoB1JICgxjTuP1tOVJwtqnWJozy8sMj/gIiAC4sxSUh0WpaGMnDSIMn6fPwk 5kCg== X-Gm-Message-State: AOAM532EiS0iNVxCL7f5RMo6C8NBMUh6+ZBmA8E2RCXRiKL5Of0tbCRK Hio5r/zbebNRN9d5Qh9cHVSnLnIFtG0= X-Google-Smtp-Source: ABdhPJw8kmQ9cjm9v6O7vVVO/LcYYG2JfwlxfdYcNwo3ggshEQ11R2kprT9RNkXkRhfStSdk8IkNFw== X-Received: by 2002:a2e:b8cb:0:b0:24b:16a3:ed9d with SMTP id s11-20020a2eb8cb000000b0024b16a3ed9dmr8241447ljp.393.1649332012561; Thu, 07 Apr 2022 04:46:52 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id e23-20020a196917000000b00464f74b2245sm134248lfc.252.2022.04.07.04.46.51 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 04:46:51 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 7 Apr 2022 14:46:50 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.6.0 Message-ID: <20220407114650.uvdymzjjrdpwy6ei@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, this change is a breaking change to bazel-zig-cc. Main points (from changelog): ### [laurynasl] Hide toolchain internals This is a long-standing issue where platforms, toolchains and private stuff was mixed together. Now platforms and toolchains are defined in their own namespaces: $ bazel query @zig_sdk//platform:* @zig_sdk//platform:BUILD @zig_sdk//platform:darwin_aarch64 @zig_sdk//platform:darwin_amd64 @zig_sdk//platform:darwin_arm64 @zig_sdk//platform:darwin_x86_64 @zig_sdk//platform:linux_aarch64 @zig_sdk//platform:linux_amd64 @zig_sdk//platform:linux_arm64 @zig_sdk//platform:linux_x86_64 @zig_sdk//platform:macos_aarch64 @zig_sdk//platform:macos_amd64 @zig_sdk//platform:macos_arm64 @zig_sdk//platform:macos_x86_64 $ bazel query @zig_sdk//toolchain:* | head -10 Loading: 0 packages loaded @zig_sdk//toolchain:BUILD @zig_sdk//toolchain:aarch64-linux-gnu @zig_sdk//toolchain:aarch64-linux-gnu.2.17 @zig_sdk//toolchain:aarch64-linux-gnu.2.18 @zig_sdk//toolchain:aarch64-linux-gnu.2.19 @zig_sdk//toolchain:aarch64-linux-gnu.2.22 @zig_sdk//toolchain:aarch64-linux-gnu.2.23 @zig_sdk//toolchain:aarch64-linux-gnu.2.24 @zig_sdk//toolchain:aarch64-linux-gnu.2.25 @zig_sdk//toolchain:aarch64-linux-gnu.2.26 Thanks Laurynas! ### [Ken Micklas] Upgrade to Bazel 5.1.0 ... we now require minimal bazel 5.1.0. And there are some other minor CI improvements, like specifying golang version for reproducibility. Laurynas is preparing a different way to specify musl and glibc platforms by selecting the platform, not the toolchain. This should happen soon. This was desirable from day 0, but I couldn't make it happen reliably at the time, so resorted to `--extra_toolchains`. Looking forward to it! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mail-b.sr.ht (Postfix) with ESMTPS id 26EB511EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 7 Apr 2022 11:59:00 +0000 (UTC) Received: by mail-lf1-f45.google.com with SMTP id j9so1115535lfe.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 07 Apr 2022 04:59:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=qPvE8Z3jxFbO8/hk/7iLyvO8AvuVK1BVd14aRCHEq9Q=; b=oHQTT3iCEJtVOWQUpeJMxTuzSU8kBCJr+Rhre09sno6wm9JMS+4XMD5Mk89ZzsblLg rvecwfi75VwCYUgp/Nj5yRnQI2K8KTeNkRUCB7GTd9oF7NuZsxC8+GxH9TxR8xqvODLw yk03ZdPwvg/UvkNWgNLBOE2gYcuXN3fagTuWe/FjfEZMmjvt1SthbmZZFJYRjwoS2cIK 9btIhIMkl9TU6CjKwhLSqkO8oK/jfuH0A6bwa98Vq9vaoT9KTXGC+0rzmLVXa0QvpzgM gSVt3JGjtNpasYkEvykRqNiL9IF+ybEuS3v8ooWJLBS7OvvbXkmlHa6upqlUIBZs0fDY YI7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=qPvE8Z3jxFbO8/hk/7iLyvO8AvuVK1BVd14aRCHEq9Q=; b=vLTlF5zQFcCkVWc3pTkrSl6laNqNX+7U4OFZjoQF5w+Q3R9baAMbTjeuN91+rgoAlY I35XRrUryuCQQGPsCWfFmTriUcRraq2lg7wqedf9mCCQrd6DzQsYD9EFeDuftP0nYw4E /B/eHXdWqFJJZ/LeFg1tsAqPywtvqkog69NFfwjlVCCHoswHLeoNzMmJbeIhvKIzHFZ9 JYhyLXbsYQ5mH8BhIXP3vVX9/dBaTml53KifDPhAK5+a+WBTpDp4FMq5Fo6uHRtCCvph ftoxdhzDD5cCuI0333ObESfY8C9auh++SpJB8VoKE47mqGqxTTwbG5OAihnSootP455N FOdg== X-Gm-Message-State: AOAM530+ADb6PNwhrVoZ2Pvix6HxW85gaJulXtWffYEtq0aRR5C1oF1j sesRfuRME7Q/fPVchsNpjYzTrfAB10o= X-Google-Smtp-Source: ABdhPJyoV6RBbcMPkh4E6B56JGD/HqTSZPMCZFPKWkImrBLr2QckR6kmYKhjvASHRiZbtHuDLq17dw== X-Received: by 2002:a05:6512:2252:b0:44a:3038:cbc with SMTP id i18-20020a056512225200b0044a30380cbcmr9119693lfu.252.1649332738955; Thu, 07 Apr 2022 04:58:58 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id y5-20020a2e3205000000b0024b045e3b18sm1824027ljy.66.2022.04.07.04.58.58 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 04:58:58 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 7 Apr 2022 14:58:57 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: RW access to contributors; talk in zig meetup Message-ID: <20220407115857.q2gikkc624j2eyp2@mtpad.i.jakstys.lt> References: <20220407101625.aahrqx4fa4qme56i@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220407101625.aahrqx4fa4qme56i@mtpad.i.jakstys.lt> Hi all, Slight rule correction: On Thu, Apr 07, 2022 at 01:16:25PM +0300, Motiejus Jakštys wrote: > - When ready for merging, push it to the `next` branch and ping me. Since I allow for force-pushes, we have 3 contributors, `next` doesn't make sense. So push to "your" branch (/) and I'll merge from there. So we should have only those branches in ~motiejus/bazel-zig-cc: - `main`: passes CI and is always the latest released tag. - for our sandbox work: `motiejus/`, `laurynasl/`, `kmicklas/`. You are the boss there. There seems to be a problem with sourcehut picking the patches from the mailing list, which I reported to `#sr.ht:libera.chat`: UI-generated patchset (https://lists.sr.ht/~motiejus/bazel-zig-cc/%3C164932427279.26543.1789507091630612744-0%40git.sr.ht%3E) did not end up in https://lists.sr.ht/~motiejus/bazel-zig-cc/patches and, consequently, did not trigger a CI run. Is this appropriate place to report it? Happened ~1 hour ago. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 82D7C11EF2F for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 8 Apr 2022 13:03:53 +0000 (UTC) From: ~laurynasl Date: Fri, 08 Apr 2022 13:03:53 +0000 Subject: [PATCH bazel-zig-cc 0/1] Fix the register parameter in register toolchain MIME-Version: 1.0 Message-ID: <164942303327.26005.14403108374611803240-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Looks like this slipped through the CI. We should think about how to catch cases like these. laurynasl (1): Fix register toolchain toolchain/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 9D4EB11EF52 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 8 Apr 2022 13:03:53 +0000 (UTC) From: ~laurynasl Date: Fri, 08 Apr 2022 12:55:52 +0000 Subject: [PATCH bazel-zig-cc 1/1] Fix register toolchain Message-ID: <164942303327.26005.14403108374611803240-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~laurynasl In-Reply-To: <164942303327.26005.14403108374611803240-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: laurynasl --- toolchain/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index ebcb65e..9e34e6b 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -65,7 +65,7 @@ def register_toolchains( }, ) - toolchains = ["@zig_sdk//:toolchain:%s" % t for t in register] + toolchains = ["@zig_sdk//toolchain:%s" % t for t in register] native.register_toolchains(*toolchains) ZIG_TOOL_WRAPPER = """#!/bin/bash -- 2.34.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=YOJYgIRj5Efp6IEK+Upr03ayDJNyfjbPpxDgRvSeIe4=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1649423871; v=1; b=SvfvUpxx4SspZsLgBcrQnFjUzHEuh8tlyXSVomm/BKNwgYNa9xKwsKxFpjdNZo03+CnJ6VN9 f0d61GSdt4hYH8fX3pedL4BU7m4UzzercYw4hNuqXsM4LaNcsr2WspELZf3rFy95EqEKBzgeLk6 c5eEENfDGxnu8MRQ20KsKzRVQpXc9ji6yRsLWnFgsYB0ILzZk3+4wUyQ8CA3VwyrUrWP9BZeT/Z QLE4h+6VHGbbkH4ALEh2AWG+ziVMDK9/fcbd2lPxOkxJDSRG2NDnj2QNl3aJ6pemxHOsFSwUsnZ 1/6RYkJAPt4IoVFggK7R0Q0NI3rd8kdntqu7kDjtm6MCg== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 2D9DE11EF2F; Fri, 8 Apr 2022 13:17:51 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 08 Apr 2022 13:17:51 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <164942303327.26005.14403108374611803240-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~laurynasl" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 13m56s [Fix the register parameter in register toolchain][0] from [~laurynasl][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/30909 [1]: mailto:laurynasl@uber.com =E2=9C=93 #732421 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/732421 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by mail-b.sr.ht (Postfix) with ESMTPS id E328611EF8D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 8 Apr 2022 21:15:40 +0000 (UTC) Received: by mail-ed1-f51.google.com with SMTP id g20so11420427edw.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 08 Apr 2022 14:15:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=T6ualBv4fzgTEhmeVIagcPsiNBDA5mkwh+NR7uMFVLg=; b=K8lk9/iOmrZB9FULwWp+0/mcmrFO5pUlzPmV4/RAzC/lAnwVB5ZbK5NDXQLAlG502e y3uNgEv1bRK227X5QgJKjhocaOgfG7RcP6LdXqSyVE4MKHmWpB3IESPqcPwczK0mvU23 CpMaXT4qXwS2b/sTc+Arg0iOP7URGx0aiRe1VClCce6E09pRJYSfcge5T7GEusuIlhGv SMwykkPtL7SDqebDyYcnwXFqe/qb7tBNSHEiISLm/d35SXxWfAyvrAE0w+KfglNxjNvP QlMKoYcmEWhWGdtBlq+xMLTRMfbcPnZBasfPRTHU1VMxROIobLWm5rNk1m1jxewEbMmm DEKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=T6ualBv4fzgTEhmeVIagcPsiNBDA5mkwh+NR7uMFVLg=; b=j929qvKAagl082Cw7WtQ1T+S0InaNZ3P2a76t7PwpN/Q2i07TqB3hoHZJVQjQ2TNxc awN2QfE56oO5xxRxS0oR8qdyvfjxxYmTDjaS4i0VxBiDAy8APtwYKRuqZKAtrYACgOz5 e0TKJk1RZOPYg2ESj3QXDjSbqTjbLtuaxTag2Xs8QFjOo2Z78GP2opCS89mCOZwnyE6W ubtGzB9IMXQZJsNc75+QXTzomkgArFe3hwlKQ5ojmGuVl0XJRz2QTHwJEsVuOOMtuNi0 SsHITnRl6mV3HIljGRK4qWEh2cQMnQrlMUrVbrGHLGaHN+qgB5riMuPPIGujpmtOwhxL F0jA== X-Gm-Message-State: AOAM531QrM8GK3WxRcs9serD9D93li99uhUYDi6Hyo9+zaav/V+WJIeM QdQogfYv97N/jw9XERh66KQ= X-Google-Smtp-Source: ABdhPJw8/cG6HXkicieQfvpH6VtMC1UaUMBolJhrc/sba0ZG4pLrnfw3KSAVLEa4wm002/tNL3Klhg== X-Received: by 2002:a50:c3cf:0:b0:41d:5fc4:7931 with SMTP id i15-20020a50c3cf000000b0041d5fc47931mr2070157edf.244.1649452539767; Fri, 08 Apr 2022 14:15:39 -0700 (PDT) Received: from localhost (host-31-196-35-164.business.telecomitalia.it. [31.196.35.164]) by smtp.gmail.com with ESMTPSA id et21-20020a170907295500b006e7f1abe2ccsm5851105ejc.75.2022.04.08.14.15.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Apr 2022 14:15:39 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 9 Apr 2022 00:15:38 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~laurynasl Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc 0/1] Fix the register parameter in register toolchain Message-ID: <20220408211538.srx5swx4reuf4n2x@mtpad.i.jakstys.lt> References: <164942303327.26005.14403108374611803240-0@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <164942303327.26005.14403108374611803240-0@git.sr.ht> On Fri, Apr 08, 2022 at 01:03:53PM +0000, ~laurynasl wrote: > Looks like this slipped through the CI. We should think about how to > catch cases like these. I think the next step, where you suggested replacing `--extra_toolchains` with registering-all-toolchains-and-specifying-the-platforms, would have helped here? Once transitioned to platforms, I expect us to stop specifying the `--extra_toolchains` and only use platform constraints. Then write a couple of test targets and confirm they are building artifacts for correct architectures Transitions can even allow `sh_test` targets, which would run `file` on the output binary and assert it's architecture. The `ci/test` script would become even simpler. > laurynasl (1): > Fix register toolchain > > toolchain/defs.bzl | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Applied and released v0.6.1. Thank you. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by mail-b.sr.ht (Postfix) with ESMTPS id D3B0811EF91 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 15 Apr 2022 14:07:34 +0000 (UTC) Received: by mail-lj1-f174.google.com with SMTP id o16so9637455ljp.3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 15 Apr 2022 07:07:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=DYZFEA10ndkjk3Nw/v/IJwhyoiaYK+RyhpqCX8E9dNI=; b=kz97bojPLS2sAG7la0yMsahi5VXSJkYcstG0UI04sfRhEQj5jeIRzobD01qctJOzrv Cos5ZTR03J165vE13NM4L8kXu0lO2pwqoPOO4UeZhuQKMIqevuqakIdh47CxpaGU4TEM 83pj+sTmPm4pc5KAJc+86XHUUT8X8/X6nnSNyPLR0SXNyfpZYRFkQdE0UMH6K5ef9uv3 9GPa1s5X5JA5jTxYLvnyc1e5UzT+coNadLBrbZJZXeW83Wm6Q9gcFj59GwE2vBnXBF8p osDUkSEp1/PuvHe5ywTRsqX7uR28g23kcg2M+Vd5QGrwT8iuE857nS1IGSAmCLv9nuh1 NvcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=DYZFEA10ndkjk3Nw/v/IJwhyoiaYK+RyhpqCX8E9dNI=; b=6xjSQans+iTR4OYcKHXsnetp3rTPpR21R/3zqmIGZO8WtYwbCKRS9BT5WewQh+zZ/+ WPYmXPY0jvPgDyH6Cx+CbgOWP8RFLZMFgR4F7NazWR3UptDF/o5JR2hRMHdP9xIOD2QY A+L0A0LEa1ZpTI6YTONrRNCt1d6uWLmm4XyGRQNp2U4gFZ+ObQLLNHhhwjSxrzYhB+Zw fGaFDdbtH6LMKuuGW59HH38Fh5SXUHL//+VF1xefcJ58Ppl43c4Nnys27W3XHHr+aCK9 TmXANarefB/gWc0wc3vih+AovCMlQ/kStVbfwu1ue1pOLDIKh/C82h2v9PxrpXXPP5nl EPdw== X-Gm-Message-State: AOAM532eXbr2h9nepWoQpDHvSDG/w0ZWY/2P5yUQofV9XP8kFrAmyGW4 6PUn6ceAUD4/ei6GK/EPUDfXq8YO14I= X-Google-Smtp-Source: ABdhPJxY3M4sKfoYu+xn8BNqH5oPR+AUahNkb1tYOVkji8skDNsvMHnycAyZML2oMpWwVYqFSGW9kA== X-Received: by 2002:a05:651c:154b:b0:24c:7f44:2448 with SMTP id y11-20020a05651c154b00b0024c7f442448mr4446359ljp.129.1650031653191; Fri, 15 Apr 2022 07:07:33 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id y21-20020a2e7d15000000b0024dab6213cfsm45129ljc.48.2022.04.15.07.07.31 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Apr 2022 07:07:31 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 15 Apr 2022 17:07:30 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: upcoming changes in bazel-zig-cc v0.7 Message-ID: <20220415140730.xpx6sap4yu4bt3ix@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, Laurynas rewrote bazel-zig-cc. Now it will support specifying arch/os/libc via *platforms* alone (provided toolchains are registered). E.g. --platforms @zig_sdk//libc_aware/platform:linux_amd64_gnu.2.28 --platforms @zig_sdk//libc_aware/platform:linux_amd64_musl I intend to merge this on ~Tuesday. There will be (almost) no breaking changes, but many new ways to use bazel-zig-cc. I am excited about this release, as now it makes many things "right". Read the README. :) While updating documentation, I accidentally wrote my mental model on how `--platforms`, `--toolchains` and constraints interact. If you find lies there, please let me know, I will un-lie them. Here are the updated docs; notice they are much longer than the original: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/laurynasl_libc/item/README.md?view-rendered Thanks Laurynai! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by mail-b.sr.ht (Postfix) with ESMTPS id D2AE611EEFE for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 20 Apr 2022 09:37:41 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id w1so1807094lfa.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 20 Apr 2022 02:37:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=e/BIiG8y5IC+Nio1ZqSP9xLinXXy6mN1Tuj5Q9vgRJ4=; b=R6YYS60AyESm13henlgoSEcCgC6fExYNs5liGC6Xai43OaEL+3r2XmZ0jbL4p+fubO GTYUoqCVI7n4XuB21yCQgHpir1XSC/faRC1bTL6R14HJz7yqhCSNlIxZgaCSJfl4phQO uyyiyRHMLtExInhl0vIyf+dH5N+tW9apoFR3GAi+LVYeGqDCqDZtT7MOoBJzLGvOXhR2 gjCIsOZvagRo3IxvYv87T/2PwrnHWPsHSnYlHMGVeDl5MnRLmBGAezs3XeI343mPi2hr 20aU1EpDLJ4Z1fZZeJZDXf0D01F9jU4O7IkWILkNEKd/YYNCD9houePRvsyAVIKzS7JE ydUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=e/BIiG8y5IC+Nio1ZqSP9xLinXXy6mN1Tuj5Q9vgRJ4=; b=CJaYLURaogIn3HjAmu0vyIlIVRMU53J48fS32VIhvax6GfSyFcg5xrMSgYY06lL5rJ CRgPC2lPq2DoMDx3li4Kuk9zrMfcHU/ri9xT5nsavxTjt/KwtDVhtbrf56ixqfMNMOGp prwPYjBPuAyBlIeVUhTQ/HR7lmd6MVK8VUg24ubXmlGFhcOMElJTK4+iVzpqNxTWRKYy 9+cPB91TaGO6fwP+LaqsLa5GS9cUgBGvAgICl4iIKIQ+dOeB1mt41YLyfgHNAaVkwihO eKXqpSslGlRQQtPgDqerU54PMUfCmTKwCdYM/Q9DMelaUDxbeL7xKAw+4PdkVcs9X/5F k4cw== X-Gm-Message-State: AOAM530+qV2Jf95daul3BUlni1Cm8y016QwMs7bQ9jeiHQ4TehGbueMR MrqtBCzPZfVmyyu3xXYzg1EXyTOhZZg= X-Google-Smtp-Source: ABdhPJwDJH7o0BLFkci7pYyyQS2lkVpxPUS8QhSaXjtLKDtA2gQGfyj7baifuoui/IZYMESX4qnKfw== X-Received: by 2002:a05:6512:3d94:b0:471:2436:f8f4 with SMTP id k20-20020a0565123d9400b004712436f8f4mr12131641lfv.441.1650447459162; Wed, 20 Apr 2022 02:37:39 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id s12-20020ac25fac000000b004435e2e0a08sm1773901lfe.251.2022.04.20.02.37.37 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Apr 2022 02:37:38 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 20 Apr 2022 12:37:36 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.7.0 Message-ID: <20220420093736.x4hjjpkkkzvjolsa@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I've released bazel-zig-cc v0.7.0. It's a rewrite by laurynasl@ and major documentation upgrade by myself. Incompatible changes -------------------- 1. `register_toolchains` renamed to `toolchains`. Before: load("@bazel-zig-cc//toolchain:defs.bzl", zig_register_toolchains = "register_toolchains") After: load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains = "toolchains") 2. `toolchains(register = ...)` was removed. You should be registering the toolchains directly in the WORKSPACE or via `.bazelrc` (see README). 3. "glibc version autodetection" is removed: the glibc version must now be always specified. New Features ------------ 1. Now one can specify the libc variant (glibc+version or libc) via `--platforms` alone. See README. 2. Internal: more examples with multiple architectures, transitions, and a new "C" test case. Ecosystem --------- While testing this internally, we've realized that the new version of rules_docker[1] is not compatible with the new libc-in-the-platform feature, since the libc version is *part of the platform now*. Laurynas will comment in the PR with more details. Enjoy! Motiejus [1]: https://github.com/bazelbuild/rules_docker/pull/1963 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=uber.com header.i=@uber.com Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by mail-b.sr.ht (Postfix) with ESMTPS id 7F24311EEFE for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 20 Apr 2022 12:20:37 +0000 (UTC) Received: by mail-yb1-f173.google.com with SMTP id m132so2520419ybm.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 20 Apr 2022 05:20:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uber.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Si4fflkXFvBbGMHW6tzu8X1ndgXjt2CVYKJ63HXkqsU=; b=wkLIewIZTdy5Yo2bypHKpzs9BCFUb5hiHPrJzkEX38yMcm6aeQ/uWqtqTFvvLQOrw2 Miirr9R3V7rw73x7zjvtRSP3fh17HtB7rhfTm9yAnnU6/mpnYxlVuPYR7licTwgIoUuA u2DH3uwNXcNHa7WMa6ZNZ+ENbi/8V2vos5V/Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Si4fflkXFvBbGMHW6tzu8X1ndgXjt2CVYKJ63HXkqsU=; b=OVFWoGoe2wT7Y0FrrnKO8a6RErxwp4AsvBbwuXdqHPIoShi8OnwHfDwo1emuZdrvoT DAnul7WXATL7b0rBk4Ikdkox+KcZYAob8ND81zOWu1StVevlC9DhIbdAzoZZM5BD0fkO fOzratZXdyyxzmG/ru1hK/Q2nvYDv3gIsOnvQt6YfXHGN5ezkgSY6+/LWwXD+PL8wJBX cpjP04Nqd4UZrQxYcdFw0wkmdtmHpr3EyUdeNwtOdjizT+rwRIkzsixsCcjUC/VfVerp NRaJSvfrOeFG7qZPQ50tHPeFCgitKHkWK2OFPBx7fbvwx4upqugSXEmKpbblp2aJ5ouz p4qQ== X-Gm-Message-State: AOAM533kYOYHpPwkBnHl/dTv8qEDuWsJ0AyTeUAFS7AtPzXTG3fRTj46 3wYSTQY19hL8zTy30l1h2TsIt/wBngWYHMwC8Qqd X-Google-Smtp-Source: ABdhPJxQzRDS8ORw5uj4MePwvOSr0rXhs0nrVKdFp6k3pRFOihTnKNwhaPTLESjIoL1MpCqEhr21SgS/WL31cDfB96w= X-Received: by 2002:a25:bf86:0:b0:641:4772:923a with SMTP id l6-20020a25bf86000000b006414772923amr20506048ybk.265.1650457236952; Wed, 20 Apr 2022 05:20:36 -0700 (PDT) MIME-Version: 1.0 References: <20220420093736.x4hjjpkkkzvjolsa@mtpad.i.jakstys.lt> In-Reply-To: <20220420093736.x4hjjpkkkzvjolsa@mtpad.i.jakstys.lt> From: Laurynas Lubys Date: Wed, 20 Apr 2022 15:20:26 +0300 Message-ID: Subject: Re: bazel-zig-cc v0.7.0 To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Regarding rules_docker: In 0.23.0, rules_docker added transitions based on the architecture and operating system specified on the container_image. The platform transition is "hard-coded" in a sense where it will use a specific platform that only includes the os and cpu constraints. This means that it is not possible to provide a platform which includes a libc version. There seem to still be some discussion on how this should best be solved in rules_docker. Cheers, Laurynas On Wed, Apr 20, 2022 at 12:37 PM Motiejus Jak=C5=A1tys wrote: > > Hi all, > > I've released bazel-zig-cc v0.7.0. It's a rewrite by laurynasl@ and > major documentation upgrade by myself. > > Incompatible changes > -------------------- > > 1. `register_toolchains` renamed to `toolchains`. Before: > > load("@bazel-zig-cc//toolchain:defs.bzl", zig_register_toolchains= =3D "register_toolchains") > > After: > > load("@bazel-zig-cc//toolchain:defs.bzl", zig_toolchains =3D "too= lchains") > > 2. `toolchains(register =3D ...)` was removed. You should be registering > the toolchains directly in the WORKSPACE or via `.bazelrc` (see READM= E). > > 3. "glibc version autodetection" is removed: the glibc version must now > be always specified. > > New Features > ------------ > > 1. Now one can specify the libc variant (glibc+version or libc) via > `--platforms` alone. See README. > > 2. Internal: more examples with multiple architectures, transitions, and > a new "C" test case. > > Ecosystem > --------- > > While testing this internally, we've realized that the new version of > rules_docker[1] is not compatible with the new libc-in-the-platform > feature, since the libc version is *part of the platform now*. Laurynas > will comment in the PR with more details. > > Enjoy! > Motiejus > > [1]: https://github.com/bazelbuild/rules_docker/pull/1963 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by mail-b.sr.ht (Postfix) with ESMTPS id 2FFBD11EFC9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 5 May 2022 12:24:31 +0000 (UTC) Received: by mail-lj1-f173.google.com with SMTP id 4so5354824ljw.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 05 May 2022 05:24:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=DPz95s72paZNhFzkhCmu5Co2WHEUgIjoRgB9imbXDeo=; b=d0IqLFnfdu8dngOJZTw07JvW5LT9HrfCoXXQqr0Lb0L1Tc5kzU5QdBLcTo7ogw8/8C 8tsoVV0/FS1pmY6c5LvRPpdNeD/VJ1PxYbjLdw8Ffzb1BKTEHdonfT3+mV+Q233sTE52 QqP7G7kAkYrfRKrqahe7fPmZmx1qxL+VxSKfXqRO4bOIMwIqth41eLqPsexubcM3c3Qg Hvd4lYHB7RtFnD1eXWNwlQm5Qu04CwlveRYMyYghsBIexA5amoFhozj2Yf6WdpImEjdR FRullx436PFfMGdDuTNJpGakPgBLiy0ay6FBmQ0LEaPSdRFeS+JNtkTqQ2e0b11gC5fS lHhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=DPz95s72paZNhFzkhCmu5Co2WHEUgIjoRgB9imbXDeo=; b=QeqwXbc7RcTsP3r0JpOYZMzFysfTlb0oH40S3h1LQn68iLbTA5qEDg9RKF0zc8zxGv 037aAXtxGL7yCY3yDLJv0Fmtbbfw7CV8A9hG73TayW8POYCYyQbzeAiSHEfSD6HjS2sp 2siat9WQza+oyVpRjF1bc+dr/a+2L97s9JX04Hv3UvcOB0XkUXlCzH2eOeyzFF/6Fp2Q VOaxUVtR73Wj2e9IEaCxz1Ssg0VVsVsTaRh4Hs5OwqZm3TUTgC3xIz0U2+kcYpoZO8XR ftTcTOP9c2ZXoTTVF1NFiHqC1ct31iRInlfQVUeZU918UWiAE84LC3q2aF4krgqH+jAV 2fZQ== X-Gm-Message-State: AOAM532917vUSn7ZJjPjTaQM0kwj5Kkg+mj61IDCIpZNLHKII2ybEjsg mZQG5kTkYaZHfOb6s4NQ4f4ZelB/NbM= X-Google-Smtp-Source: ABdhPJxymRE2fMyZuBWxilRsv6/J66rbJWyL0qqetIRfxJvnaTUTn9AwJzs159Bjb6wyYYoG4R++9w== X-Received: by 2002:a05:651c:399:b0:24f:18d:5bbd with SMTP id e25-20020a05651c039900b0024f018d5bbdmr15972991ljp.481.1651753468442; Thu, 05 May 2022 05:24:28 -0700 (PDT) Received: from localhost (h6.n.technopolis.lt. [194.157.155.165]) by smtp.gmail.com with ESMTPSA id k30-20020a0565123d9e00b0047255d2116asm198317lfv.153.2022.05.05.05.24.27 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 May 2022 05:24:27 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 5 May 2022 15:24:25 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.7.1 Message-ID: <20220505122425.ipd2p6kykd7iph7b@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi everyone, I just cut bazel-zig-cc v0.7.1, which adds a workaround for the infamous libc linking problem: net(.text): relocation target __errno_location not defined net(.text): relocation target getaddrinfo not defined <...> Read about it, as well as related issues, in this github summary[1]. Many thanks to Andrew Kelley and Ken Micklas for working on it! What is the cause? Because `zig cc` adds `--gc-sections` to the `ld.lld` flags, which does not play well with cgo. So the workaround adds `--no-gc-sections` to the linker flags for the time being. Motiejus [1]: https://github.com/ziglang/zig/pull/11577 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by mail-b.sr.ht (Postfix) with ESMTPS id 1CB2111EE04 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 17 May 2022 12:10:08 +0000 (UTC) Received: by mail-pg1-f180.google.com with SMTP id s68so231212pgb.13 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 17 May 2022 05:10:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:subject:message-id:mime-version :content-disposition; bh=IWaI4txxzUHCf/h00uDh3KfvJXVISgwnHPxQJz2ibfs=; b=hUk9qnSPHnqyrA649fdnHmNzD1KYWH4fMC5iKz11VtaGHA/RUygB3BJEfHD5Oi//Rk wxgyuAYJwr/TVaM0h59WgH+D+KdYYfCBJUO6FGzjt+9plpGcx472/jtd2J26zO1cePYI vUD1YXTPYm8W87Ny+fb+uAggwd9gXZQQHRaPFcn27xeoYnunML+aQm96ZBtlkhscOZpm H+7nQ/qGzeexY90t/P2tf970Ahpexdd5y2XXZyzeY+MZz4vkevUOwkg+aiO4hgsjISn9 m58jrnEMe6qPsD9q0UcGfMfaeD/Wv1m1C9jtSDrAv0c84dDUJVkUUpsKl0+1J3FBJ2A4 iplg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition; bh=IWaI4txxzUHCf/h00uDh3KfvJXVISgwnHPxQJz2ibfs=; b=wIbUgTGC2YcCkUB9qFfBrMHKDlMWTurA6w+Dia70qOaHYuzmyQGWk/69k8WbLZb8N1 SA5y9MAVVzrXEGPSw4n+Lf84Aiccxk1jwVE6vRf4I+e1BD67QfiCwJZKpSVIrEaB5xWK R5k+vlmCg4ZT03xOhgfDZOXu3FbIFmJUQoBkObOmu20elI+d/iwtZ8/BVBu6itZRX6uC R681fw7R3XD5Mvn3XRupV+V3jduoknSyGnmkWxfXT5eHU+OxdlqDehtKz3HQF6nD1Xxl +9CYsIMOmSmPYKZZ46TsgNUZF9E9/zAIcfoHfopsw3dEcce5A/bQMs7xAR2F/U7Ss2S4 fn3A== X-Gm-Message-State: AOAM532SuC4WNL5JVBOlC/qInJ4lDNki6O/NXhM3P7YLGWSVq12jYxM8 sL7fDNuSPX+WAknFIy36zaXvVmXZ2jU= X-Google-Smtp-Source: ABdhPJw1d1EB0C+hU/YWdovM+HwBDdL306zXpzTdd+Fv0nkRxrtXhqJPl2JIbmaSeIHlD2iDHVlMVw== X-Received: by 2002:a63:1b62:0:b0:3f2:5438:e553 with SMTP id b34-20020a631b62000000b003f25438e553mr11729797pgm.4.1652789406870; Tue, 17 May 2022 05:10:06 -0700 (PDT) Received: from localhost (88-119-96-125.static.zebra.lt. [88.119.96.125]) by smtp.gmail.com with ESMTPSA id s10-20020a17090ae68a00b001da3920d985sm1502926pjy.12.2022.05.17.05.10.05 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 05:10:06 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 17 May 2022 15:10:02 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: bazel-zig-cc v0.7.2 Message-ID: <20220517121002.f4tnfcmgvk4nwbxe@mtpad.i.jakstys.lt> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, It was a long time ago since the last Zig SDK update. I just released v0.7.2, which updates the zig to tonight's build zig-0.10.0-dev.2252+a4369918b, along with bazel-zig-cc's test dependencies (rules_go, bazel-gazelle, golang). Also, I removed many prehistorical zig-sdk versions from the dl.jakstys.lt mirror and left only the ones referenced by v0.7.1 and v0.7.2. If your build broke as a result, it's a good time to reconsider hosting zig sdk yourself. Regards, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 2B1C411EEE1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 20 May 2022 15:03:15 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653058987; bh=WuiZ7bx3eBUnfp4Rd/cpDWbrJ2vFH6FtT4n1wRwaYCE=; h=From:To:Cc:Subject; b=jZdvefn6XZoUkBiHgUFQFi/ORKH0hSpl6MW78FxvJ5uwpvv5m9icZF3zbWeJvwLUP Bb2aPWb78td0ycMl+ZCvW3ZdCw08+dMNduegQZnryNBuGyjSvC+DUS7RCNPRYhDu3d vuMaTddVgNaHTTp6R3FBCAjpiuEqgmi9eedchEgc= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc 0/3] Windows support Date: Fri, 20 May 2022 16:02:29 +0100 Message-Id: <20220520150232.15515-1-fabian@hahn.graphics> Hello there, First of all, thank you for this great project! I was always intrigued by zig's C/C++ compilation abilities but wasn't too keen on adopting it as a build system. Being able to use zig as a bazel toolchain using this project is incredible and exactly the way I always wanted to use zig. My intended use case for bazel-zig-cc was to enable cross compilation between the two supported platforms Linux and Windows in my project [1]. To this end, I started looking into extending bazel-zig-cc with Windows support both as a host and target system. The attached three commits in made this work and successfully allowed me to cross compile all of my cc_binary targets between Linux and Windows using zig cc. That said, they do not actually depend on each other and can be used individually. I hope others might find them useful, too, and would like to ask you to consider accepting them into the mainline of the project. Best, Fabian [1] https://github.com/FabianHahn/shoveler Fabian Hahn (3): added windows host support added support for Windows targets added platform constraint setting for selecting if zig cc is used toolchain/BUILD.sdk.bazel | 1 + toolchain/defs.bzl | 58 +++++++++++++++++++++++------ toolchain/platform/BUILD | 15 ++++++++ toolchain/platform/defs.bzl | 8 +++- toolchain/private/BUILD.sdk.bazel | 1 + toolchain/private/cc_toolchains.bzl | 6 +-- toolchain/private/defs.bzl | 27 +++++++++++++- 7 files changed, 99 insertions(+), 17 deletions(-) -- 2.17.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 6FE2611EEFC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 20 May 2022 15:03:15 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653058987; bh=M18VNogtyHCImW8/WKI5DKn27fgQ/L/hFUyDeVCjvPo=; h=From:To:Cc:Subject:In-Reply-To:References; b=Z+nrbSoBHrmUF6zWjz0RpE0+aDbrYMRKtNUZMcoEn82Dq775R2ycqRoqGJmo2ly7t zZ6zK+VTlfGykAd5BffWOtp3ofuWF8ZA3fkQoy9PIYLu/uyN4ZC+WVTSK+UznjkF6L qmP+nvSyd9Qe9ZttsqkfBoGT7V369XNjEoGClrBs= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc 1/3] added windows host support Date: Fri, 20 May 2022 16:02:30 +0100 Message-Id: <20220520150232.15515-2-fabian@hahn.graphics> In-Reply-To: <20220520150232.15515-1-fabian@hahn.graphics> References: <20220520150232.15515-1-fabian@hahn.graphics> --- This commit adds support for Windows as a host system. For example, given an existing bazel project on Windows, this commit enables cross compilation to other supported target platforms of bazel-zig-cc such as Linux. I've successfully used it to cross compile a Linux cc_binary from a Windows machine and validated that it works correctly by copying it to a Linux box and launching it there. Apart from downloading the correct zig SDK version on Windows, the main crux here was to actually make all of the zig tools properly executable. In order for the wrapper script to be executable, it needs to be a batch script with the proper extension instead of bash. Further, the actual zig binary itself is called zig.exe instead of just zig on Windows. toolchain/BUILD.sdk.bazel | 1 + toolchain/defs.bzl | 58 +++++++++++++++++++++++------ toolchain/private/BUILD.sdk.bazel | 1 + toolchain/private/cc_toolchains.bzl | 6 +-- toolchain/private/defs.bzl | 8 +++- 5 files changed, 58 insertions(+), 16 deletions(-) diff --git a/toolchain/BUILD.sdk.bazel b/toolchain/BUILD.sdk.bazel index ada3e5d..e1505b1 100644 --- a/toolchain/BUILD.sdk.bazel +++ b/toolchain/BUILD.sdk.bazel @@ -7,6 +7,7 @@ package( declare_files( + os = {os}, zig_include_root = {zig_include_root}, ) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 9ab4e88..d334aca 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,6 +1,6 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "use_netrc") -load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "ZIG_TOOL_PATH", "target_structs") +load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "zig_tool_path", "target_structs") _fcntl_map = """ GLIBC_2.2.5 { @@ -16,21 +16,21 @@ __asm__(".symver fcntl64, fcntl@GLIBC_2.2.5"); """ # Official recommended version. Should use this when we have a usable release. -URL_FORMAT_RELEASE = "https://ziglang.org/download/{version}/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_RELEASE = "https://ziglang.org/download/{version}/zig-{host_platform}-{version}.{ext}" # Caution: nightly releases are purged from ziglang.org after ~90 days. A real # solution would be to allow the downstream project specify their own mirrors. # This is explained in # https://sr.ht/~motiejus/bazel-zig-cc/#alternative-download-urls and is # awaiting my attention or your contribution. -URL_FORMAT_NIGHTLY = "https://ziglang.org/builds/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_NIGHTLY = "https://ziglang.org/builds/zig-{host_platform}-{version}.{ext}" # Author's mirror that doesn't purge the nightlies so aggressively. I will be # cleaning those up manually only after the artifacts are not in use for many # months in bazel-zig-cc. dl.jakstys.lt is a small x86_64 server with an NVMe # drive sitting in my home closet on a 1GB/s symmetric residential connection, # which, as of writing, has been quite reliable. -URL_FORMAT_JAKSTYS = "https://dl.jakstys.lt/zig/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_JAKSTYS = "https://dl.jakstys.lt/zig/zig-{host_platform}-{version}.{ext}" _VERSION = "0.10.0-dev.2252+a4369918b" @@ -39,12 +39,22 @@ _HOST_PLATFORM_SHA256 = { "linux-x86_64": "1d3c3769eba85a4334c93a3cfa35ad0ef914dd8cf9fd502802004c6908f5370c", "macos-aarch64": "ab46e7499e5bd7b6d6ff2ac331e1a4aa875a01b270dc40306bc29dbaf216fccf", "macos-x86_64": "fb213f996bcab805839e401292c42a92b63cd97deb1631e31bd61f534b7f6b1c", + "windows-x86_64": "14e43a64026512161f3d6201d8972a28f0508da2782c16e980f2ffa3bb7e6720", +} + +_HOST_PLATFORM_EXT = { + "linux-aarch64": "tar.xz", + "linux-x86_64": "tar.xz", + "macos-aarch64": "tar.xz", + "macos-x86_64": "tar.xz", + "windows-x86_64": "zip", } def toolchains( version = _VERSION, url_formats = [URL_FORMAT_NIGHTLY, URL_FORMAT_JAKSTYS], - host_platform_sha256 = _HOST_PLATFORM_SHA256): + host_platform_sha256 = _HOST_PLATFORM_SHA256, + host_platform_ext = _HOST_PLATFORM_EXT): """ Download zig toolchain and declare bazel toolchains. The platforms are not registered automatically, that should be done by @@ -56,11 +66,13 @@ def toolchains( version = version, url_formats = url_formats, host_platform_sha256 = host_platform_sha256, + host_platform_ext = host_platform_ext, host_platform_include_root = { "linux-aarch64": "lib/zig/", "linux-x86_64": "lib/", "macos-aarch64": "lib/zig/", "macos-x86_64": "lib/zig/", + "windows-x86_64": "lib/", }, ) @@ -81,6 +93,10 @@ export ZIG_GLOBAL_CACHE_DIR=$ZIG_LOCAL_CACHE_DIR exec "{zig}" "{zig_tool}" "$@" """ +ZIG_TOOL_WRAPPER_WINDOWS = """@echo off +"{zig}" "{zig_tool}" %* +""" + _ZIG_TOOLS = [ "c++", "cc", @@ -103,11 +119,16 @@ def _zig_repository_impl(repository_ctx): if os.startswith("mac os"): os = "macos" + if os.startswith("windows"): + os = "windows" + host_platform = "{}-{}".format(os, arch) zig_include_root = repository_ctx.attr.host_platform_include_root[host_platform] zig_sha256 = repository_ctx.attr.host_platform_sha256[host_platform] + zig_ext = repository_ctx.attr.host_platform_ext[host_platform] format_vars = { + "ext": zig_ext, "version": repository_ctx.attr.version, "host_platform": host_platform, } @@ -121,12 +142,19 @@ def _zig_repository_impl(repository_ctx): ) for zig_tool in _ZIG_TOOLS: - repository_ctx.file( - ZIG_TOOL_PATH.format(zig_tool = zig_tool), - ZIG_TOOL_WRAPPER.format( - zig = str(repository_ctx.path("zig")), + zig_tool_wrapper = ZIG_TOOL_WRAPPER.format( + zig = str(repository_ctx.path("zig")), + zig_tool = zig_tool, + ) + if os == "windows": + zig_tool_wrapper = ZIG_TOOL_WRAPPER_WINDOWS.format( + zig = str(repository_ctx.path("zig")).replace('/', '\\') + ".exe", zig_tool = zig_tool, - ), + ) + + repository_ctx.file( + zig_tool_path(os).format(zig_tool = zig_tool), + zig_tool_wrapper, ) repository_ctx.file( @@ -157,6 +185,7 @@ def _zig_repository_impl(repository_ctx): executable = False, substitutions = { "{absolute_path}": _quote(str(repository_ctx.path(""))), + "{os}": _quote(os), "{zig_include_root}": _quote(zig_include_root), }, ) @@ -167,6 +196,7 @@ zig_repository = repository_rule( "host_platform_sha256": attr.string_dict(), "url_formats": attr.string_list(allow_empty = False), "host_platform_include_root": attr.string_dict(), + "host_platform_ext": attr.string_dict(), }, implementation = _zig_repository_impl, ) @@ -175,9 +205,13 @@ def filegroup(name, **kwargs): native.filegroup(name = name, **kwargs) return ":" + name -def declare_files(zig_include_root): +def declare_files(os, zig_include_root): filegroup(name = "empty") - native.exports_files(["zig"], visibility = ["//visibility:public"]) + if os == "windows": + native.exports_files(["zig.exe"], visibility = ["//visibility:public"]) + native.alias(name = "zig", actual = ":zig.exe") + else: + native.exports_files(["zig"], visibility = ["//visibility:public"]) filegroup(name = "lib/std", srcs = native.glob(["lib/std/**"])) lazy_filegroups = {} diff --git a/toolchain/private/BUILD.sdk.bazel b/toolchain/private/BUILD.sdk.bazel index 39a6a93..3e7c23e 100644 --- a/toolchain/private/BUILD.sdk.bazel +++ b/toolchain/private/BUILD.sdk.bazel @@ -1,6 +1,7 @@ load("@bazel-zig-cc//toolchain/private:cc_toolchains.bzl", "declare_cc_toolchains") declare_cc_toolchains( + os = {os}, absolute_path = {absolute_path}, zig_include_root = {zig_include_root}, ) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolchains.bzl index 64e99f1..a0c7da0 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -1,4 +1,4 @@ -load(":defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "ZIG_TOOL_PATH", "target_structs") +load(":defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "zig_tool_path", "target_structs") load("@bazel-zig-cc//toolchain:zig_toolchain.bzl", "zig_cc_toolchain_config") DEFAULT_TOOL_PATHS = { @@ -11,7 +11,7 @@ DEFAULT_TOOL_PATHS = { "strip": "/usr/bin/false", }.items() -def declare_cc_toolchains(absolute_path, zig_include_root): +def declare_cc_toolchains(os, absolute_path, zig_include_root): for target_config in target_structs(): gotarget = target_config.gotarget zigtarget = target_config.zigtarget @@ -28,7 +28,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): if path[0] == "/": absolute_tool_paths[name] = path continue - tool_path = ZIG_TOOL_PATH.format(zig_tool = path) + tool_path = zig_tool_path(os).format(zig_tool = path) absolute_tool_paths[name] = "%s/%s" % (absolute_path, tool_path) linkopts = target_config.linkopts diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6059065..6804104 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -4,7 +4,7 @@ DEFAULT_INCLUDE_DIRECTORIES = [ "libcxxabi/include", ] -ZIG_TOOL_PATH = "tools/{zig_tool}" +_ZIG_TOOL_PATH = "tools/{zig_tool}" # Zig supports even older glibcs than defined below, but we have tested only # down to 2.17. @@ -30,6 +30,12 @@ _GLIBCS = [ LIBCS = ["musl"] + ["gnu.{}".format(glibc) for glibc in _GLIBCS] +def zig_tool_path(os): + if os == "windows": + return _ZIG_TOOL_PATH + ".bat" + else: + return _ZIG_TOOL_PATH + def target_structs(): ret = [] for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): -- 2.17.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 6BB9911EF8C for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 20 May 2022 15:03:16 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653058987; bh=WZJtonkY6mfvO0efhXOOXo/ZME5GMA+oRkCH2uKaaQo=; h=From:To:Cc:Subject:In-Reply-To:References; b=cuL9Mm4St/jFVu4mhTXv40bFFT5F/3ACSwACloJcCYn22TWGsngPi33HO0w8W54uw 4uqY2jBtwvQsGrBqG8XJ6Me1/9Jc0sBNQm1N++C6jLc2OJPRk7rBqENu3pHTdWg8d8 AtSpdb1Y56XtoICP66NYxbP+DK9G6xa1dFYF5EYU= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc 2/3] added support for Windows targets Date: Fri, 20 May 2022 16:02:31 +0100 Message-Id: <20220520150232.15515-3-fabian@hahn.graphics> In-Reply-To: <20220520150232.15515-1-fabian@hahn.graphics> References: <20220520150232.15515-1-fabian@hahn.graphics> --- This commit adds support for Windows targets to bazel-zig-cc by registering the appropriate toolchains and platforms for it. I've validated this by building a cc_binary on Linux targeting the windows_amd64 platform/toolchain combination, copying the resulting binary to a Windows box and successfully executing it there. I was also able to run the resulting binary under wine. One thing to note is that even though cross compilation builds work completely fine, the resulting build outputs are named .a for static libraries (instead of .lib), .so for dynamic libraries (instead of .dll), and have no extension for executables (instead of .exe). I tried to find out why this is but unfortunately couldn't figure it out. That said, the resulting binaries work completely fine. toolchain/platform/defs.bzl | 7 ++++++- toolchain/private/defs.bzl | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/toolchain/platform/defs.bzl b/toolchain/platform/defs.bzl index cf42191..07e69a6 100644 --- a/toolchain/platform/defs.bzl +++ b/toolchain/platform/defs.bzl @@ -1,11 +1,16 @@ load("@bazel-zig-cc//toolchain/private:defs.bzl", "LIBCS") _CPUS = (("x86_64", "amd64"), ("aarch64", "arm64")) +_OS = { + "linux": ["linux"], + "macos": ["macos", "darwin"], + "windows": ["windows"], +} def declare_platforms(): # create @zig_sdk//{os}_{arch}_platform entries with zig and go conventions for zigcpu, gocpu in _CPUS: - for bzlos, oss in {"linux": ["linux"], "macos": ["macos", "darwin"]}.items(): + for bzlos, oss in _OS.items(): for os in oss: declare_platform(gocpu, zigcpu, bzlos, os) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6804104..2ba61f7 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -40,6 +40,7 @@ def target_structs(): ret = [] for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): ret.append(_target_darwin(gocpu, zigcpu)) + ret.append(_target_windows(gocpu, zigcpu)) ret.append(_target_linux_musl(gocpu, zigcpu)) for glibc in _GLIBCS: ret.append(_target_linux_gnu(gocpu, zigcpu, glibc)) @@ -69,6 +70,24 @@ def _target_darwin(gocpu, zigcpu): tool_paths = {"ld": "ld64.lld"}, ) +def _target_windows(gocpu, zigcpu): + return struct( + gotarget = "windows_{}".format(gocpu), + zigtarget = "{}-windows-gnu".format(zigcpu), + includes = [ + "libunwind/include", + "libc/include/any-windows-any", + ], + linkopts = [], + copts = [], + bazel_target_cpu = "x64_windows", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:{}".format(zigcpu), + ], + tool_paths = {"ld": "ld64.lld"}, + ) + def _target_linux_gnu(gocpu, zigcpu, glibc_version): glibc_suffix = "gnu.{}".format(glibc_version) -- 2.17.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 21BA211EEE1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 20 May 2022 15:03:21 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653058987; bh=1hc8pt5ADYckXmmdbUi2ZXn7H2S1yVLYeTI2hZhiaD4=; h=From:To:Cc:Subject:In-Reply-To:References; b=bXSn8NEfNw2YQI/C50iXZXvJMPS/lRoFLfT05y3LpzsvyWkYdgJUVuqTGDnL8H1Kq W0KSLQ2d+VMlbXIhFEhE+SlGiJGQMfHxZDLsWWeMmdm9j+vJtPBUFTzYCD+xHCtpu/ gT4Glnq13cT1HcyWbt7qM2AAxDK7fyxM8JEbsBhI= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc 3/3] added platform constraint setting for selecting if zig cc is used Date: Fri, 20 May 2022 16:02:32 +0100 Message-Id: <20220520150232.15515-4-fabian@hahn.graphics> In-Reply-To: <20220520150232.15515-1-fabian@hahn.graphics> References: <20220520150232.15515-1-fabian@hahn.graphics> --- This commit adds a constraint_setting that can be used to select() between builds with and without zig cc. The reason I added this is because I found that selecting on @bazel_tools//platforms:windows is not enough for Windows builds since that constraint value alone will match both native builds using the MSVC compiler as well as builds using zig cc. The problem arises when passing custom compiler on linker flags that differ in syntax between MSVC and zig's clang format. For example, to link the gdi32 system library on Windows MSVC expects the argument "-DEFAULTLIB:gdi32.lib". However, with zig cc this needs to be "-lgdi32" instead. Having the additional constraint setting for the bazel-zig-cc platforms allows you to define more specific config settings such as: config_setting( name = "windows", constraint_values = [ "@bazel_tools//platforms:windows", "@zig_sdk//platform:zig_cc_disabled", ], ) config_setting( name = "windows_zig", constraint_values = [ "@bazel_tools//platforms:windows", "@zig_sdk//platform:zig_cc_enabled", ], ) This can then be used to switch between linker options as follows: cc_binary( # [...] linkopts = select({ ":windows": ["-DEFAULTLIB:gdi32.lib"], ":windows_zig": ["-lgdi32"], }), ) toolchain/platform/BUILD | 15 +++++++++++++++ toolchain/platform/defs.bzl | 1 + 2 files changed, 16 insertions(+) diff --git a/toolchain/platform/BUILD b/toolchain/platform/BUILD index f43b852..807ac3c 100644 --- a/toolchain/platform/BUILD +++ b/toolchain/platform/BUILD @@ -4,4 +4,19 @@ package( default_visibility = ["//visibility:public"], ) +constraint_setting( + name = "using_zig_cc", + default_constraint_value = "zig_cc_disabled", +) + +constraint_value( + name = "zig_cc_disabled", + constraint_setting = "using_zig_cc", +) + +constraint_value( + name = "zig_cc_enabled", + constraint_setting = "using_zig_cc", +) + declare_platforms() diff --git a/toolchain/platform/defs.bzl b/toolchain/platform/defs.bzl index 07e69a6..05c0744 100644 --- a/toolchain/platform/defs.bzl +++ b/toolchain/platform/defs.bzl @@ -32,6 +32,7 @@ def declare_platform(gocpu, zigcpu, bzlos, os, suffix = "", extra_constraints = constraint_values = [ "@platforms//os:{}".format(bzlos), "@platforms//cpu:{}".format(zigcpu), + "@zig_sdk//platform:zig_cc_enabled", ] + extra_constraints native.platform( -- 2.17.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=nPs7mO//26/A4dat0ZQHrPvplq+tqK8f6RDslDMAXe8=; c=simple/simple; d=sr.ht; h=Date:Cc:From:In-Reply-To:Subject:To; q=dns/txt; s=srht; t=1653059791; v=1; b=hesBOAENLh+/Q7g6faXp848hKQx0oVDnsNwfbAwOD65qE84CT34SFC6YTlDqHMR2huOG6kDM eOaCz+dh9Smx/eL0Q2ooGj+wqMexgA0qJR772IocY/Sp1hAjEICFDeO5wKWOaGwJCrypQ8veIkC zFXoODQOtMxs4IN4xx9DlPcgCOaEjVts/HOvo5Bujo5zUOtd7EJqOv+IZ2ZpmKZDRZj8CbarFhu h3zGrWulZHOWSMvUeTpSlGjTaunXV7kInFD0XGBJrkV7ICdh+KdgjQ/8jX9UAZI2kf3a/sPekMq 1RF5EPiygu96HFi1dlBzEAvWKh57KfPDhG9tnVKJ8IrGg== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id E9E2B11EE9A; Fri, 20 May 2022 15:16:31 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 20 May 2022 15:16:31 +0000 Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <20220520150232.15515-4-fabian@hahn.graphics> Subject: [bazel-zig-cc/patches/.build.yml] build failed To: "Fabian Hahn" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 13m9s [Windows support][0] from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/32423 [1]: mailto:fabian@hahn.graphics =E2=9C=97 #762646 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/762646 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) by mail-b.sr.ht (Postfix) with ESMTPS id CDF6311EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 21 May 2022 12:56:32 +0000 (UTC) Received: by mail-lf1-f47.google.com with SMTP id br17so6132349lfb.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 21 May 2022 05:56:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=ATnOdOSygYdGzkL8M7tYyFx6z7ujwjgOIQ4j81L2J5M=; b=i7aI7xAyfLt68zB7AskVUupgnVfbcm+QTmVSfmZ8H/k6retDziOiJo6Pjj3nwgte/R xmQPYhJozQDpwsKqr4sL3VjXT7p9YOBqPqdzc9/7HqCXt9h3Q51PhqJIexQBySoXFe6d FqCouLLqJ+KUvA4m/nR+lL9JaJKPGT3ovX5UMQ/S2Lqdpg8mz39e4jzb7968wG0zzp3B eiPjd2Qe4ALZawrnCjgTjAe8gxpVqlQFAuVXl1sHb2GrtBWAgCRR/dzf+Hx9PchGbUhW RLuYYUwJHhhMM4cEPmO5+7qvtDhlyu/gbfN+sg68gaH9jWZf/53LgowfaonoI0y+uHvj Zj0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=ATnOdOSygYdGzkL8M7tYyFx6z7ujwjgOIQ4j81L2J5M=; b=O4f6fbZh+jRHIrL1xuHdYkwue2WSll9cz73fwBnP8jWVY0pbl5/GP/appvJG4vYfj3 EW75Ynl1hmnTOdMveJYJsOx1Oy0yzRHFZmz0xK1G9nNfAmZ8SdEnV17YQPcZ82sCwTYn ukxDvMQwXSqveAJx0zNiuC9NyqboxfPPCsqNGOUqnQ7sPb+GPXYktOg5EBHfSDaOdLBs VuDWZx77CWBZNdenowY0ndfglKRf1uEnr3Lf4N74r4wfsbKM064TBZVp7hzyZEZWA79V 1nxUAlqL4HtTK2ZAw5WBGyURSZ48IgXRFo8yqgtCD1oOkwDJ8qsmL7LE063/82aHcV6e Ye7Q== X-Gm-Message-State: AOAM5304zgsl6LWiGr8g5MRB5P6/1zfV8n3KB9X6DiDSt8BAIsnrZNvH BDi3MdWM/P3UfFCs1czrdHU= X-Google-Smtp-Source: ABdhPJzBGnyF4lHpPw25PyxJIMSfq+LkXzhak+wzfn7jPZ4f/W8B2wdaJeK9G3s6tv+26eeuYozRFg== X-Received: by 2002:a05:6512:2607:b0:477:96ea:d387 with SMTP id bt7-20020a056512260700b0047796ead387mr10773156lfb.79.1653137790039; Sat, 21 May 2022 05:56:30 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id d18-20020a05651233d200b00477ce8cf243sm229392lfg.55.2022.05.21.05.56.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 May 2022 05:56:29 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 21 May 2022 15:56:28 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Fabian Hahn , laurynasl@uber.com Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc 0/3] Windows support Message-ID: <20220521125628.dqwgp3p6m6n76jdl@mtpad.i.jakstys.lt> References: <20220520150232.15515-1-fabian@hahn.graphics> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20220520150232.15515-1-fabian@hahn.graphics> Hi Fabian, On Fri, May 20, 2022 at 04:02:29PM +0100, Fabian Hahn wrote: > Hello there, > > First of all, thank you for this great project! I was always intrigued > by zig's C/C++ compilation abilities but wasn't too keen on adopting it > as a build system. Being able to use zig as a bazel toolchain using this > project is incredible and exactly the way I always wanted to use zig. > > My intended use case for bazel-zig-cc was to enable cross compilation > between the two supported platforms Linux and Windows in my project [1]. > To this end, I started looking into extending bazel-zig-cc with Windows > support both as a host and target system. Happy to see you are finding it useful! > The attached three commits in > made this work and successfully allowed me to cross compile all of my > cc_binary targets between Linux and Windows using zig cc. That said, > they do not actually depend on each other and can be used individually. > I hope others might find them useful, too, and would like to ask you to > consider accepting them into the mainline of the project. > > [1] https://github.com/FabianHahn/shoveler I don't mind Windows support, as long as there is somebody to test and maintain it. Once we land this, that will be you. :) Since none of the bazel-zig-cc contributors are using Windows for development, we don't have means to test if we did not break something. So, until we can have a Windows CI, you will be on the hook to test it with new bazel-zig-cc releases. And until we are no sr.ht, there is no chance we will have Windows CI. Unless it can be run under Wine? Do you have appetite to try? Now regarding your patches: > Fabian Hahn (3): > added windows host support > added support for Windows targets The above look reasonable. > added platform constraint setting for selecting if zig cc is used I am not sure about this. Laurynai, can you have a peek if this can't be expressed via a platform instead? This setting doesn't look right from a quick glimpse. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=uber.com header.i=@uber.com Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) by mail-b.sr.ht (Postfix) with ESMTPS id AD5A411EE06 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 23 May 2022 16:06:28 +0000 (UTC) Received: by mail-yb1-f175.google.com with SMTP id v71so26240013ybi.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 23 May 2022 09:06:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uber.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5vtryZ6xaAJdMUCozGtUCc3J9VCuSysaLwvwFMqlEug=; b=NdYXjznI4y4wNjdv7b9l1wJujrRws7AVo9zNnavycg1xTwr8YVe2caSr6lSVfgWZ6g hbo/2N8V0ZoONyQpqTA5kR7HzEdbKouR6l3D1ThcyAOE7biknV7UgMR9FeBZvTOq72Vq lulqAIxgBxfXviIUQJYgtZFKjcAijbfe21+4I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5vtryZ6xaAJdMUCozGtUCc3J9VCuSysaLwvwFMqlEug=; b=2AFI/XV2Xgs7xAPhm0Nk4ixV7LLyb4OMqRyAhHuqQvmB8p07KtepT6mRN9ZLutFrfi OvnXMYRybbqKgGHzPUyraf+xvICbBN8aZ0zxHcRCb7R2h6ZTxZfv641vHR7TSHq+Jx9L 9cR23dJvrLZ24GwMRBFux/DASu71glsuekMhBuAC8qJSxztfzjRKKNQfJdID+LZXjVdF deI2XB7vdqKgZLRyAj/TiTqVTIGQQc0Y77RxDplWiYBFxMUVjprk6CXN9GQ+YhrpQl1w iObxaRpdXRw1aQ7curgU+LMfy+uQvpgtXWMdd2RyeWOspRyh1lhK9ldj+fTTOta5syoS wdrg== X-Gm-Message-State: AOAM533x2XFDW2TgMjI3pASV2wae0EINry54Brea38F8O4U17wpN+wLb 4pNPZcir8aBwK/NLzhszeNJ0eA3u56uUiIELnE59WS3zFDc8XbRbdd70zaeaqb9bW32/zeuEj9p IB13sYC/LG9x6CiGUJBNO4FMEgT8l8AiYVUPszZCOJ1J71wtVeq9j/vuw4c4pqL7UYHUU8MSq7Q TlRNjga1tnXhj/AI5teUZeig0JfY8Q9SylomBR98BKsU1b9ezpUQ910mo= X-Google-Smtp-Source: ABdhPJx7y7w0s+5ARFWmVIuDSzpv783GnlOYcMmKzID70ZNnxhwz9p3eqGCBS2RCJTzA3YR5CgpMBF+W9iK5Y+071eg= X-Received: by 2002:a25:3891:0:b0:64d:68b1:c455 with SMTP id f139-20020a253891000000b0064d68b1c455mr21792810yba.400.1653321987747; Mon, 23 May 2022 09:06:27 -0700 (PDT) MIME-Version: 1.0 References: <20220520150232.15515-1-fabian@hahn.graphics> <20220520150232.15515-4-fabian@hahn.graphics> In-Reply-To: <20220520150232.15515-4-fabian@hahn.graphics> From: Laurynas Lubys Date: Mon, 23 May 2022 19:06:16 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 3/3] added platform constraint setting for selecting if zig cc is used To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi Fabian, While I see your use case, I think the solution you outlined is a bit too invasive for the problem you raised. I would prefer bazel-zig-cc to only deal with terms related to zig-cc and not other compilers. Here's how you could solve this bit without changes in bazel-zig-cc: 1. Define the `constraint_value`s in your project 2. Define a custom platform (e.g. windows_msvc and windows_zig), specifying the bazel-zig-cc platform in the `parents` field and adding the `constraint_values` from step 1 accordingly. 3. Use your custom platforms instead of the ones from bazel-zig-cc directly. Cheers, Laurynas On Fri, May 20, 2022 at 6:03 PM Fabian Hahn wrote: > > --- > This commit adds a constraint_setting that can be used to select() > between builds with and without zig cc. The reason I added this is > because I found that selecting on @bazel_tools//platforms:windows is not > enough for Windows builds since that constraint value alone will match > both native builds using the MSVC compiler as well as builds using zig > cc. The problem arises when passing custom compiler on linker flags that > differ in syntax between MSVC and zig's clang format. For example, to > link the gdi32 system library on Windows MSVC expects the argument > "-DEFAULTLIB:gdi32.lib". However, with zig cc this needs to be "-lgdi32" > instead. Having the additional constraint setting for the bazel-zig-cc > platforms allows you to define more specific config settings such as: > > config_setting( > name = "windows", > constraint_values = [ > "@bazel_tools//platforms:windows", > "@zig_sdk//platform:zig_cc_disabled", > ], > ) > > config_setting( > name = "windows_zig", > constraint_values = [ > "@bazel_tools//platforms:windows", > "@zig_sdk//platform:zig_cc_enabled", > ], > ) > > This can then be used to switch between linker options as follows: > cc_binary( > # [...] > linkopts = select({ > ":windows": ["-DEFAULTLIB:gdi32.lib"], > ":windows_zig": ["-lgdi32"], > }), > ) > > toolchain/platform/BUILD | 15 +++++++++++++++ > toolchain/platform/defs.bzl | 1 + > 2 files changed, 16 insertions(+) > > diff --git a/toolchain/platform/BUILD b/toolchain/platform/BUILD > index f43b852..807ac3c 100644 > --- a/toolchain/platform/BUILD > +++ b/toolchain/platform/BUILD > @@ -4,4 +4,19 @@ package( > default_visibility = ["//visibility:public"], > ) > > +constraint_setting( > + name = "using_zig_cc", > + default_constraint_value = "zig_cc_disabled", > +) > + > +constraint_value( > + name = "zig_cc_disabled", > + constraint_setting = "using_zig_cc", > +) > + > +constraint_value( > + name = "zig_cc_enabled", > + constraint_setting = "using_zig_cc", > +) > + > declare_platforms() > diff --git a/toolchain/platform/defs.bzl b/toolchain/platform/defs.bzl > index 07e69a6..05c0744 100644 > --- a/toolchain/platform/defs.bzl > +++ b/toolchain/platform/defs.bzl > @@ -32,6 +32,7 @@ def declare_platform(gocpu, zigcpu, bzlos, os, suffix = "", extra_constraints = > constraint_values = [ > "@platforms//os:{}".format(bzlos), > "@platforms//cpu:{}".format(zigcpu), > + "@zig_sdk//platform:zig_cc_enabled", > ] + extra_constraints > > native.platform( > -- > 2.17.1 > From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id C52A811F09B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 23 May 2022 19:25:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653333912; bh=lTpCQBPmFHy+ZrUZuVb8dj7xFPM6sEfKSthpoDrfgVM=; h=From:To:Cc:Subject:In-Reply-To:References; b=aPSMQDR/e7O9D5SlGFAdEeaTCPXjrUbPUIQMqsqHaQAiuKCLnyxLcVZJ6R6Q9zjO7 Zh54WL+w7V//Smv/UzmfSq1B/Mp8IUR7zaqgJVVU0EYWFmrweobFCmdt9SPbbJOKoG 8/s6VxrJwvwOnfCcKN532EfRkh88OWOyVPk6KDuA= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 23 May 2022 20:25:05 +0100 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: laurynasl@uber.com, ~motiejus/bazel-zig-cc@lists.sr.ht, =?UTF-8?Q?Mot?= =?UTF-8?Q?iejus_Jak=C5=A1tys?= Subject: Re: [PATCH bazel-zig-cc 0/3] Windows support In-Reply-To: <20220521125628.dqwgp3p6m6n76jdl@mtpad.i.jakstys.lt> References: <20220520150232.15515-1-fabian@hahn.graphics> <20220521125628.dqwgp3p6m6n76jdl@mtpad.i.jakstys.lt> Message-ID: <4f67edd521daf91a7230b16e69275175@hahn.graphics> X-Sender: fabian@hahn.graphics Hi Motiejus, On 2022-05-21 13:56, Motiejus Jakštys wrote: > I don't mind Windows support, as long as there is somebody to > test and maintain it. Once we land this, that will be you. :) > > Since none of the bazel-zig-cc contributors are using Windows for > development, we don't have means to test if we did not break something. > So, until we can have a Windows CI, you will be on the hook to test it > with new bazel-zig-cc releases. I'm happy to try doing this. I'm definitely interested in keeping my own project up to date with new releases of the rules too, which should provide some implicit coverage. > And until we are no sr.ht, there is no chance we will have Windows CI. > Unless it can be run under Wine? Do you have appetite to try? I will look into this. I'm pretty confident that the Windows target support (second patch) can be covered by wine testing. I'm more sceptical about Windows host support, since you'd have to run Windows bazel itself under Wine which I'm not sure is supported and might not work. > I am not sure about this. Laurynai, can you have a peek if this can't > be > expressed via a platform instead? This setting doesn't look right from > a > quick glimpse. I'll look into Laurynai's suggestion of using a custom platform for this. I'm by no means a bazel expert so this patch was the best I could get working, and I'm very happy to try a better solution if there is one. I'll submit a second version of the patch set once I've done this. There is also a linter failure that I'm going to address. Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 8C2C111F09B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 23 May 2022 19:28:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653334112; bh=mFg1KSkQZ/dKgcivF4eqbD1A5iBLIQCRG7Lzu21191I=; h=From:To:Cc:Subject:In-Reply-To:References; b=Du4GKYLAgXGhf6hRDpe6kbgXMqLrT+hd/jakz1gq4lWpGTdCfXn72xEJ97dIrVl7W cWP5MM8U1odYTK1pXrI9ZkRn5LTXmTJAlkLpDNmNB36Elj/V1pd2rQk8R9A++zH24c s0VanF4JWRkc4vqaLObZe4g74ygSiJO1LkANDdZY= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 23 May 2022 20:28:32 +0100 From: fabian@hahn.graphics To: Laurynas Lubys Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc 3/3] added platform constraint setting for selecting if zig cc is used In-Reply-To: References: <20220520150232.15515-1-fabian@hahn.graphics> <20220520150232.15515-4-fabian@hahn.graphics> Message-ID: <17e9d6378e74647834146edf5ca400c8@hahn.graphics> X-Sender: fabian@hahn.graphics Hi Laurynas, On 2022-05-23 17:06, Laurynas Lubys wrote: > Here's how you could solve this bit without changes in bazel-zig-cc: > 1. Define the `constraint_value`s in your project > 2. Define a custom platform (e.g. windows_msvc and windows_zig), > specifying the bazel-zig-cc platform in the `parents` field and adding > the `constraint_values` from step 1 accordingly. > 3. Use your custom platforms instead of the ones from bazel-zig-cc > directly. Thanks a lot for the pointers, I didn't realize that defining a custom platform could help here. I'll try this. Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by mail-b.sr.ht (Postfix) with ESMTPS id AEECB11EF44 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 24 May 2022 07:54:41 +0000 (UTC) Received: by mail-pl1-f174.google.com with SMTP id n18so15197451plg.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 24 May 2022 00:54:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=u9URII2FSPSfQdXcqCVRfJ9UATexSKFU4WWZGQOrURU=; b=GVmGMeUlvUqru+iomkPHxo5celoyu4+SfLM5BilzySyJrd+ECWceb2PDB0FzxGng3Q cz1/n2ITO3gpRy9Spe68yEnCDsEC11dIBRZMFEWkZJdbry9jYC253mXF6aGaBgPkPgB9 LxfrG8DM/E5yntkovS6sbt7P1WA3ILfO4p0rTj5AtI2ZzaIF2BX/wwUzSCMJOiA6DoMX Uj7VRhH+l3VT/UzY7nxLTdmDlhjjWigxAwFdNpRdCm/wVmvSue+LVYnzzbqBactlxoH2 cREplS4u8hzs43acQLFn9eJ0Kp3si49xcRFQR/M57ucvNyk122N85fakwqDYgYT0BI9v Z4tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=u9URII2FSPSfQdXcqCVRfJ9UATexSKFU4WWZGQOrURU=; b=7sA41G17p81NhXyVaTC8yUKznPinSP2/SXUb/fQ6matlEUL1+O4UBKUN+E8I67Nund NEnCCmHP80A95nDo6kCRMJQ62boYXhbf9BgpTvRvchE6FHGPVrlMsz/YwXwzzUcBro2C w+HWOGafeRom7LhpPp3ace1P4B+p6gZvWVK4Pf/ibAEQxWq3RiTiYlCyyAGhTOa9+I2A G/4MBhu3lBy+ARkPFqurQOuJealxiqYMVc96CWMbaqFGtYVybq47zgHd1QTD0mck3dR4 g5+F6MPjCeg8SYhxVK4f42TkchaHkY2dEOcOX7ij03O0FV+ty6wnSzWVz+vLWr5o4Y1t it1g== X-Gm-Message-State: AOAM531qrFJclaGtXWrAQNR7zkRSaoTHg1kbGvxJ8BCEitE+tMi4zpjt giBuxWI1LdhBdmb4jlEOMgg= X-Google-Smtp-Source: ABdhPJzznTq6anEeeDNHGYXk190BspOLx8ffO69B1QyHnec3aW1WsE/sqdtTmyHGsYY19ikjSxe/gg== X-Received: by 2002:a17:90a:e7d2:b0:1e0:237:d3fe with SMTP id kb18-20020a17090ae7d200b001e00237d3femr3439782pjb.50.1653378879363; Tue, 24 May 2022 00:54:39 -0700 (PDT) Received: from localhost (88-119-96-125.static.zebra.lt. [88.119.96.125]) by smtp.gmail.com with ESMTPSA id b6-20020a170902a9c600b001624dab05edsm429711plr.8.2022.05.24.00.54.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 May 2022 00:54:38 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 24 May 2022 10:54:34 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: fabian@hahn.graphics Cc: laurynasl@uber.com, ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc 0/3] Windows support Message-ID: <20220524075434.wsgc4xy3u5gw4qpc@mtpad.i.jakstys.lt> References: <20220520150232.15515-1-fabian@hahn.graphics> <20220521125628.dqwgp3p6m6n76jdl@mtpad.i.jakstys.lt> <4f67edd521daf91a7230b16e69275175@hahn.graphics> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4f67edd521daf91a7230b16e69275175@hahn.graphics> On Mon, May 23, 2022 at 08:25:05PM +0100, fabian@hahn.graphics wrote: > Hi Motiejus, > > On 2022-05-21 13:56, Motiejus Jakštys wrote: > > And until we are no sr.ht, there is no chance we will have Windows CI. > > Unless it can be run under Wine? Do you have appetite to try? > > I will look into this. I'm pretty confident that the Windows target > support (second patch) can be covered by wine testing. I'm more sceptical > about Windows host support, since you'd have to run Windows bazel itself > under Wine which I'm not sure is supported and might not work. Out of curiosity I applied your patches, downloaded bazelisk.exe, and tried to run it via wine, to be greeted with: $ wine ./bin/bazelisk.exe query ... ERROR: SymlinkDirectories(C:/users/motiejus/_bazel_motiejus/install/5f8090d9a86a5bdc9afbbd92e4f1b167, c:\users\motiejus\_bazel_motiejus\n3lawf4n\install): CreateJunction: FATAL: failed to create installation symlink 'c:\users\motiejus\_bazel_motiejus\n3lawf4n\install': success ... And no obvious suggestions from my favorite search engine. At least we tried. :) Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id ED42B11F0BD; Wed, 25 May 2022 01:41:49 +0000 (UTC) From: ~jvolkman Date: Wed, 25 May 2022 01:41:49 +0000 Subject: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin MIME-Version: 1.0 Message-ID: <165344290967.21743.14923213680999840378-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: jeremy@jvolkman.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi, I'm working on a rule set to build Python modules using bazel cc toolchains, and found that with bazel-zig-cc, I'm unable to build native modules on macos. The issue turns out to be differences in handling undefined symbols at link time in linux vs. macos. When building for a linux target, zig ignores undefined symbols, but for macos they generate errors. In the case of Python, native modules never link against libpython. Instead, its symbols are provided when the module is loaded by the cpython interpreter (at least that's my understanding). See some discussion of this at https://github.com/ziglang/zig/issues/8180. This change adds dynamic_library_linkopts to zig_cc_toolchain_config which apply only to the cpp_link_dynamic_library and cpp_link_nodeps_dynamic_library. For darwin targets, I specify the -Wl,-undefined=3Ddynamic_lookup flag. This logic is adapted from bazel's built-in macos toolchain [1]. Thanks! [1] https://cs.github.com/bazelbuild/bazel/blob/ca40a514b8bc609478f769194909dd0be= 0afa1f9/tools/osx/crosstool/cc_toolchain_config.bzl#L1125-L1131 Jeremy Volkman (2): Adds dynamic_library_linkopts to zig_cc_toolchain_config Pass "-Wl,-undefined=3Ddynamic_lookup" for dynamic libraries on darwin. toolchain/private/cc_toolchains.bzl | 2 ++ toolchain/private/defs.bzl | 3 +++ toolchain/zig_toolchain.bzl | 17 ++++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) --=20 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 14A7D11F105; Wed, 25 May 2022 01:41:50 +0000 (UTC) From: ~jvolkman Date: Tue, 24 May 2022 17:14:35 -0700 Subject: [PATCH bazel-zig-cc 1/2] Adds dynamic_library_linkopts to zig_cc_toolchain_config Message-ID: <165344290967.21743.14923213680999840378-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <165344290967.21743.14923213680999840378-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: jeremy@jvolkman.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Jeremy Volkman If specified, the flags in dynamic_library_linkopts are included in cpp_link_dynamic_library and cpp_link_nodeps_dynamic_library actions. --- toolchain/private/cc_toolchains.bzl | 2 ++ toolchain/private/defs.bzl | 3 +++ toolchain/zig_toolchain.bzl | 17 ++++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 64e99f1..3a1e1cb 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -32,6 +32,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): absolute_tool_paths[name] =3D "%s/%s" % (absolute_path, tool_pat= h) =20 linkopts =3D target_config.linkopts + dynamic_library_linkopts =3D target_config.dynamic_library_linkopts copts =3D target_config.copts for s in getattr(target_config, "linker_version_scripts", []): linkopts =3D linkopts + ["-Wl,--version-script,%s/%s" % (absolut= e_path, s)] @@ -45,6 +46,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): cxx_builtin_include_directories =3D cxx_builtin_include_director= ies, copts =3D copts, linkopts =3D linkopts, + dynamic_library_linkopts =3D dynamic_library_linkopts, target_cpu =3D target_config.bazel_target_cpu, target_system_name =3D "unknown", target_libc =3D "unknown", diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6059065..053641c 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -54,6 +54,7 @@ def _target_darwin(gocpu, zigcpu): "libc/include/any-macos-any", ], linkopts =3D [], + dynamic_library_linkopts =3D [], copts =3D [], bazel_target_cpu =3D "darwin", constraint_values =3D [ @@ -84,6 +85,7 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): compiler_extra_includes =3D ["glibc-hacks/glibchack-fcntl.h"] if fcn= tl_hack else [], linker_version_scripts =3D ["glibc-hacks/fcntl.map"] if fcntl_hack e= lse [], linkopts =3D ["-lc++", "-lc++abi"], + dynamic_library_linkopts =3D [], copts =3D [], bazel_target_cpu =3D "k8", constraint_values =3D [ @@ -105,6 +107,7 @@ def _target_linux_musl(gocpu, zigcpu): "libc/include/{}-linux-any".format(zigcpu), ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), linkopts =3D ["-s", "-w"], + dynamic_library_linkopts =3D [], copts =3D ["-D_LIBCPP_HAS_MUSL_LIBC", "-D_LIBCPP_HAS_THREAD_API_PTHR= EAD"], bazel_target_cpu =3D "k8", constraint_values =3D [ diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index aa14ec1..8676471 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -14,6 +14,11 @@ all_link_actions =3D [ ACTION_NAMES.cpp_link_nodeps_dynamic_library, ] =20 +dynamic_library_link_actions =3D [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + compile_and_link_actions =3D [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, @@ -79,15 +84,20 @@ def _zig_cc_toolchain_config_impl(ctx): flag_sets =3D [ flag_set( actions =3D all_link_actions, - flag_groups =3D ([ + flag_groups =3D [ flag_group( flags =3D ["-target", ctx.attr.target] + no_gc_sections + ctx.attr.linkopts, ), - ]), + ], ), - ], + ] + [ + flag_set( + actions =3D dynamic_library_link_actions, + flag_groups =3D [flag_group(flags =3D ctx.attr.dynamic_libra= ry_linkopts)], + ), + ] if ctx.attr.dynamic_library_linkopts else [], ) =20 features =3D [ @@ -119,6 +129,7 @@ zig_cc_toolchain_config =3D rule( attrs =3D { "cxx_builtin_include_directories": attr.string_list(), "linkopts": attr.string_list(), + "dynamic_library_linkopts": attr.string_list(), "copts": attr.string_list(), "tool_paths": attr.string_dict(), "target": attr.string(), --=20 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 3160A11F117; Wed, 25 May 2022 01:41:50 +0000 (UTC) From: ~jvolkman Date: Tue, 24 May 2022 17:17:33 -0700 Subject: [PATCH bazel-zig-cc 2/2] Pass "-Wl,-undefined=dynamic_lookup" for dynamic libraries on darwin. Message-ID: <165344290967.21743.14923213680999840378-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <165344290967.21743.14923213680999840378-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: jeremy@jvolkman.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Jeremy Volkman This linker flag causes undefined symbols to be ignored, which is the default behavior on linux but not macos. This is required when building shared libraries to use as e.g. Python modules. This also matches what Bazel's built-in macos cc toolchain does. --- toolchain/private/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 053641c..42aaaeb 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -54,7 +54,7 @@ def _target_darwin(gocpu, zigcpu): "libc/include/any-macos-any", ], linkopts = [], - dynamic_library_linkopts = [], + dynamic_library_linkopts = ["-Wl,-undefined=dynamic_lookup"], copts = [], bazel_target_cpu = "darwin", constraint_values = [ -- 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=uve8fTCVpt6Gdf7uz7dBrgAhQF80SbAq3lissg6dG5s=; c=simple/simple; d=sr.ht; h=Date:Subject:To:Cc:From:In-Reply-To; q=dns/txt; s=srht; t=1653443104; v=1; b=cpLSLwkb+0IZpY2maPGAimHdV25W4rn/HTM4gezdDhYy6Nz7vadHsTrn9mV8JAVcwYwz8ldt aqaqClVgWHoYO0y1zYPX0li98UJhUOXHG/7kaW1N13umGN39hYYSedf4AFnsO7a8IqtyGF2FmYP roDtGyAxo5VKvOxEMGlfm/FJQh+7jsz8TmDDpE++0WCcLSnE9PJxgmZXCoCj52p7n7c7G//nnG4 hxIdUr3cSsY3MH4T3mJqRq+9pt9CS1bd4KxxIMaLwkaYuREt/GBSA6Jk91wXI+aDisIa7FHuRdb Fd0XbdUmqapSf27k+cOtoQ75iAxy+pbLmsTHDVR6e6r2A== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 5939611F028; Wed, 25 May 2022 01:45:04 +0000 (UTC) MIME-Version: 1.0 Date: Wed, 25 May 2022 01:45:04 +0000 Subject: [bazel-zig-cc/patches/.build.yml] build failed To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <165344290967.21743.14923213680999840378-2@git.sr.ht> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 3m12s [Ignore undefined symbols when building dynamic libraries on darwin][0] fro= m [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/32501 [1]: mailto:jeremy@jvolkman.com =E2=9C=97 #765889 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/765889 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by mail-b.sr.ht (Postfix) with ESMTPS id 21B9D11EF1E for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 25 May 2022 02:50:15 +0000 (UTC) Received: by mail-lj1-f179.google.com with SMTP id 1so9638526ljh.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 24 May 2022 19:50:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=M6ImvImR96Ds5NBcNS9eiuyRYKVOS/7aVSKKI29NR2k=; b=Ss+a+fbmnRGRan6UWhJmEEi491HAFVW++yLowAvSp+eAwe3G1kYbLYatI15eFhRlBO 6MYVXA+DWC6ou5hN9zvcpKHefSTVSFf9gtk5CGY4UCNc4Pm970snnLoeTKhLfbZtiFvu Xa02mFESqtfYQe1d/CDjyUmFRjq+IEhfjfzlWtCLTG6onEgNleUJXoPag6e5CErgbVn3 apY/8HCyqI8Rcd0fdZI2D12XC8/SuSTM5aP/pvQWdTd8QvltAU65k2hESiYwoQEeB8cJ lwhXu80vBGp9c2gBXWp2v3YmXodZ4A2fsSLl/pDyO/zhpoDix2fgj77eCPGkMfdwsYAT Cqcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=M6ImvImR96Ds5NBcNS9eiuyRYKVOS/7aVSKKI29NR2k=; b=RP9MVCeiAkzUgW+8Cx2N4l9TRDds9LhofDJu/0WTITMnQXt51ZOz+Us9215G5Hs5gG CUt08JvSW6P0c2H/mz5NH+h4ijw2NiswaxQ3myLwM6ycABNZKQ5bXn3+O13aswlS8GgN Xvp7VNxhzqL49BIwnHrL2TtKQPNWU9LuvzvdSryJSkUMJdZQ0s8dycHUHhgxDMuaO2ZL hkcIa7Oa+nfT8gyPkbC+PqwL0nqzPnFnFm8LQGDnJjxwMFzbfxM0WppJ2fH9qvlefIAS +idYuVojGS0yTgjJIHvQkxef8AQC9XrLtGMEMUzVKRk95c/mSOru0d0iPE+hMC/LhEcA 57RA== X-Gm-Message-State: AOAM532Z+L4CRVoLiKmG4SaxmYADyqLgxNtxF7ZXutznVL0LMwkXJ8wb VV3iO82XyhcZpaaSOF1YUUM= X-Google-Smtp-Source: ABdhPJz71KGHZwRPQacfdHo5gTaMKr8pG+Z3O/kMM88cxCnX4vzaoF8LIL72Z3QN69US97FTkEykwg== X-Received: by 2002:a2e:b994:0:b0:253:ec28:b0f4 with SMTP id p20-20020a2eb994000000b00253ec28b0f4mr7391013ljp.376.1653447012453; Tue, 24 May 2022 19:50:12 -0700 (PDT) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id o14-20020a05651205ce00b0047255d211c2sm2845912lfo.241.2022.05.24.19.50.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 May 2022 19:50:11 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 25 May 2022 05:50:12 +0300 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: ~jvolkman Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin Message-ID: <20220525025012.jol5rxmt6trw2iph@mtpad.i.jakstys.lt> References: <165344290967.21743.14923213680999840378-0@git.sr.ht> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <165344290967.21743.14923213680999840378-0@git.sr.ht> On Wed, May 25, 2022 at 01:41:49AM +0000, ~jvolkman wrote: > Hi, > > I'm working on a rule set to build Python modules using bazel cc > toolchains, and found that with bazel-zig-cc, I'm unable to build native > modules on macos. The issue turns out to be differences in handling > undefined symbols at link time in linux vs. macos. When building for a > linux target, zig ignores undefined symbols, but for macos they generate > errors. In the case of Python, native modules never link against > libpython. Instead, its symbols are provided when the module is loaded > by the cpython interpreter (at least that's my understanding). > > See some discussion of this at > https://github.com/ziglang/zig/issues/8180. > > This change adds dynamic_library_linkopts to zig_cc_toolchain_config > which apply only to the cpp_link_dynamic_library and > cpp_link_nodeps_dynamic_library. For darwin targets, I specify the > -Wl,-undefined=dynamic_lookup flag. This logic is adapted from bazel's > built-in macos toolchain [1]. > > Thanks! > > [1] > https://cs.github.com/bazelbuild/bazel/blob/ca40a514b8bc609478f769194909dd0be0afa1f9/tools/osx/crosstool/cc_toolchain_config.bzl#L1125-L1131 > > Jeremy Volkman (2): > Adds dynamic_library_linkopts to zig_cc_toolchain_config > Pass "-Wl,-undefined=dynamic_lookup" for dynamic libraries on darwin. Hi Jeremy, looks like the patch broke ELF[1] on x86_64. Thus I did not reach your patch carefully. Please let me know when I should take action. Motiejus [1]: https://builds.sr.ht/~motiejus/job/765889 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 30D7911EF8F for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 29 May 2022 16:35:45 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653842139; bh=3lr/B8kctcohxJulceGXqrAeF0rAo4vvlAUlJjPKfB8=; h=From:To:Cc:Subject; b=RnVyPvVZu72MYYeZl6JCFjkGNW+6rJos0RdIpO3ixufurxys7LLDuIsBPS3s5tKAz z7+bsC4SkJXFcpoQuLwq5R/zkTNNisxASzjNWGtmTW4GW2vid+9y0xwke7NSEFuOeJ js0r565hbuLspbO3qgJ97QtwazB68bNivlVYuMAY= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2 0/3] Windows support Date: Sun, 29 May 2022 17:35:15 +0100 Message-Id: <20220529163518.182119-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Hello, Second version of my patchset adding Windows support to bazel-zig-cc. Changelog compared to v1: - fixed lint failures - dropped patch to add extra platform constraint settings - added patch to add testing for Windows target using wine-binfmt - added README.md entries explaining Windows support I hope it passes CI, but I do not know how to trigger it other than sending you a second patch version. In case of further failures, I will of course look into fixing them. Please let me know if anything looks like it is missing :) Best, Fabian Fabian Hahn (3): added Windows host support added support for Windows targets added Windows target testing .build.yml | 1 + README.md | 25 ++++++++++++- WORKSPACE | 4 +- ci/test | 14 ++++++- test/c/BUILD | 24 +++++++++++- test/c/main_winver.c | 16 ++++++++ toolchain/BUILD.sdk.bazel | 1 + toolchain/defs.bzl | 58 +++++++++++++++++++++++------ toolchain/platform/defs.bzl | 7 +++- toolchain/private/BUILD.sdk.bazel | 1 + toolchain/private/cc_toolchains.bzl | 6 +-- toolchain/private/defs.bzl | 27 +++++++++++++- 12 files changed, 161 insertions(+), 23 deletions(-) create mode 100644 test/c/main_winver.c -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 037A311EFDA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 29 May 2022 16:35:47 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653842139; bh=DRX7i9Ak/QGm9u8e4hlcE65I6CQ3ouVLcq1JhLQrf2s=; h=From:To:Cc:Subject:In-Reply-To:References; b=bhodRaWuU/xYDmHDfUi8bDJ+i/RsjhdZXiDKf9FtQaSvw4vpjsaeRPzsNTSarp5Vb hjgSqJO6WepySqY+jvmjJT6WEfJuAeOhCaRjod7eAJiN5wRZ9XR3K2FXYfa7p1Szmq B8lmHGvzA3fKIiJGKi47j9jHQaGq9N8tarIAH6kg= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2 3/3] added Windows target testing Date: Sun, 29 May 2022 17:35:18 +0100 Message-Id: <20220529163518.182119-4-fabian@hahn.graphics> In-Reply-To: <20220529163518.182119-1-fabian@hahn.graphics> References: <20220529163518.182119-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- .build.yml | 1 + README.md | 10 ++++++++-- WORKSPACE | 4 +++- ci/test | 14 ++++++++++++-- test/c/BUILD | 24 +++++++++++++++++++++++- test/c/main_winver.c | 16 ++++++++++++++++ 6 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 test/c/main_winver.c diff --git a/.build.yml b/.build.yml index 6aeec50..c9cbfa0 100644 --- a/.build.yml +++ b/.build.yml @@ -5,6 +5,7 @@ packages: - qemu-user-static - binfmt-support - moreutils + - wine-binfmt sources: - https://git.sr.ht/~motiejus/bazel-zig-cc environment: diff --git a/README.md b/README.md index e6fd5e2..7a86ced 100644 --- a/README.md +++ b/README.md @@ -401,8 +401,9 @@ This repository is used on the following (host) platforms: - `windows_amd64`, a.k.a. `x64`. The tests are running (CId) on linux-amd64, and are assuming the kernel is -configured to run arm64 binaries. There are two reasonably convenient ways to -configure arm64 emulation: +configured to run `linux_arm64` and `windows_amd64` binaries. + +There are two reasonably convenient ways to configure `linux_arm64` emulation: 1. Install and configure [`binfmt_misc`][binfmt_misc]: ``` @@ -414,6 +415,11 @@ configure arm64 emulation: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes ``` +In order to install and configure `windows_amd64` emulation: +``` +apt install wine-binfmt +``` + ## Transient docker environment A standalone Docker environment to play with bazel-zig-cc: diff --git a/WORKSPACE b/WORKSPACE index eff4a8f..c1b3c0f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -51,11 +51,13 @@ zig_toolchains() register_toolchains( # if no `--platform` is specified, these toolchains will be used for - # (linux,darwin)x(amd64,arm64) + # (linux,darwin,windows)x(amd64,arm64) "@zig_sdk//toolchain:linux_amd64_gnu.2.19", "@zig_sdk//toolchain:linux_arm64_gnu.2.28", "@zig_sdk//toolchain:darwin_amd64", "@zig_sdk//toolchain:darwin_arm64", + "@zig_sdk//toolchain:windows_amd64", + "@zig_sdk//toolchain:windows_arm64", # amd64 toolchains for libc-aware platforms: "@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.19", diff --git a/ci/test b/ci/test index debdc0b..1ba6285 100755 --- a/ci/test +++ b/ci/test @@ -1,3 +1,13 @@ -#!/bin/sh +#!/bin/bash +set -euo pipefail -exec bazel test ... +bazel test ... + +# Windows tests +# Unfortunately wine-binfmt breaks within the bazel sandbox, so we disable it +# to run this test. +bazel test //test/c:winver_windows_amd64 \ + --spawn_strategy=standalone +# There is no no easy way to run windows_arm64 binaries on Linux, so we just +# cross compile one for testing. +bazel build //test/c:winver_windows_arm64 diff --git a/test/c/BUILD b/test/c/BUILD index 99e36c4..698c798 100644 --- a/test/c/BUILD +++ b/test/c/BUILD @@ -1,4 +1,4 @@ -load("@bazel-zig-cc//rules:platform.bzl", "platform_binary") +load("@bazel-zig-cc//rules:platform.bzl", "platform_binary", "platform_test") cc_binary( name = "which_libc", @@ -34,3 +34,25 @@ cc_binary( ("linux_arm64", "//platform:linux_arm64", "glibc_2.28"), ] ] + +cc_binary( + name = "winver", + srcs = ["main_winver.c"], + target_compatible_with = [ + "@platforms//os:windows", + ], +) + +platform_test( + name = "winver_windows_amd64", + src = "winver", + platform = "//platform:windows_amd64", + tags = ["manual"], +) + +platform_binary( + name = "winver_windows_arm64", + src = "winver", + platform = "//platform:windows_arm64", + tags = ["manual"], +) diff --git a/test/c/main_winver.c b/test/c/main_winver.c new file mode 100644 index 0000000..b5302af --- /dev/null +++ b/test/c/main_winver.c @@ -0,0 +1,16 @@ +#include +#include + +int main() { + DWORD version = GetVersion(); + DWORD majorVersion = (DWORD)(LOBYTE(LOWORD(version))); + DWORD minorVersion = (DWORD)(HIBYTE(LOWORD(version))); + + DWORD build = 0; + if (version < 0x80000000) { + build = (DWORD)(HIWORD(version)); + } + + printf("Running Windows version %d.%d (%d).\n", majorVersion, minorVersion, build); + return 0; +} -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id BFE6D11EFCE for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 29 May 2022 16:35:47 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653842139; bh=tvaGuRzASGGiRRWTMcTMnnGQ3oGSDo1KfvGZLm3bx7U=; h=From:To:Cc:Subject:In-Reply-To:References; b=FF3KNoDO304ASBliu5lnL3qb3EVE14uIhSxW6TkJv18XRW1pIwfdA54hXQU+wlnJD XFXyabVgPEZ2Zly3B/fcxXnDdZ9DXXt/M40f9zQx+sdoS8+Cd+Y98sJUdCptoz1pbY dJ3C1QWXhvSIh+psgQNKN8VZDDf/lXBE02PYTvdw= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2 1/3] added Windows host support Date: Sun, 29 May 2022 17:35:16 +0100 Message-Id: <20220529163518.182119-2-fabian@hahn.graphics> In-Reply-To: <20220529163518.182119-1-fabian@hahn.graphics> References: <20220529163518.182119-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- README.md | 1 + toolchain/BUILD.sdk.bazel | 1 + toolchain/defs.bzl | 58 +++++++++++++++++++++++------ toolchain/private/BUILD.sdk.bazel | 1 + toolchain/private/cc_toolchains.bzl | 6 +-- toolchain/private/defs.bzl | 8 +++- 6 files changed, 59 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index bbbd5bc..b092ae0 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ This repository is used on the following (host) platforms: - `linux_arm64`, a.k.a. `AArch64`. - `darwin_amd64`, the 64-bit post-PowerPC models. - `darwin_arm64`, the M1. +- `windows_amd64`, a.k.a. `x64`. The tests are running (CId) on linux-amd64, and are assuming the kernel is configured to run arm64 binaries. There are two reasonably convenient ways to diff --git a/toolchain/BUILD.sdk.bazel b/toolchain/BUILD.sdk.bazel index ada3e5d..e1505b1 100644 --- a/toolchain/BUILD.sdk.bazel +++ b/toolchain/BUILD.sdk.bazel @@ -7,6 +7,7 @@ package( declare_files( + os = {os}, zig_include_root = {zig_include_root}, ) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 9ab4e88..df2441d 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,6 +1,6 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "use_netrc") -load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "ZIG_TOOL_PATH", "target_structs") +load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "target_structs", "zig_tool_path") _fcntl_map = """ GLIBC_2.2.5 { @@ -16,21 +16,21 @@ __asm__(".symver fcntl64, fcntl@GLIBC_2.2.5"); """ # Official recommended version. Should use this when we have a usable release. -URL_FORMAT_RELEASE = "https://ziglang.org/download/{version}/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_RELEASE = "https://ziglang.org/download/{version}/zig-{host_platform}-{version}.{ext}" # Caution: nightly releases are purged from ziglang.org after ~90 days. A real # solution would be to allow the downstream project specify their own mirrors. # This is explained in # https://sr.ht/~motiejus/bazel-zig-cc/#alternative-download-urls and is # awaiting my attention or your contribution. -URL_FORMAT_NIGHTLY = "https://ziglang.org/builds/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_NIGHTLY = "https://ziglang.org/builds/zig-{host_platform}-{version}.{ext}" # Author's mirror that doesn't purge the nightlies so aggressively. I will be # cleaning those up manually only after the artifacts are not in use for many # months in bazel-zig-cc. dl.jakstys.lt is a small x86_64 server with an NVMe # drive sitting in my home closet on a 1GB/s symmetric residential connection, # which, as of writing, has been quite reliable. -URL_FORMAT_JAKSTYS = "https://dl.jakstys.lt/zig/zig-{host_platform}-{version}.tar.xz" +URL_FORMAT_JAKSTYS = "https://dl.jakstys.lt/zig/zig-{host_platform}-{version}.{ext}" _VERSION = "0.10.0-dev.2252+a4369918b" @@ -39,12 +39,22 @@ _HOST_PLATFORM_SHA256 = { "linux-x86_64": "1d3c3769eba85a4334c93a3cfa35ad0ef914dd8cf9fd502802004c6908f5370c", "macos-aarch64": "ab46e7499e5bd7b6d6ff2ac331e1a4aa875a01b270dc40306bc29dbaf216fccf", "macos-x86_64": "fb213f996bcab805839e401292c42a92b63cd97deb1631e31bd61f534b7f6b1c", + "windows-x86_64": "14e43a64026512161f3d6201d8972a28f0508da2782c16e980f2ffa3bb7e6720", +} + +_HOST_PLATFORM_EXT = { + "linux-aarch64": "tar.xz", + "linux-x86_64": "tar.xz", + "macos-aarch64": "tar.xz", + "macos-x86_64": "tar.xz", + "windows-x86_64": "zip", } def toolchains( version = _VERSION, url_formats = [URL_FORMAT_NIGHTLY, URL_FORMAT_JAKSTYS], - host_platform_sha256 = _HOST_PLATFORM_SHA256): + host_platform_sha256 = _HOST_PLATFORM_SHA256, + host_platform_ext = _HOST_PLATFORM_EXT): """ Download zig toolchain and declare bazel toolchains. The platforms are not registered automatically, that should be done by @@ -56,11 +66,13 @@ def toolchains( version = version, url_formats = url_formats, host_platform_sha256 = host_platform_sha256, + host_platform_ext = host_platform_ext, host_platform_include_root = { "linux-aarch64": "lib/zig/", "linux-x86_64": "lib/", "macos-aarch64": "lib/zig/", "macos-x86_64": "lib/zig/", + "windows-x86_64": "lib/", }, ) @@ -81,6 +93,10 @@ export ZIG_GLOBAL_CACHE_DIR=$ZIG_LOCAL_CACHE_DIR exec "{zig}" "{zig_tool}" "$@" """ +ZIG_TOOL_WRAPPER_WINDOWS = """@echo off +"{zig}" "{zig_tool}" %* +""" + _ZIG_TOOLS = [ "c++", "cc", @@ -103,11 +119,16 @@ def _zig_repository_impl(repository_ctx): if os.startswith("mac os"): os = "macos" + if os.startswith("windows"): + os = "windows" + host_platform = "{}-{}".format(os, arch) zig_include_root = repository_ctx.attr.host_platform_include_root[host_platform] zig_sha256 = repository_ctx.attr.host_platform_sha256[host_platform] + zig_ext = repository_ctx.attr.host_platform_ext[host_platform] format_vars = { + "ext": zig_ext, "version": repository_ctx.attr.version, "host_platform": host_platform, } @@ -121,12 +142,19 @@ def _zig_repository_impl(repository_ctx): ) for zig_tool in _ZIG_TOOLS: - repository_ctx.file( - ZIG_TOOL_PATH.format(zig_tool = zig_tool), - ZIG_TOOL_WRAPPER.format( - zig = str(repository_ctx.path("zig")), + zig_tool_wrapper = ZIG_TOOL_WRAPPER.format( + zig = str(repository_ctx.path("zig")), + zig_tool = zig_tool, + ) + if os == "windows": + zig_tool_wrapper = ZIG_TOOL_WRAPPER_WINDOWS.format( + zig = str(repository_ctx.path("zig")).replace("/", "\\") + ".exe", zig_tool = zig_tool, - ), + ) + + repository_ctx.file( + zig_tool_path(os).format(zig_tool = zig_tool), + zig_tool_wrapper, ) repository_ctx.file( @@ -157,6 +185,7 @@ def _zig_repository_impl(repository_ctx): executable = False, substitutions = { "{absolute_path}": _quote(str(repository_ctx.path(""))), + "{os}": _quote(os), "{zig_include_root}": _quote(zig_include_root), }, ) @@ -167,6 +196,7 @@ zig_repository = repository_rule( "host_platform_sha256": attr.string_dict(), "url_formats": attr.string_list(allow_empty = False), "host_platform_include_root": attr.string_dict(), + "host_platform_ext": attr.string_dict(), }, implementation = _zig_repository_impl, ) @@ -175,9 +205,13 @@ def filegroup(name, **kwargs): native.filegroup(name = name, **kwargs) return ":" + name -def declare_files(zig_include_root): +def declare_files(os, zig_include_root): filegroup(name = "empty") - native.exports_files(["zig"], visibility = ["//visibility:public"]) + if os == "windows": + native.exports_files(["zig.exe"], visibility = ["//visibility:public"]) + native.alias(name = "zig", actual = ":zig.exe") + else: + native.exports_files(["zig"], visibility = ["//visibility:public"]) filegroup(name = "lib/std", srcs = native.glob(["lib/std/**"])) lazy_filegroups = {} diff --git a/toolchain/private/BUILD.sdk.bazel b/toolchain/private/BUILD.sdk.bazel index 39a6a93..3e7c23e 100644 --- a/toolchain/private/BUILD.sdk.bazel +++ b/toolchain/private/BUILD.sdk.bazel @@ -1,6 +1,7 @@ load("@bazel-zig-cc//toolchain/private:cc_toolchains.bzl", "declare_cc_toolchains") declare_cc_toolchains( + os = {os}, absolute_path = {absolute_path}, zig_include_root = {zig_include_root}, ) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolchains.bzl index 64e99f1..e6594db 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -1,4 +1,4 @@ -load(":defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "ZIG_TOOL_PATH", "target_structs") +load(":defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "target_structs", "zig_tool_path") load("@bazel-zig-cc//toolchain:zig_toolchain.bzl", "zig_cc_toolchain_config") DEFAULT_TOOL_PATHS = { @@ -11,7 +11,7 @@ DEFAULT_TOOL_PATHS = { "strip": "/usr/bin/false", }.items() -def declare_cc_toolchains(absolute_path, zig_include_root): +def declare_cc_toolchains(os, absolute_path, zig_include_root): for target_config in target_structs(): gotarget = target_config.gotarget zigtarget = target_config.zigtarget @@ -28,7 +28,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): if path[0] == "/": absolute_tool_paths[name] = path continue - tool_path = ZIG_TOOL_PATH.format(zig_tool = path) + tool_path = zig_tool_path(os).format(zig_tool = path) absolute_tool_paths[name] = "%s/%s" % (absolute_path, tool_path) linkopts = target_config.linkopts diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6059065..6804104 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -4,7 +4,7 @@ DEFAULT_INCLUDE_DIRECTORIES = [ "libcxxabi/include", ] -ZIG_TOOL_PATH = "tools/{zig_tool}" +_ZIG_TOOL_PATH = "tools/{zig_tool}" # Zig supports even older glibcs than defined below, but we have tested only # down to 2.17. @@ -30,6 +30,12 @@ _GLIBCS = [ LIBCS = ["musl"] + ["gnu.{}".format(glibc) for glibc in _GLIBCS] +def zig_tool_path(os): + if os == "windows": + return _ZIG_TOOL_PATH + ".bat" + else: + return _ZIG_TOOL_PATH + def target_structs(): ret = [] for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 4AC1111EFC5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 29 May 2022 16:35:48 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1653842139; bh=shT4KHFKEaq2CJ4sf4KM1Z6DfL5toz9ES9J0EV2qlW0=; h=From:To:Cc:Subject:In-Reply-To:References; b=Wi6W5SI4d9ZzEXT6WO62mHVqCT9CiAfIqdx2D8658kTd7w8Yt2qr4Z64v1etaYyZk YCcBTw217N5J/ug4J6AsWuu85pBBe9rBgMaNl57L61MaxH8KU/p0izn7ePdg6liXB6 2aEh8lNIHmjQye0ZtrYmaR2vN3S01X9UWn3sQmc8= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2 2/3] added support for Windows targets Date: Sun, 29 May 2022 17:35:17 +0100 Message-Id: <20220529163518.182119-3-fabian@hahn.graphics> In-Reply-To: <20220529163518.182119-1-fabian@hahn.graphics> References: <20220529163518.182119-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++++++++++++ toolchain/platform/defs.bzl | 7 ++++++- toolchain/private/defs.bzl | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b092ae0..e6fd5e2 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,8 @@ register_toolchains( "@zig_sdk//toolchain:linux_arm64_gnu.2.28", "@zig_sdk//toolchain:darwin_amd64", "@zig_sdk//toolchain:darwin_arm64", + "@zig_sdk//toolchain:windows_amd64", + "@zig_sdk//toolchain:windows_arm64", ) ``` @@ -318,6 +320,18 @@ is currently not implemented. target macos.10 (Catalina), macos.11 (Big Sur) or macos.12 (Monterey). It currently targets the lowest version, without ability to change it. +## Windows: output file extensions + +Bazel won't use common Windows file extensions for built output binaries. +Instead, it will generate binaries with common Unix extensions that you might +have to manually rename before deploying them to an actual Windows system: + +| Binary type | Bazel extension | Windows extension | +|----------------|-----------------|-------------------| +| Static library | .a | .lib | +| Shared library | .so | .dll | +| Executable | (no extension) | .exe | + # Known Issues In Upstream This section lists issues that I've stumbled into when using `zig cc`, and is diff --git a/toolchain/platform/defs.bzl b/toolchain/platform/defs.bzl index cf42191..07e69a6 100644 --- a/toolchain/platform/defs.bzl +++ b/toolchain/platform/defs.bzl @@ -1,11 +1,16 @@ load("@bazel-zig-cc//toolchain/private:defs.bzl", "LIBCS") _CPUS = (("x86_64", "amd64"), ("aarch64", "arm64")) +_OS = { + "linux": ["linux"], + "macos": ["macos", "darwin"], + "windows": ["windows"], +} def declare_platforms(): # create @zig_sdk//{os}_{arch}_platform entries with zig and go conventions for zigcpu, gocpu in _CPUS: - for bzlos, oss in {"linux": ["linux"], "macos": ["macos", "darwin"]}.items(): + for bzlos, oss in _OS.items(): for os in oss: declare_platform(gocpu, zigcpu, bzlos, os) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6804104..2ba61f7 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -40,6 +40,7 @@ def target_structs(): ret = [] for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): ret.append(_target_darwin(gocpu, zigcpu)) + ret.append(_target_windows(gocpu, zigcpu)) ret.append(_target_linux_musl(gocpu, zigcpu)) for glibc in _GLIBCS: ret.append(_target_linux_gnu(gocpu, zigcpu, glibc)) @@ -69,6 +70,24 @@ def _target_darwin(gocpu, zigcpu): tool_paths = {"ld": "ld64.lld"}, ) +def _target_windows(gocpu, zigcpu): + return struct( + gotarget = "windows_{}".format(gocpu), + zigtarget = "{}-windows-gnu".format(zigcpu), + includes = [ + "libunwind/include", + "libc/include/any-windows-any", + ], + linkopts = [], + copts = [], + bazel_target_cpu = "x64_windows", + constraint_values = [ + "@platforms//os:windows", + "@platforms//cpu:{}".format(zigcpu), + ], + tool_paths = {"ld": "ld64.lld"}, + ) + def _target_linux_gnu(gocpu, zigcpu, glibc_version): glibc_suffix = "gnu.{}".format(glibc_version) -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=5nZe6SoH5njYr0DiIik//7O2RdQQvmVMMBKXvF8TMmU=; c=simple/simple; d=sr.ht; h=Date:Subject:To:Cc:From:In-Reply-To; q=dns/txt; s=srht; t=1653843929; v=1; b=OXPzKb9TP2M16GsDGD3093RXX7AcPNyYxKWNMMcCJYv0VvTzTKwx0dhlzjrFkuTljfr0hkq0 QBwIWHuM/TXA7UQa6YJvrvozaFyMyJ20sxsPP20w3YGXtrm3o4txzZVNWb1JsqpFc3rH0Y5ss3d VX6dHzPhRSoWj+SNseJJjWTNqfipZa4WgZ6tQl7XjPTFkql8hGSYtlssyDc9bEvX7M2pMIG10jR G+REG2qGCLYFANEL2HscJTivgz2JU2PII0CzNbSVWnQqzuYwXKHTxrNF7kot/UMiAGSv+l6LqZ1 HG6zKLQmMRyvdefSjH9IKiDOE30hT0XxhUzcBvsrAfs9w== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 3A33311EF8F; Sun, 29 May 2022 17:05:29 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 29 May 2022 17:05:29 +0000 Subject: [bazel-zig-cc/patches/.build.yml] build failed To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <20220529163518.182119-3-fabian@hahn.graphics> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 29m34s [Windows support][0] v2 from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/32601 [1]: mailto:fabian@hahn.graphics =E2=9C=97 #769696 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/769696 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by mail-b.sr.ht (Postfix) with ESMTPS id 7C40811EFC4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 30 May 2022 12:37:58 +0000 (UTC) Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-f2cd424b9cso14148271fac.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 30 May 2022 05:37:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=c9kaxEn5khS5ZUu9L05plIIYjAP/cRIY0U2L/uJNU9s=; b=eT+xGhFVI7OXVj9EXDESyy9NhCBw37dzafrDthILfbfLdoKBYbZF4/SgYfIfSXlDXL Mn7ErZ9VcsqePCIZPfg8lUFrdbRwcp7jkJvmP01Z7JK/0gOIUawcUP4oSi2VQKGLGMxa Jc0jq6N62ZLuRhDP0B2GvSLRO/eRaOlqlg1kVQwGcnW9mWzSTPhNn7JnrvOD9len9/Ng aOBHH9ElRKTMTec0DAbuqHN49lZ5etEhuNLNFYzDLrvrfEwUxBaXdIQB7uG1Dd1gNI2r MN4FnIxDFmCy9voLUK1HSl6PnQkeSsw73NwhSlGPe89deIjBwz+SDZ3mmm7wv6CMGkcu 4HQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=c9kaxEn5khS5ZUu9L05plIIYjAP/cRIY0U2L/uJNU9s=; b=cWtcqEx6XzOdyk7UzX3BB+Lw0sWmmQz5rnztJ0HTOEL8PERDHrShvop8l+RfCvmmfx pXbl0es9HOSoDPAbOGOBp0F5xMQriDvAMqXRgxCsvVnbVoptauoV3GiuEL8t4ZE4augb /TAQxRjP8kImsIrxAj3tu9CoisSKO2dlQi6VVWPFidIM5+hisLXW2ZJpD7t9QREAzM5Y 2mtLNKldnrl8+5NlGpFKeD9jjVdwiuoLL2G/8WpQPq6FoU1D7JIR7ux0im49NLfHG2N7 BX6Y8OlnXQVd/oRK5rzDVieNyKqJ8lSkxWhjx/WHF3BZR/lMeF7M8/X2I3wiA1TjiP+X fmBw== X-Gm-Message-State: AOAM530pMRMnobCAVrBpI/rRXeVHg1e6d7TAu+SFng02De0B4dXfOfh8 bOKAZLr22/ncTxwlFh1a6mCp3xCJhOXimBcoSK1mdpz4aIo= X-Google-Smtp-Source: ABdhPJytiM3jP/NZaZk6e2A+jBV8hM3t6yyEXzKj98SF5eY7zpf/7vi/cceIOLwMzO4C6D0Twm0suGK7iZ2vGiUBQtw= X-Received: by 2002:a05:6870:f5a5:b0:f2:d204:cc3c with SMTP id eh37-20020a056870f5a500b000f2d204cc3cmr10633803oab.35.1653914277843; Mon, 30 May 2022 05:37:57 -0700 (PDT) MIME-Version: 1.0 References: <20220529163518.182119-1-fabian@hahn.graphics> In-Reply-To: <20220529163518.182119-1-fabian@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 30 May 2022 15:37:47 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Sun, May 29, 2022 at 7:35 PM Fabian Hahn wrote: > > Hello, > > Second version of my patchset adding Windows support to bazel-zig-cc. > > Changelog compared to v1: > - fixed lint failures > - dropped patch to add extra platform constraint settings > - added patch to add testing for Windows target using wine-binfmt > - added README.md entries explaining Windows support > > I hope it passes CI, but I do not know how to trigger it other than > sending you a second patch version. In case of further failures, I > will of course look into fixing them. Please let me know if anything > looks like it is missing :) Hi, Fabian, As you may have noticed, the past patchset doesn't pass CI. If you have a Linux machine, the tests are quite easy to execute manually[1]. Otherwise don't worry about sending multiple patch versions; I am happy to ignore the patchsets (and the emails from the CI) until the tests pass. That's what they are there for! You can also use a transient docker environment[2] to isolate yourself from the host OS. Let me know if that works for you. Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/.build.yml [2]: https://git.sr.ht/~motiejus/bazel-zig-cc#transient-docker-environment From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id C570811EEAC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 01:58:18 +0000 (UTC) From: ~jvolkman Date: Wed, 01 Jun 2022 01:58:18 +0000 Subject: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin MIME-Version: 1.0 Message-ID: <165404869855.21942.14779642481390967131-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi, Here's an updated version of this patchset that fixes an operator precedence issue in zig_toolchain.bzl when building flag_sets. //test/gorace:gorace_test was failing before, but now passes. I haven't been able to get the arm64 tests to pass locally. Here's hoping they work too! Jeremy Volkman (2): Adds dynamic_library_linkopts to zig_cc_toolchain_config Pass "-Wl,-undefined=dynamic_lookup" for dynamic libraries on darwin. toolchain/private/cc_toolchains.bzl | 2 ++ toolchain/private/defs.bzl | 3 +++ toolchain/zig_toolchain.bzl | 22 +++++++++++++++++++--- 3 files changed, 24 insertions(+), 3 deletions(-) -- 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id F408D11EF01 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 01:58:18 +0000 (UTC) From: ~jvolkman Date: Tue, 24 May 2022 17:14:35 -0700 Subject: [PATCH bazel-zig-cc 1/2] Adds dynamic_library_linkopts to zig_cc_toolchain_config Message-ID: <165404869855.21942.14779642481390967131-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <165404869855.21942.14779642481390967131-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Jeremy Volkman If specified, the flags in dynamic_library_linkopts are included in cpp_link_dynamic_library and cpp_link_nodeps_dynamic_library actions. --- toolchain/private/cc_toolchains.bzl | 2 ++ toolchain/private/defs.bzl | 3 +++ toolchain/zig_toolchain.bzl | 22 +++++++++++++++++++--- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 64e99f1..3a1e1cb 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -32,6 +32,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): absolute_tool_paths[name] =3D "%s/%s" % (absolute_path, tool_pat= h) =20 linkopts =3D target_config.linkopts + dynamic_library_linkopts =3D target_config.dynamic_library_linkopts copts =3D target_config.copts for s in getattr(target_config, "linker_version_scripts", []): linkopts =3D linkopts + ["-Wl,--version-script,%s/%s" % (absolut= e_path, s)] @@ -45,6 +46,7 @@ def declare_cc_toolchains(absolute_path, zig_include_root): cxx_builtin_include_directories =3D cxx_builtin_include_director= ies, copts =3D copts, linkopts =3D linkopts, + dynamic_library_linkopts =3D dynamic_library_linkopts, target_cpu =3D target_config.bazel_target_cpu, target_system_name =3D "unknown", target_libc =3D "unknown", diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 6059065..053641c 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -54,6 +54,7 @@ def _target_darwin(gocpu, zigcpu): "libc/include/any-macos-any", ], linkopts =3D [], + dynamic_library_linkopts =3D [], copts =3D [], bazel_target_cpu =3D "darwin", constraint_values =3D [ @@ -84,6 +85,7 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): compiler_extra_includes =3D ["glibc-hacks/glibchack-fcntl.h"] if fcn= tl_hack else [], linker_version_scripts =3D ["glibc-hacks/fcntl.map"] if fcntl_hack e= lse [], linkopts =3D ["-lc++", "-lc++abi"], + dynamic_library_linkopts =3D [], copts =3D [], bazel_target_cpu =3D "k8", constraint_values =3D [ @@ -105,6 +107,7 @@ def _target_linux_musl(gocpu, zigcpu): "libc/include/{}-linux-any".format(zigcpu), ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), linkopts =3D ["-s", "-w"], + dynamic_library_linkopts =3D [], copts =3D ["-D_LIBCPP_HAS_MUSL_LIBC", "-D_LIBCPP_HAS_THREAD_API_PTHR= EAD"], bazel_target_cpu =3D "k8", constraint_values =3D [ diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index aa14ec1..f22bc4c 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -14,6 +14,11 @@ all_link_actions =3D [ ACTION_NAMES.cpp_link_nodeps_dynamic_library, ] =20 +dynamic_library_link_actions =3D [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + compile_and_link_actions =3D [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, @@ -73,21 +78,31 @@ def _zig_cc_toolchain_config_impl(ctx): ], ) =20 + if ctx.attr.dynamic_library_linkopts: + dynamic_library_flag_sets =3D [ + flag_set( + actions =3D dynamic_library_link_actions, + flag_groups =3D [flag_group(flags =3D ctx.attr.dynamic_libra= ry_linkopts)], + ), + ] + else: + dynamic_library_flag_sets =3D [] + default_linker_flags =3D feature( name =3D "default_linker_flags", enabled =3D True, flag_sets =3D [ flag_set( actions =3D all_link_actions, - flag_groups =3D ([ + flag_groups =3D [ flag_group( flags =3D ["-target", ctx.attr.target] + no_gc_sections + ctx.attr.linkopts, ), - ]), + ], ), - ], + ] + dynamic_library_flag_sets, ) =20 features =3D [ @@ -119,6 +134,7 @@ zig_cc_toolchain_config =3D rule( attrs =3D { "cxx_builtin_include_directories": attr.string_list(), "linkopts": attr.string_list(), + "dynamic_library_linkopts": attr.string_list(), "copts": attr.string_list(), "tool_paths": attr.string_dict(), "target": attr.string(), --=20 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 1C59911EEAC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 01:58:19 +0000 (UTC) From: ~jvolkman Date: Tue, 24 May 2022 17:17:33 -0700 Subject: [PATCH bazel-zig-cc 2/2] Pass "-Wl,-undefined=dynamic_lookup" for dynamic libraries on darwin. Message-ID: <165404869855.21942.14779642481390967131-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <165404869855.21942.14779642481390967131-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Jeremy Volkman This linker flag causes undefined symbols to be ignored, which is the default behavior on linux but not macos. This is required when building shared libraries to use as e.g. Python modules. This also matches what Bazel's built-in macos cc toolchain does. --- toolchain/private/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 053641c..42aaaeb 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -54,7 +54,7 @@ def _target_darwin(gocpu, zigcpu): "libc/include/any-macos-any", ], linkopts = [], - dynamic_library_linkopts = [], + dynamic_library_linkopts = ["-Wl,-undefined=dynamic_lookup"], copts = [], bazel_target_cpu = "darwin", constraint_values = [ -- 2.34.2 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=ROrH1fl4aXGJDhhg7ecSxnS+aDbQ/KM1o2w4Tc4xcDU=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1654049536; v=1; b=G9xsTIIzrHF9PoYIBvYHxZTNKGD3IUnLiG3ErFS0TzBko6BOSlwFfdVEeNN3OLg3oxuKTFk+ 5orIhabsTCsewC4HzAHwpF4jRcH6EeafODJTJMLC6DY8empAgXM+afq91SwXhVkzWK6Jjnp3rDr EzvtdH/LIt9PydQQo+vs5WXm/dgU/AKxK4iNCFv1FzbmBVYuwGGdhCpn0rHDyO/W5+tekMEMss0 03ISP7EHmrNyQg6PiaXA5wRjzOnRIrMAD8Oldrhn3Qh0013TxPUkT/YzYVbZO9QV/TQb/vMKnN5 BLjZ0bltbf+m3GDjhaoSfRH20AdtpEFo931Zx0xwRNwyw== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id E94AD11EEAC; Wed, 1 Jun 2022 02:12:16 +0000 (UTC) MIME-Version: 1.0 Date: Wed, 01 Jun 2022 02:12:16 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <165404869855.21942.14779642481390967131-2@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 13m55s [Ignore undefined symbols when building dynamic libraries on darwin][0] fro= m [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/32674 [1]: mailto:jeremy@jvolkman.com =E2=9C=93 #771513 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/771513 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by mail-b.sr.ht (Postfix) with ESMTPS id 8750411EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 09:02:18 +0000 (UTC) Received: by mail-oi1-f180.google.com with SMTP id k11so1787872oia.12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 01 Jun 2022 02:02:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WVBKt6nKOhROJQBG791R/QKA4rxCC0/sxfJ8tzBFMQw=; b=zN2PmSeHoXVMoGsCOfUSVeXe9H2tokMaebDGt6CG5zutUSs7l5+/kG9P9plKjCF6C6 mmW6bn+WCfzX59AsyVWZ7rGCp63a8mE16BVlNfWAKL/B6Pi3rO0C294Eyb0ctmsDWB52 FJ4SAKfyN7FOSSsn68nQ9urXbLeNnwo0fNVOieeuqF5hTefCCp7WF2QbI0iAb6hHrEZs u8yRKeR8v+vqtPzLodYJDb/hnGUHZPpDD7t4AlKJig15Fua2v1bV/agqJBp6tllnX6vb cLOpK8r1h7JBU4b8+9nMsGeF5+KlWCxyiWnmNRGAXdEVNySjeylaGVrL+QtROTxFGtMY 9xlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WVBKt6nKOhROJQBG791R/QKA4rxCC0/sxfJ8tzBFMQw=; b=BfI9J3uByh1jmDTGqcIEa5a1NJuGGrgEcUWRnFWTtDzVVVxsf2kP4Dqzyu/GI1LxQg FX5ef1+A9zIyMnoC6K2okZyJ0jMpZxPpbSFBJSkAZrhy9lNimrcFSs1+OecfCE3HTy0n B9it/Yn7yKHC81rBcy9GNnjq5ggTOkC8fYEMh1VAX3107zEf+EBpD43NZqQfI/tcAEM6 epm+btgCAfiDugPfcYW6M3yXjQ4cQgyKIIhWGwm/qwehwnwW8zcDRXzXW6v8JT0rNIFt rby6xAbJoWaIPMYVQnizg0nTYwAC/+uDqZwl750bmwJ4nqk642sK5hvu0SKWbjzPmrUQ h13g== X-Gm-Message-State: AOAM533x71M6Z1X9nsmyUyMMthKZiurThyQ6pYXcGLdvJkbYGzMMkhh8 uT1RFGg9CgXFPpp+iOkhwNzLL9NspYQ3HQWx1FHfwRI29ic= X-Google-Smtp-Source: ABdhPJwK3jxz73xdi701oWU7OHVC3Xp+wc+iXNniSo/ze9tK6TeP6YYVCT2nqfg9oAFRpWLhq7i8aPpNYi1HyqKmhYg= X-Received: by 2002:a05:6808:1527:b0:32e:8d6:d30f with SMTP id u39-20020a056808152700b0032e08d6d30fmr3844407oiw.35.1654074137829; Wed, 01 Jun 2022 02:02:17 -0700 (PDT) MIME-Version: 1.0 References: <165404869855.21942.14779642481390967131-0@git.sr.ht> In-Reply-To: <165404869855.21942.14779642481390967131-0@git.sr.ht> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 1 Jun 2022 12:02:06 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Wed, Jun 1, 2022 at 4:58 AM ~jvolkman wrote: > > Hi, > > Here's an updated version of this patchset that fixes an operator > precedence issue in zig_toolchain.bzl when building flag_sets. > //test/gorace:gorace_test was failing before, but now passes. As I have no idea how this works on Darwin, and we don't use Darwin targets internally yet, my acceptance criteria for Darwin is: - CI passes. - after reading the commit messages it seems like you know what you are doing. Though for next time please add more links where those are discussed. - I trust people on internet by default (in other words, I don't have a reason to not trust you). Applied. > I haven't been able to get the arm64 tests to pass locally. Here's > hoping they work too! I assume you mean linux_arm64. That fails for me too, because it is relying on system's arm64 libc. The real resolution would be to use a hermetic libc, which I haven't gotten around doing yet. But as long as CI passes, we're good. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) by mail-b.sr.ht (Postfix) with ESMTPS id 8EC6211EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 09:10:38 +0000 (UTC) Received: by mail-oi1-f174.google.com with SMTP id s188so1863389oie.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 01 Jun 2022 02:10:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=SYDruTTY8y1MIH2djeXys76g+D0h3n0YFtaTqdy94p0=; b=jyyMYy4HuUsG2Cues1SfIeDKJ3Rhd+VZDBJljapjqPIgVSbRIQTVOOpOgZmjoPVrZG HuJ4sgSmbXE9WYp8K6DQ2v8pXK9x74EeC93W6WTOo21aoZdgGQ/JjJaTcOv/7h+FfGRR ECrc/aRcEmTR3owfLD0prvzIf5rgzCqUC4wdeju/oq8t/1JNDbTZayufN8ZFdyacL4Xl 4zRMZaAC0apEJw82yHqRcsMSFiqxO/ctf6cqIwBzd5oWs9ckoR4BfYvmQvLlVu8trOuO d4PySMJd8sfFj0FaDPtEQpiLDMPa/UAIizjlLFs3nBlroDHyWc/Syv2SuGk3tHx4XXxN nppA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=SYDruTTY8y1MIH2djeXys76g+D0h3n0YFtaTqdy94p0=; b=3KyVRjk21TECUzgt2TeTRwrTFv7CJutrrfhFMcbjBjiYLSE2tf0h+yJw6PaY5Kfk9A PJs6WzC1aOkD3Fyii5IrCgohJ09HvALZCaaqIEikoYrNg+ePhqToi0CS5+M3Yr6nFepv L3cNaSdKQdGD3+pCg6RT3YdzXp4FID/MBll2h3umIeFNCxiGCfgv+EpD1pXxRiercFua bKIiGL62OSYKmx4t1ZU2I/N9iBsKowh9a0iUtUG9VtdWC7oXUePVpx2ABd3QekoedROU 4oE9W641IKCUB8L9Q5L27w74YEfsoTDQpFORarJBqDpiXVgnfdYqqsdletX5kWOAaQrm xLaQ== X-Gm-Message-State: AOAM531ZvlTWjQGpQ2IbCGm9H37tPVQ/sKcdc/RQ5U8b1+L2ARLz1FF8 QpBM7XOXZ/SxUcJUa/zkgpBexYuwYyI5UxJqmBNITAgwTkM= X-Google-Smtp-Source: ABdhPJx9CF9smdMFad3mTie8ZS7qx1apPTPd+Oxde83skYWTEYidXd1oV7vnvNMgGBjr538sl8c/CsTMJC709uDFvQs= X-Received: by 2002:a05:6808:1527:b0:32e:8d6:d30f with SMTP id u39-20020a056808152700b0032e08d6d30fmr3866277oiw.35.1654074637846; Wed, 01 Jun 2022 02:10:37 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 1 Jun 2022 12:10:27 +0300 Message-ID: Subject: bazel-zig-cc v0.7.3 and published Zig Milan talk To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi folks, If you haven't seen, my Zig Milan talk about Zig and Uber was published[1], together with an accompanying blog post[2]. Now to our bazel-zig-cc changelog from v0.7.2 to v0.7.3: # zig sdk: download from zig upstream as well as jakstys.lt This will prefer Zig upstream mirror over my server. This should increase reliability. I hope Bazel will try the secondary mirror when it gets a 404 from Zig's. Time will tell. # Darwin changes by Jeremy Volkman See the thread discussing the patch[3] for more info. Motiejus [1]: https://www.youtube.com/watch?v=SCj2J3HcEfc [2]: https://jakstys.lt/2022/how-uber-uses-zig/ [3]: https://lists.sr.ht/~motiejus/bazel-zig-cc/%3C165404869855.21942.14779642481390967131-0%40git.sr.ht%3E#%3CCAFVMu-qEJGEUdQSpzYegi+3Z8c1iEDagdd8a1Jv2JP-6+pBy8Q@mail.gmail.com%3E From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com [209.85.160.54]) by mail-b.sr.ht (Postfix) with ESMTPS id D569211EEC2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 09:36:42 +0000 (UTC) Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-e93bbb54f9so1922362fac.12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 01 Jun 2022 02:36:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S29EghuRv0xDMDewiWDbsQxoklo64IZhi7BpI4ARk1Q=; b=6UHUA0nUrQU1beG/CFRQLYXIvKac0Q/9T11PcpIqIZN+MuT8v3VsTlFPYanRFVIyMv S6QxEFG59ya+Vxf5yL6RPf+BDf1o+YfF0xJ8FwyerH1MVGol6VtqQEUUukN5bRdns2hj NNgcgQ1LKBFwd4IOVsYJKdoCDS4c0DiQU7KumIAqJqkzIC5LXS76sPBpSPx2Gmgit7Df ES4twf/scRyqf5gTiJZo5L9DwRkUevZVtiiq5PbpBRUOiKXYT10TeebFQxXizvNeCtK+ mg6ScDcElyeT/N3Aq0MdJSp6ubDl0NF3VDzzs+jfnpcLhfbj6CKbttLHn9vMaS7sFTd3 VP7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S29EghuRv0xDMDewiWDbsQxoklo64IZhi7BpI4ARk1Q=; b=UNMGJSsI/6RUHKQpJwhwgVZ9miGFMgDiiNIyUwufbRlRYj6kQy7D9NStCykUSQI0GU udxx48AqQiyKHT70z9EregICJHDRrMqv2z/cZl2VpRn1v4LlLtUGQ3+PZf+KBy/u54X0 uG+iN+ppT9rb4Sr6bmsTINFJ8TaVwRfi5H2s6y8ThjlkeWx1kClUYCaPrd5rS/puWk6r iDyjjv4KWYE1IdrX0Vl+j/WHP76l2umuN6QsA6r4m+aZ9wXQ/LevaDIh1dNQHcUJlMK2 ILjBI+8RJzDpy9Sj6MJUZQwFyURBWH2Vag+9yOgd5vMsXvGT82JCMrU/dy33Ii7Smmk1 9IkA== X-Gm-Message-State: AOAM532ujUtlcKzD/tZlXm2Lbst9yg8ixlSkHPpN/ectBkCX/X8/tJEb h6xkds7kF4Cx4OLggUI9QTjsOlvBCsAeklvnXlY= X-Google-Smtp-Source: ABdhPJxaJ2k2zabWiTQwNUAXB9MUKBuMdG7G9Nlm0plHLyVLDTFaWJ8eauLOQhDO0MKv0SLOBi/nsWprU/vNVighKUo= X-Received: by 2002:a05:6870:f5a5:b0:f2:d204:cc3c with SMTP id eh37-20020a056870f5a500b000f2d204cc3cmr16669592oab.35.1654076202100; Wed, 01 Jun 2022 02:36:42 -0700 (PDT) MIME-Version: 1.0 References: <165404869855.21942.14779642481390967131-0@git.sr.ht> In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 1 Jun 2022 12:36:30 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin To: Jeremy Volkman Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Wed, Jun 1, 2022 at 12:30 PM Jeremy Volkman wrote: > > Hi Motiejus, > > Thanks for accepting. I'm not sure if you saw, but I had submitted this patch a week ago (broken) with more discussion and links in the overview. I forgot to increment the version number, so it wasn't obvious. I had a vague memory of looking into this, but wasn't sure where. Turns out that wasn't that long ago. :) Anyhow, reason I am asking this: I try to apply patches as-is, so all re-posts should be self-contained, as if earlier of them didn't happen, because they are not going to the git history. Let's err on the side of more verbosity than less, always. Thanks, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jvolkman-com.20210112.gappssmtp.com header.i=@jvolkman-com.20210112.gappssmtp.com Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by mail-b.sr.ht (Postfix) with ESMTPS id 9F77E11EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 09:43:03 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id a15so1774509lfb.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 01 Jun 2022 02:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jvolkman-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=jdqcTS1RkXNMnxW573lfZaSsgJzDVJarhUtgCPUUgtU=; b=1cw3UKYJcVvPojTkZrC2bXXd/z8fMimLqhsBMboKks8PwK9utzO9ZF9qL9lFV6clki hemPorZ34+gZkC16P/5jvyzz08Lb4r57sIUZi0+PQIe/QUW6zlZdNn06DfxTHXFAjPwd XmByJIYrupVXYSOIVG/yHzEVT5RtHfnwb4H/MFI3SxG/IycIQVAOI7R1fPxMqZf/ly7n oEPqTxygY+bLJcw2isa8KKS/ph4s03e+aKAD1mgF1nwL1wgoV9qtVuQf1GH3ADDYUkxi EuUSDgS8RD+CMKIgkOR86R7z20dLI7SRvvrGRGjld+JO0R6i3VxcCgvm18nlekQGth2g shpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=jdqcTS1RkXNMnxW573lfZaSsgJzDVJarhUtgCPUUgtU=; b=M4OVYloWiHGECdWwS+ysUFlFsh57/m19UyA3yskiph1re5fvg41UOEKCrFH/NDISF3 ob2OKtOR1kPGkWk2DolqXxlF3g+G08WDSLrrpACDXJpUmBnP1uEawTyKmdzuV3XMR9CU wYAYNW5BJ0VBJd3elo/QSO92HpDFI04bd/58Vx2jA2+245JyFkfNfANVGjCmBdaJGIHL 6vkdB4/Gk3Tu/A+nf6Mu22Qj2B1LigPUP1prF/jqGJhPU3W4v1JlClSSRqH57hbiQaEC SG5AW/Bt1VJvK+7CgMKN5KosJkLEcmNXJfJDzBnQYFfPq06ec/S7GfK6Rj428S7QAlpH 6y5Q== X-Gm-Message-State: AOAM530RYpn7WE4xz42UF93QnwcoTjqjnSWvkCD4R8rzK9SX4eTtPo7x PizHHhctVT/oy6ei5TWNXjpJiA90LWeBuZlnvDg= X-Google-Smtp-Source: ABdhPJwYBILZz8BX8EoH2+RUt58i+KMsSlH4tD1Gn2GDMfE9Gm0tTOVWIKv8iMtjl6LaEd6+nE5ZPwGrIquw4i5kSLo= X-Received: by 2002:a05:6512:ea9:b0:478:7f6b:5289 with SMTP id bi41-20020a0565120ea900b004787f6b5289mr32132756lfb.87.1654076582449; Wed, 01 Jun 2022 02:43:02 -0700 (PDT) MIME-Version: 1.0 References: <165404869855.21942.14779642481390967131-0@git.sr.ht> In-Reply-To: From: Jeremy Volkman Date: Wed, 1 Jun 2022 02:42:53 -0700 Message-ID: Subject: Re: [PATCH bazel-zig-cc 0/2] Ignore undefined symbols when building dynamic libraries on darwin To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sounds good. Thanks! -Jeremy On Wed, Jun 1, 2022 at 2:36 AM Motiejus Jak=C5=A1tys = wrote: > > On Wed, Jun 1, 2022 at 12:30 PM Jeremy Volkman wrot= e: > > > > Hi Motiejus, > > > > Thanks for accepting. I'm not sure if you saw, but I had submitted this= patch a week ago (broken) with more discussion and links in the overview. = I forgot to increment the version number, so it wasn't obvious. > > I had a vague memory of looking into this, but wasn't sure where. > Turns out that wasn't that long ago. :) > > Anyhow, reason I am asking this: I try to apply patches as-is, so all > re-posts should be self-contained, as if earlier of them didn't > happen, because they are not going to the git history. Let's err on > the side of more verbosity than less, always. > > Thanks, > Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 39D5A11EEB5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Jun 2022 17:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1654103143; bh=PFSoKnkCTJrJ+Uml/M6x2RBPoR4+Cz2ljB8Iw2xINIE=; h=From:To:Cc:Subject:In-Reply-To:References; b=nyP3Lv/Wv0F332eCz/w5rKbqCvYynxnH9j3+TiPdIhh1gINl+UtA3v0H2FbeWWLFm op3YjCfxg6FIQnxioFNltyJON24srPQU0/JrBPMZ64KsBQMqqdkDOROKRn+FdmIzrU 4jDaLld/9xe3Ym/vJIMskxLDZ/zS223Z+K3LvnRw= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 01 Jun 2022 18:05:37 +0100 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support In-Reply-To: References: <20220529163518.182119-1-fabian@hahn.graphics> Message-ID: X-Sender: fabian@hahn.graphics Hey Motiejus, On 2022-05-30 13:37, Motiejus Jakštys wrote: > As you may have noticed, the past patchset doesn't pass CI. If you > have a Linux machine, the tests are quite easy to execute manually[1]. > Otherwise don't worry about sending multiple patch versions; I am > happy to ignore the patchsets (and the emails from the CI) until the > tests pass. That's what they are there for! I've actually been running the tests successfully on my Ubuntu box. I a bit confused at first looking at the failed build logs [1] until I I realized what the problem was: Even though I updated .build.yml in my patch, it actually uses the original baseline file in the repo to run the CI steps. This means that my addition of the wine-binfmt Debian package doesn't get picked up, which then causes the bazel test to fail that tries to run the actual Windows binary as it doesn't know how to interpret it. I now realized that there's further setup commands in the "setup" task. I will try to add the package there instead. > You can also use a transient docker environment[2] to isolate yourself > from the host OS. Let me know if that works for you. I just tried this and my tests passed, but only after I manually ran `update-binfmts --enable wine` inside the container. I'm a bit confused because this wasn't needed for qemu arm64 emulation, but maybe that's a wine-binfmt specific thing? Anyway, I will try to go with the setup step approach and add that extra command there too if needed. Best, Fabian [1] https://builds.sr.ht/~motiejus/job/769696 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by mail-b.sr.ht (Postfix) with ESMTPS id D313011EF41 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 2 Jun 2022 03:06:59 +0000 (UTC) Received: by mail-oi1-f181.google.com with SMTP id r206so5060045oib.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 01 Jun 2022 20:06:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=rH/W4qS90Y/n0ND+RMRLeQWCKOp+ZcH5sX00mIWggjk=; b=OxR/a19tDTaf7aF/K/PjfryRRICLvyw1sfNnHAD+MGk5JWWgb697MMjts6hkHetnDy ocTVm1lziC8tZuEPLYLE/yigckDLwrnIN3Qjtq8yyLxfrB2TSkGICHPMGPjKaNqUADUf ujZcZKpoIV9kARt771OGjHYt9c+c7cutC2PPkz/qqqInyJR3M3Pf4DSvT1kzA9h0KKSR qMBZ7vDrKQQSL0AyiMxw1Af+1w+KinV/FMxzr/G42MkYdmgLuGDd2dTpZW2ZOCZ+A40v sWTvC97cjehkejVTPs1/4u86PNg1JlUv6RrM+ldA4BG3cbHfMIKDnttv0Te3WgnB1pSC ORDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=rH/W4qS90Y/n0ND+RMRLeQWCKOp+ZcH5sX00mIWggjk=; b=Ky9B1hsuzkUfrOpHX4/vIv0hPlGTor0KjBmkKWQ42NOahTfmecpb8IssQiq12jSL9o 3VyPsazmR9R9MOyuFiqE7j+YC4S5PaqA41YYtochyeJR21IA32ipRAMaGeGDPzAkKjq7 TDNOmJ+sFJ1mwmQ1gzxzpQhvtlOt3pca/KCAZFMvMu9QU4cImsb+qyA0AcnAzlGfS68U itzTtGoxcWAUm3VtsCwoAJ+Ui2M2cFgAK24Ao3RJnz6Ce0ibiXnpsGfrbp76l/AHRd8I s3ENcxo+azUcl6CiX9JeirQnwf50yMiFjwbec/DM3yFCatS9s9vxQ49ucSjmBfQbCkz+ t3Xg== X-Gm-Message-State: AOAM532y29DkcFli66S8/m29x2czbAGUiMcgLqJdt7TZqyQL06U5qRhV KTCCs/tqjbtDTJFfFcilmCMZRjXEfaOsqk3SusEnqJvX2/4= X-Google-Smtp-Source: ABdhPJxlTNRJzquwFI8gXQAHB3spJJwoBSiQbJRwYhbYPKq1oC7kFefBP1j4kjRQktXMsTuZoyYRTaa6KfxjGOcicjU= X-Received: by 2002:a05:6808:171c:b0:2f9:c685:f4d9 with SMTP id bc28-20020a056808171c00b002f9c685f4d9mr1518581oib.21.1654139217564; Wed, 01 Jun 2022 20:06:57 -0700 (PDT) MIME-Version: 1.0 References: <20220529163518.182119-1-fabian@hahn.graphics> In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 2 Jun 2022 06:06:46 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 01, 2022 at 06:05:37PM +0100, fabian@hahn.graphics wrote: > Hey Motiejus, > > On 2022-05-30 13:37, Motiejus Jak=C5=A1tys wrote: > > As you may have noticed, the past patchset doesn't pass CI. If you > > have a Linux machine, the tests are quite easy to execute manually[1]. > > Otherwise don't worry about sending multiple patch versions; I am > > happy to ignore the patchsets (and the emails from the CI) until the > > tests pass. That's what they are there for! > > I've actually been running the tests successfully on my Ubuntu box. I a > bit confused at first looking at the failed build logs [1] until I > I realized what the problem was: Even though I updated .build.yml in my > patch, it actually uses the original baseline file in the repo to run > the CI steps. This means that my addition of the wine-binfmt Debian > package doesn't get picked up, which then causes the bazel test to fail > that tries to run the actual Windows binary as it doesn't know how to > interpret it. I now realized that there's further setup commands in the > "setup" task. I will try to add the package there instead. > > > You can also use a transient docker environment[2] to isolate yourself > > from the host OS. Let me know if that works for you. > > I just tried this and my tests passed, but only after I manually ran > `update-binfmts --enable wine` inside the container. I'm a bit confused > because this wasn't needed for qemu arm64 emulation, but maybe that's a > wine-binfmt specific thing? Anyway, I will try to go with the setup > step approach and add that extra command there too if needed. That's fine. I pushed it to a branch, which kicked off CI[1]. That passed. I will review your patch in a short order. Sorry for the confusion and thank you for clarifying. Motiejus [1]: https://builds.sr.ht/~motiejus/job/772421 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by mail-b.sr.ht (Postfix) with ESMTPS id AA2D711EF01 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 6 Jun 2022 07:37:53 +0000 (UTC) Received: by mail-oi1-f169.google.com with SMTP id s8so13381534oib.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 06 Jun 2022 00:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=d4gxM3P1SLz8KRgDn8hT4qEJRFlUsvvp87V+mZKND4Q=; b=P97jhLDV+lJEbf21ZQlI0cjHw+GsrGzOwgshV66pp5d4kDbnk0iG9DMoZhZC+mEZqU puOBkT+13SKxSAN8zfTmJ1jsHZtP5p+7fgQf6Rdy0Nc+/Jx8te+Lj3dSAQlj5Yz6ZKvj Qx3H5TzLkOWPNCKmnlTNgLEwaUq3A9oUD049CO7q5Tc1H3cz6qBVfRG9KlnbP955ndX4 4bKYN+gOFGWock3oFihNxv0Kwwdp7rlyohAqi18UkPxLlhypyCFBqEWU9UpEUxBdsffq AB+pC8V9dpu3Wl/zeuzYTw0tQO22Y9TeC0lQC9xOF2CDdhreIICUX8muLlbcd8WE0cUI l8Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=d4gxM3P1SLz8KRgDn8hT4qEJRFlUsvvp87V+mZKND4Q=; b=OXzVoUNayUuWflUanRpVWFcv0n+5ZVH6eX8QsGDbx9k4V61gbRni6A0si7HnUTn8Hc OwvrV0NBz/tjSVds22utqnkjfa3V3RbgM8CNRPuZvxB3cLHdBTZS5F0xlpwc9jCOH4h6 iE7yRz+9Brjb0mJOmFmUswJ45LtjaXNzGWk4iueBgCYQb5xTOKhjtxSp5ggybTGngEb5 dR3od/hbfPppCqXv3sBZ4JxUEDGP62pXolR7EEd5EM+byIGGaMCnNwV2gG2t8fKaGqnB H3yMIemS2c3+qVJkROSLelw+5T9tqbJ+57rCwcnz90Q7zIPb3UFvWoqi5AS0stqBpuL2 QKdg== X-Gm-Message-State: AOAM5307Vw4PGjEX+NWZEUZcRw8lhJcHmm07q4EECp5dChCzMMxie9AW ZpZ1UPsWDHQlU1Dt7d+VWCvh+NbMx0ZbdePdleI= X-Google-Smtp-Source: ABdhPJxJUfyRqukOO/ClY7IxiZ+Sl4Vesg9mtbgob2hZjv4kE9uMuYWMT1ExykMoKokjgakj36sLf5jnCv136p2V4aU= X-Received: by 2002:a05:6808:308e:b0:32b:20ef:15ff with SMTP id bl14-20020a056808308e00b0032b20ef15ffmr29064055oib.216.1654501068924; Mon, 06 Jun 2022 00:37:48 -0700 (PDT) MIME-Version: 1.0 References: <20220529163518.182119-1-fabian@hahn.graphics> In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 6 Jun 2022 10:37:37 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jun 2, 2022 at 6:06 AM Motiejus Jak=C5=A1tys = wrote: > I will review your patch in a short order. Sorry for the confusion and > thank you for clarifying. > Hi Fabian, I spent a couple of hours on this and published it to motiejus_windows[1] branch. Notable changes: - added test wrappers, so we no longer depend on wine-binfmt. Bazel does something unusual with sandboxing, so we still need this for linux-arm64. - side effect: `bazel test ...` remains the only command to run all tests by a mixture of "manual" and "no-sandbox" tags on some targets. - fixed linux-arm64.gnu tests. Until the changes those failed on all computers I've tried except CI. Now they work everywhere I've tried, assuming dependencies are installed. - trivial: renamed ext to _ext to convey "it's private", also updated release scripts. Please review my changes on top of yours in the branch[1] and let me know if I didn't mess up anything. Then I can release v0.8.0. As usual, thanks to Laurynas for tips. Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/motiejus_windows From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 95D5511EF1B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Jun 2022 17:03:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1654707791; bh=QLwRLhATaszHxFkSirsxI2L9B+cmVXrYQumrVloMFZw=; h=From:To:Cc:Subject:In-Reply-To:References; b=Jgj2/yhCtCsjjipoBAOB7wnZEeMn31FlMJH+akwWnl2aVQlDSCEF2Whzg+BoIeV00 2hjLJAL//x7LyxTxTEqgwFLhgCud9KMe53gi1LBWBRsAjHiUx0kMnUvNwCef2RipEt R1XKv/g420hJcvNLtxzTIJglwADyaSn8uqG5wQ68= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 08 Jun 2022 18:03:05 +0100 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support In-Reply-To: References: <20220529163518.182119-1-fabian@hahn.graphics> Message-ID: <970d81eedf2eeed648ec06200b3d6567@hahn.graphics> X-Sender: fabian@hahn.graphics Hey Motiejus, Thanks a lot for looking at my patches and adjusting them further. On 2022-06-06 08:37, Motiejus Jakštys wrote: > - added test wrappers, so we no longer depend on wine-binfmt. Bazel > does something unusual with sandboxing, so we still need this for > linux-arm64. I don't particularly mind, the run_under approach also looks fine to me. > - side effect: `bazel test ...` remains the only command to run all > tests by a mixture of "manual" and "no-sandbox" tags on some targets. I didn't know about the no-sandbox tag in bazel, so that's a great solution to make it work under `bazel test ...`! > - fixed linux-arm64.gnu tests. Until the changes those failed on all > computers I've tried except CI. Now they work everywhere I've tried, > assuming dependencies are installed. Right, I actually ended up passing QEMU_LD_PREFIX in --action_env and thought I had somehow messed up my qemu setup. Good to see this fixed! > Please review my changes on top of yours in the branch[1] and let me > know if I didn't mess up anything. Then I can release v0.8.0. The only thing I noticed is that since we no longer explicitly run bazel build in ci/test, we won't build the windows_arm64 test binary anymore. As far as I know bazel test ... won't build targets that are not required for running any tests, so unless we also put a command for bael build ... somewhere it won't be covered. This is a very minor point though, so feel free to ignore. I did run your branch against my project both on Linux and Windows machines and everything worked flawlessly. So from my point of view this is good to go. Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f53.google.com (mail-oa1-f53.google.com [209.85.160.53]) by mail-b.sr.ht (Postfix) with ESMTPS id 13D1B11EFD1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Jun 2022 19:51:20 +0000 (UTC) Received: by mail-oa1-f53.google.com with SMTP id 586e51a60fabf-f16a3e0529so28589001fac.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 08 Jun 2022 12:51:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CyqV+jkwMpm1LVOKc2MR4DBlPFo+Irj/WjUTMMyfSsc=; b=PKpEpBKgk4akqzBK5fi/2KrXiQMUPZfFkUFEH0ItkuxePgh5urD1sPdGf4iSdyGmcu Rw9RkKZ+pao0N4LasCwHUkFbv38tTlc0vqd9LbsAdgbdgApzBtLCaw7reHlPPZUdmt8o +c4smH4wcM2QZLBm2h6v/sglOqdh9uIdU75o/XAROhYNwwx6+7/1Z/qg/mqu/qnIlYKL XOynzSutYAmBIVf8gZUQ+5o4dPNfRmiX7EuSzXN3bVKa/qSf2cNPcon8YcW6Jcjwyoh7 u5mUOGec1i2dVAvqoRLFBwnasrNKDHCLCfakTiEqvlZcm1/RJL+Mnmhm95tacHtugXwI jOPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=CyqV+jkwMpm1LVOKc2MR4DBlPFo+Irj/WjUTMMyfSsc=; b=SUmOgiyDkkeJYhFYnUGh5rvwoiF591Av6qbSjQhMZhOaefKW6OsMfoH6KdrYbZSHTV KsmR0J1N800vigpOBCpV4P6OxRfhDH/NwrIr8NeXJQ/zlJX2E2eWZxXuVa6CNxRIs5Ig HBA3WqkO+cVJIlr6ChGzJYp9c4BZeD/AEu+NLKdu0K1mRY83EHF6X/6dCjVDMLbl7SEM lxA3SEbojMbi59XqxQMdJhWirZXei+Wq/cgpqVIduBN+UgKvC8V9wG4xYZ6SnNot14Gx 1C9sQz+8PrnwX5XFXwGYq1fc16NelC+/YvewUAnezpr2A1or1vkJOb7afz2ytIFtMZRK tCmg== X-Gm-Message-State: AOAM531rbur7S3ArQn0211VcAzcEhWmjfuaSc0QfLSI7yqAwx7OqgRnb 9sNDPBLisZ0kCmKg9pwzxnRVQ+WZBJPivBG/jlFhAJ5JRms= X-Google-Smtp-Source: ABdhPJxnUyXrCT+vqt8X2rUgGvEIDitKlm2cRt9e19g8mkvoVYKBGdu92PN7dqxcCqGPPsjGy0MM4h8kvOy2NOk0WkU= X-Received: by 2002:a05:6870:f683:b0:f2:cc34:452a with SMTP id el3-20020a056870f68300b000f2cc34452amr3424593oab.216.1654717879299; Wed, 08 Jun 2022 12:51:19 -0700 (PDT) MIME-Version: 1.0 References: <20220529163518.182119-1-fabian@hahn.graphics> <970d81eedf2eeed648ec06200b3d6567@hahn.graphics> In-Reply-To: <970d81eedf2eeed648ec06200b3d6567@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 8 Jun 2022 22:51:08 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 8, 2022 at 8:03 PM wrote: > > On 2022-06-06 08:37, Motiejus Jak=C5=A1tys wrote: > > The only thing I noticed is that since we no longer explicitly run > bazel build in ci/test, we won't build the windows_arm64 test binary > anymore. As far as I know bazel test ... won't build targets that are > not required for running any tests, so unless we also put a command > for bael build ... somewhere it won't be covered. This is a very > minor point though, so feel free to ignore. Not in my experience: if an executable label doesn't have a "manual" tag, it will be built. Let's run a na=C3=AEve test. Apply this patch to the branch: diff --git a/test/windows/main.c b/test/windows/main.c index b5302af..5f94789 100644 --- a/test/windows/main.c +++ b/test/windows/main.c @@ -1,6 +1,10 @@ #include #include +#ifdef _M_ARM64 +error +#endif + int main() { DWORD version =3D GetVersion(); DWORD majorVersion =3D (DWORD)(LOBYTE(LOWORD(version))); And then run the following: 1) bazel test //test/windows:winver_windows_amd64 # OK 2) bazel build //test/windows:winver_windows_arm64 # FAIL 3) bazel test ... # FAIL, the same way as above According to your earlier description, only (2) should fail. But 3 fails too. I will not paste the full error message here, but suffice to say, it is what I expect it to be. > I did run your branch against my project both on Linux and Windows > machines and everything worked flawlessly. So from my point of view > this is good to go. Will merge. Thank you for your contribution! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) by mail-b.sr.ht (Postfix) with ESMTPS id BAC0E11EFD1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Jun 2022 20:09:46 +0000 (UTC) Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-f2e0a41009so28622727fac.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 08 Jun 2022 13:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=39IC4EEdp6/ovd/eC9dHVL9//xW+pN9rq6f3dEDXLHA=; b=cCENizUIUNvRsvbyfqWBv/N8LKExM+K1WE9dqrMWM2UxwJvbxNO37q2y9XsmDd5HfF YZjTpqtPqYyHAsCCIF/Y01JoaKq8bnY3NaORxO/x94UgX0jsO/j2Mt25ykCkEVtzJX2r MTldz0N903xF1z5evCrYQi2U7EtBHTuo2c6KjgGSEVm0oDxFsv6r83g4U2eYx/LeWcj0 9FJOiubhLfXjuZ4tFqXUZ5x0B3NWz0mlRo0V1klmIDEZh/rPvv3iGOjrd6q6Mbcopq24 vboOB3OwHigvJi75c9q3z5vb79TX/Psb+OdxbC7NQpaTJ6NyOynYUqyV5hn6L1buEInP VZ8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=39IC4EEdp6/ovd/eC9dHVL9//xW+pN9rq6f3dEDXLHA=; b=gZGCjpV34JG/+KG0yLBqpAFLlS5z9dYv7IAcUbGETwjXcyM2R33OHjSwkUuG4WEmOP 0WN9/pVem5HMMLq4sNJn+9oTW4BclDcGKvPIY7LoZYctWoeP/ncPmsOxDHNP8ZpXjplk 1BpTX7gd58Y40q4xBKpsvzRcRQ9V5oTbAwx06rBXffUuqVVnbUY6uKWMx6LUX76X22a0 v13KFpvzxAU0nk3UJrcheW6Z4JACMF9AjokAHPEQhXgndj0LNCyqU28e6bIXHBNHHBCc 3ZAzceDspBAI0XX3EMg56bTXvVKk/8zzWnhPufzG1mH3wODC6vnmXTpl3j1ZCHqLQSyt BFjA== X-Gm-Message-State: AOAM531d3U/8aTuWoeGBuu+o2I8YHR4QUnG4BffRhf31lMzabef+xM2L 3iI95pRQbsVaMxu7sv0hC1/utm+I30uit6vQteKYMbn7yTU= X-Google-Smtp-Source: ABdhPJz//vRXmZdtunfSfsETBthZC+rk966TxbKFBswzCoeInJ9b0dZQjf8RofBIIsVWd39AuRyoH9eEkPehGdUWuB0= X-Received: by 2002:a05:6870:899d:b0:f2:6a4a:ae03 with SMTP id f29-20020a056870899d00b000f26a4aae03mr3270667oaq.116.1654718985982; Wed, 08 Jun 2022 13:09:45 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 8 Jun 2022 23:09:34 +0300 Message-ID: Subject: bazel-zig-cc v0.8.0 To: ~motiejus/bazel-zig-cc@lists.sr.ht, Fabian Hahn , "~laurynasl" Content-Type: text/plain; charset="UTF-8" Hi all, bazel-zig-cc v0.8.0 is released. It adds windows (host and target) support and cleans up multiarch tests. All tests work on all machines I've tried, when previously it was CI-only. # Incompatible changes With `zig_toolchains` you add to your workspace: the "urls" parameter now needs "{_ext}" instead of "tar.xz". As usual, see USAGE[1] for an example. # Thanks Kudos to Fabian Hahn for contributing Windows support! The test organization was mostly guided by Laurynas. He mostly talked, I mostly wrote the code. As usual with every recent release, thank you, Laurynai! Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc#usage From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 0BEFA11EFF7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 9 Jun 2022 10:29:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1654770537; bh=vmO9LC/tPaycUZY9fry2u9+5xWLd7xa7YCiJanGjoEU=; h=From:To:Cc:Subject:In-Reply-To:References; b=X2Qk/VjYCUSEdlMTS5L8YKwi1vEgCRkfR7JQugcvXRSkU2XY67Htnov3IxMOFwBEv xk+tk2X8ZyJzcG/ARgdCtvdbZFlo1P6NDCJlfgFD9Lzzfrt+82wEEGeCwdT64uv9Py zPVlQ75NnGUPwCgrCO3aPqbtuZESpDTdbjVRQg+Q= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 09 Jun 2022 11:28:57 +0100 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support In-Reply-To: References: <20220529163518.182119-1-fabian@hahn.graphics> <970d81eedf2eeed648ec06200b3d6567@hahn.graphics> Message-ID: <7b547394decea1653bb5b9b49cfcd3b8@hahn.graphics> X-Sender: fabian@hahn.graphics Hi Motiejus, On 2022-06-08 20:51, Motiejus Jakštys wrote: > According to your earlier description, only (2) should fail. But 3 > fails too. I will not paste the full error message here, but suffice > to say, it is what I expect it to be. Wow, you're right. I've been using bazel for over 5 years now and never realized this. Thanks for the clarification, and thank you for merging my patches and the release! Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f42.google.com (mail-oa1-f42.google.com [209.85.160.42]) by mail-b.sr.ht (Postfix) with ESMTPS id 1AB2111EFF7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 9 Jun 2022 11:49:05 +0000 (UTC) Received: by mail-oa1-f42.google.com with SMTP id 586e51a60fabf-fe15832ce5so4947938fac.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 09 Jun 2022 04:49:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=88tl/iweb9vF2YBybDj+l6P5IpoSSf8ehlOB0sCBzZ0=; b=jmlP46DdFlDMRaZr+nZG6tRb4kp2rTKd6rmvuqy+556oP0oePKfDmp4oPLB0SIvBXq /MmBnDzAwoz/qFmdS4nwEw9iJt5h07ZBZvdrMFg/eC3jh2esGZYZGqSs/eWFaX9sDMLX gLQ4mROPVH1ZSqucgVcHgTHgamU+STYfu3q4waNaiiIlOwpXOqSponpXkubkxmYf89gY aDk29CFgc9PpSsjKh1+OYf17qFpw7eAYIDMt/Byztg9wIPnEowRj3D/+eLEIWNZXPVbF S4PXlqIV+T9UFwVx3AcJeYVRF/YEWrnnfu4J3AQEfwNb6IyTm2noKg16qj0NoleMyVZ0 s/QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=88tl/iweb9vF2YBybDj+l6P5IpoSSf8ehlOB0sCBzZ0=; b=JDGgKVhN1JvBiXbjiL12vwsaG+q9dxbLln2TAqE/Q0Gf8OYeBuNdVI9OA8JHI+t/qL N3NfE0Sqgqp21fZhy0oPSjXIW5HNRQxF+AbYXtyrH6upSokGFZLbzR7HYGJAYmYKsV30 pdMohnXUabe1+NVLKy2CGbSlgzPrV7htaUpsJ3ZtDhbf8I6DYmFIqdlhr8MGkndamCBB iWl6beMwMRPIwqD4+QkaoyorSbciwDVtS5iRfxjqRvR1iHDGXxB2fbhf/VtfqYWmDbrd o9bNeWg+G7w0jsIEW7IratrRJiuNSKKmbwBimsKQs5rMgCLJs033ZtQwYrNg7/y4EC94 tIJA== X-Gm-Message-State: AOAM530qCqQ/lnXZ+T4oIsHhvjgQDm8UEFfzxNnUp0dFlgNlf95AwOY6 h/Vm36PZt19qRMYqk1G/6mxb+8uFt/gcZMEMvVQ= X-Google-Smtp-Source: ABdhPJyUu4VrlzMEUfNLYZb+eyvSQKXTzmxxK3KzNYaA6Cj4gOsHH9xN9IM8uP1+LJwfj1uCwqdjPDmc/6F841+I9xY= X-Received: by 2002:a05:6870:f683:b0:f2:cc34:452a with SMTP id el3-20020a056870f68300b000f2cc34452amr1486853oab.216.1654775344362; Thu, 09 Jun 2022 04:49:04 -0700 (PDT) MIME-Version: 1.0 References: <20220529163518.182119-1-fabian@hahn.graphics> <970d81eedf2eeed648ec06200b3d6567@hahn.graphics> <7b547394decea1653bb5b9b49cfcd3b8@hahn.graphics> In-Reply-To: <7b547394decea1653bb5b9b49cfcd3b8@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 9 Jun 2022 14:48:53 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2 0/3] Windows support To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Thu, Jun 9, 2022 at 1:29 PM wrote: > <...> and thank you for merging my patches and the release! Hi Fabian, No problem! Note that your name is featured in the README[1] now. Please read it and make sure you understand what you have signed up for. :) Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by mail-b.sr.ht (Postfix) with ESMTPS id 6EACD11EEDB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 4 Jul 2022 12:45:12 +0000 (UTC) Received: by mail-oi1-f181.google.com with SMTP id q11so12768339oih.10 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 04 Jul 2022 05:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=coxWmlQNSguWvjtrd+KL+nD1AvM9WoJ3raGAF1TinG8=; b=R5QaDEumNaSIZKk+lhBC9akv7NshtLYDwi2O8FS3EP5Gbi7F+vWVZI2+/mK99v2UE1 QdZZr+6Uo+SrybyKZrtHgpTrNSwQxFxz7Q/nY7BC+94ohsOzrRQYljENIz4mBbtPSpDx B/gMlcpsHJH7HOEt6DRTxP7tnl487LKGzwfp1wgilST2p27BaJqoIyMbkbDUAzu785bl iQ1M1rk4mgxG0Oucbd7Hn/p0bx4JLChS4oswQwTpxMshZzZbSFR4UCTiPbrH2sGiaHII dV5osp/XbSVR6nJB2WcrBvgaDY1FJkcCawz6jjVfAbMmxxRdfZunQIXuXlJt/kLJcuXF SKkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=coxWmlQNSguWvjtrd+KL+nD1AvM9WoJ3raGAF1TinG8=; b=TwyqsgOHKVB2c1slwd4xHXu3/hRdO5ae6XRnLq8dR831vYSvWi+EDrHgEegzrBhRl/ VYfhgL4POIho0nNQ4e7WpiGtdZRqGIK5I/6sziqLCT6ObNQMFQ2kccbnsFLidcQHMsSv SlLvoI2Y/e+kszsYrQmusNTNUSt4r0bZ3rvGH+aGkeA0Eg/5fRHAwCoZ17INqRumeV88 t3UI+96uKvWOcQePizlTjIZ3O2SVLlEyZ7Z9EPRndZwQ0YL9tlxVdoTzt45gm8keSttb /GMWI7NDnywTXaYXeAQtOcqsSI5PcJUG/QnqxXkCku7Hlk1K5BM/qq/+VzNlzKj6L/K/ XXLQ== X-Gm-Message-State: AJIora+fcX9Qc3oLa2DmA9G+ptPFauLnYRcFk+ZGnkm4bcR3v3u7JezZ 6IjwQ3mEY1C3jwLRDcyt7hKVlZkDwvT5hHfJvxJ02xV+w1I= X-Google-Smtp-Source: AGRyM1u39iRrqkkzeofLBF891K92mA26GQdl/CqMPqkGLnsrgdE2vQiEUat/BVghFfxGU5aNc+AVF3pPVH38mQHW4Xg= X-Received: by 2002:a05:6808:f03:b0:337:a7d2:4bb6 with SMTP id m3-20020a0568080f0300b00337a7d24bb6mr6893861oiw.116.1656938710774; Mon, 04 Jul 2022 05:45:10 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 4 Jul 2022 15:45:00 +0300 Message-ID: Subject: bazel-zig-cc v0.8.2 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, I released v0.8.3, which adds fastbuild, dbg and opt settings with defaults suitable for zig-cc: - zig by default adds `-flto`; fastbuild negates it. - add -O0, which now zig cc[1] interprets correctly. - also use today's zig sdk for tests. This v0.8.3 should have been v0.8.1; please ignore v0.8.1 and v0.8.2, these are caused by me trying to overly rush things today. [1]: https://github.com/ziglang/zig/issues/11921 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) by mail-b.sr.ht (Postfix) with ESMTPS id CDD8E11EF78 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 12 Jul 2022 07:19:38 +0000 (UTC) Received: by mail-ot1-f45.google.com with SMTP id e1-20020a05683013c100b0061c1a6b8d11so5564742otq.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 12 Jul 2022 00:19:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=GTzwRk1VzKiGp9a1uogPz+W/73KM/MT7lPNVKp+RGJs=; b=T3r3PT6NDyTlGbcv0/XGzLrWrsLNtAp8TWlxQm3Kv4/VB9vW51TUK/PD0u9uASQLH8 mkHulABOeWsVxYblEYziS26jgLPZcMIT9HoIQTZzZepcBQWmJqg18xEDYiu+cHJSfb0x pOvKoCrsHbB1/Jq131t/vz//7Wf2Ff2aGxFTuHRHbmjX4XmEUhiQabPYBg9gqSV6mwC0 AQoaCmJ9896a3ZYkstrMwT16klr7ScxvnwZEMhzYLCnefzXWcqu0w7zghsXtp21aWmgx KSxQIAKAP8JvkhpxMR2O3dPgqSjBxYSSA5nHHOHXuPSO4D8eUjsGPaWt7aa0a+xbILGe nTtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=GTzwRk1VzKiGp9a1uogPz+W/73KM/MT7lPNVKp+RGJs=; b=0zCGKwp0rs79wOhy6Jr0OwqNZ8or26myERBkkmjHXBGq9UKsaRBLSG+VlbdZPZglMK k3Nzpec9b6lgYyiYNOTfGL40krgUyqdTSO2rbm9103eiTWRWGvkHvaYILPp+3+xYIjl3 p0CEdlA0DD6QLbaEGED2lMfFUFfI4SOus7EwAQDRBbVlv6eRIwzitIa8tGzycKB6cnwv krYhqhso9tETIkkDheXPlr09F7fOp9daW5jSMw4xy2ZpsuHRFpwEJeIKX4vZXNDAWz75 0B6Qi1dzLzPtMHig7yn74gS29cJX4/JJ9OCAIk4fsXq1Lu5o4a+7x97t2sUPnQHholCC fudA== X-Gm-Message-State: AJIora+40prMpcc8dSICWQ9y6CUvIbcYLLk0Gpzmu8t+klu3EU2bvxwL wX473DEyGArAZvPewH1QPUINRdISo7mQTI3QI5KAaXBPlzQ= X-Google-Smtp-Source: AGRyM1v2FLfJg8ErnpzxfDyxBaiYMw5gqAZyYga02Z+rK8KMpxIy9+aCu1Fhh5tv8fCdqM/FDAnZfkMCrh/OMho2XIo= X-Received: by 2002:a05:6830:59:b0:619:17f7:397d with SMTP id d25-20020a056830005900b0061917f7397dmr8511801otp.60.1657610377972; Tue, 12 Jul 2022 00:19:37 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 12 Jul 2022 10:19:27 +0300 Message-ID: Subject: development tracks of bazel-zig-cc v0.9 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, I will occasionally share some longer-term development updates. This is one of those. Now we have a couple of ongoing threads: - linker robustness - performance issues when using zig-cc. Linker robustness ----------------- One of the biggest source of work when adopting zig-cc for our compiler needs was it's lack of support for various linker arguments. When compiling a program, you would often see something like this: warning: unsupported linker arg: --sort-section warning: unsupported linker arg: alignment warning: unsupported linker arg: --exclude-libs warning: unsupported linker arg: ALL Zig ignoring the flags was the right thing to do at the beginning, but this tends to break software in subtle ways during runtime. So I proposed failing hard on unsupported flags[1] and implemented (some still under review) the ones that I found in the wild[2]. Please +1. Performance issues ------------------ We have found non-deterministic performance degradations when building lots of code using bazel-zig-cc on a 96-core server. Usually our test shard takes 5-10 minutes to build, but with bazel-zig-cc some time out after 30 minutes. More about the CI infra here[4]. So far we found: - zig was translating -Og to -O1, now fixed[5]. - -fno-sanitize=undefined can decrease the build time by 30-50% for non-optimized binaries. - -g0 (remove debug symbols) can reduce the build time by 30-50%. With these changes the baseline "zig cc" performance is similar to clang/gcc, but some shards still time out. We currently suspect there is some contention in zig's caching layer; the track is active, stay tuned. To be clear, we are not planning to remove the safety/debug features in bazel-zig-cc for the sake of speed; this is just data we've gathered so far. Regards, Motiejus [1]: https://github.com/ziglang/zig/pull/11906 [2]: https://github.com/ziglang/zig/pulls?q=is%3Apr+author%3Amotiejus+ [3]: https://github.com/ziglang/zig/pull/11863 [4]: https://eng.uber.com/how-we-halved-go-monorepo-ci-build-time/ [5]: https://github.com/ziglang/zig/pull/11949 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.53]) by mail-b.sr.ht (Postfix) with ESMTPS id 7112F11EEF7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 19:15:17 +0000 (UTC) Received: by mail-ot1-f53.google.com with SMTP id w6-20020a056830410600b0061c99652493so13515887ott.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 12:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=QiBhGZyDsuGqfrVY4zUwonRcokOdh+ddzWujrxQlags=; b=i+4CujBL1xDZlczbc6OdrXaX7fU+eiYeslDvZixt2JK9QJxKGhRdDCWgo3TYbIIQoC Q/848FCUCfrV0CR/BDSbRpsM/Bj1N9fun1lj6biUbyLuQXrouGjG1xI1z9aBso5p2gno RwUa0Cu/tJV13JCVhuEnpuV7siMU9oJ1tRCtRaG2qp1mQzlrPbky9QxRDBeQakXCnlSw EZ+z7X5whmjUXw/DGsl4Ve37px7pgd6ErTvTjWfBzYXoZi+Yb9afDwDdLzREYzzJLc3t qUsL2ESKYiLotr0nVnI9PTkDY2/HKnQ/nwIWmjLDayIK0UpDgVyNqsgPIOH6TFE0jhKM hJwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=QiBhGZyDsuGqfrVY4zUwonRcokOdh+ddzWujrxQlags=; b=o+s9WZZJWYq6Xi+7bDlrnhoc0ViC0ftSHtZGlMURS6H3EEH7nxek56mJbj4mK4WIr/ CWaYsvTCjAMLYKzJRua76JPTQd4KNgBJilVJ1hX1AckEryLnXH3ZyAGvhOf/BalXnKcc RB1Njeb15BI5bItIO2vvFApuMIaF3SuwR85tMpt08aPdULpq0EszPNpYRy/+IxVT/bEy RXwcYnfpR0Tf7cxCoK1hA40lo2u9SRgA2b4cvr0TiB9zopEnp86fSWdmM6uAeF0w5Ryk 779abWmyG1Sf2zyCsjBhUOJiyebMnauwiAB4uHf5gfvQ6q8zTY5Wf0+oWGF8BShQtUjG 1bzw== X-Gm-Message-State: AJIora8ONN+9PvJgIr146L067vpZZrUCza/PEKKZO22DY2Z74H2cn0PO kkqBItdy/lcXB9NB8lK+2ZYdA88pMcdHcg== X-Google-Smtp-Source: AGRyM1sq0IUerdKA8xSIW66KPXCA4IFzDK8e/cAyVTfoAs6bGrVXcoGRHsZDwCm738EPack0++qF7A== X-Received: by 2002:a9d:2782:0:b0:60b:1de:d89a with SMTP id c2-20020a9d2782000000b0060b01ded89amr9558101otb.304.1658949316242; Wed, 27 Jul 2022 12:15:16 -0700 (PDT) Received: from localhost.localdomain ([201.75.167.67]) by smtp.googlemail.com with ESMTPSA id v15-20020a056870b50f00b0010d15f11512sm9543235oap.4.2022.07.27.12.15.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 12:15:15 -0700 (PDT) From: Luis Holanda To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Luis Holanda Subject: [PATCH] Add missing include path for MacOS platforms Date: Wed, 27 Jul 2022 16:13:06 -0300 Message-Id: <20220727191305.1656332-1-luiscmholanda@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit While integrating the project into our Bazel workspace, we had some problems while building protoc in an Intel MacBook. >From my testing, the issue seems to be caused by missing include path in the toolchain configuration to the `-none` variant of the headers. More details below. The issue can be reproduced directly inside `bazel-zig-cc` by including the protobuf workspace as a dependency: +http_archive( + name = "com_google_protobuf", + sha256 = "2d9084d3dd13b86ca2e811d2331f780eb86f6d7cb02b405426e3c80dcbfabf25", + strip_prefix = "protobuf-3.21.1", + url = "https://github.com/protocolbuffers/protobuf/archive/v3.21.1.zip", +) + +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") + +protobuf_deps() And then executing: bazel build --platforms @zig_sdk//platform:darwin_amd64 @com_google_protobuf//:protoc The command fails with the same error both in native compilation and cross-compiling from Linux. The error: ERROR: /external/zlib/BUILD.bazel:37:11: Compiling compress.c failed: undeclared inclusion(s) in rule '@zlib//:zlib': this rule is missing dependency declarations for the following files included by 'compress.c': '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/cdefs.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_symbol_aliasing.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/machine/limits.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/i386/limits.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/i386/_limits.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/syslimits.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/machine/types.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/i386/types.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/i386/_types.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_types/_int8_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_types/_uintptr_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/machine/_types.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_types.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/machine/endian.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/i386/endian.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/libkern/_OSByteOrder.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/libkern/i386/_OSByteOrder.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_types/_fd_def.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/Availability.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/AvailabilityInternal.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_attr_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_cond_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_condattr_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlock_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlockattr_t.h' '/external/zig_sdk/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_t.h' Target @com_google_protobuf//:protoc failed to build ( replaced manually to keep the description sane) Note that the specific rule included in the error message will vary due to parallelism, but the error is always the same and the missing paths always have the same prefix (up to `x86_64-macos.10-none`). After applying the patch, we confirmed that both native and cross compilations works as expected and can properly build protoc. Signed-off-by: Luis Holanda --- toolchain/private/defs.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 4478947..6a536bc 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -57,6 +57,7 @@ def _target_darwin(gocpu, zigcpu): "libunwind/include", # TODO: Define a toolchain for each minimum OS version "libc/include/{}-macos.{}-gnu".format(zigcpu, min_os), + "libc/include/{}-macos.{}-none".format(zigcpu, min_os), "libc/include/any-macos.{}-any".format(min_os), "libc/include/any-macos-any", ], -- 2.36.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) by mail-b.sr.ht (Postfix) with ESMTPS id E327F11EF38 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 20:35:20 +0000 (UTC) Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-10e3852b463so7414933fac.3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 13:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=C88X6Cj9dWF1UfbeaDb7Lz8haYXlZUq8pzHEB35felY=; b=J4izNC0h/vZqpl3FAlojjaFPqJ//Xadzj+cCLqPK3c6UYv6BH1FXgLks5vmeR/Wn94 UCvQS2v1sHmCbZjhc9zRPolNCFGk/3JEHfP+TEa8hN5k3EsIdtcGx5v0leb3cbd9mXxA hW9O6wsx0cDbnv9Y06OA3KsjtKqKzo9USu6dg6s6edQXUT551/9AqXROP2xjm+Xr0b8l 99olx20Ljdqu8C4b9CBjgGc8gwWHPj9XcELmR5jMLxrIEcP7bLKIIT82XV9lXM+hsgNd Soy3clhWnhPlWyyKGc+f4EUu82+Hp0TfyhFA9fWVLQCpKQ4Dpyur1AzU8ug9CumV+R2Q EZgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=C88X6Cj9dWF1UfbeaDb7Lz8haYXlZUq8pzHEB35felY=; b=G3V5XWEO5sHH2BSmEdZWoK/LYUHO70Cqu6e6ahFSQmLAuDyEZiGAQ1HH49NHi5Ew9z VNZ+Bz/YCW3kGOBzv/a7pKR8Ot9Cm3u6xuxVz0sVBpnI/gOwqAXJimwpesAzkk0L86Lj Knzpl8FZVPnIh6ZsSR16hnobi7rN+pO8zl5dMdMG2aYerOwiKKEWsiuay+nDUdq57hSW WgmG6W9p/pNvGVXXvB4kiIN29mDD2QxMo91jPDNbDPiGR0yl4DDPFNcHJ9QmLlp9IXYV UwlK54JOt6x+xrGH3+1ckhg6WCJCifi6pR6MjhNg1myy6w0lMLeuEgH7XdGyTpNZB//E Py6g== X-Gm-Message-State: AJIora8pxEZ6ZjUirq6iBZsQTuulszyNke4IyP1SFAqtk2YtbOQe5VLI 65cydfydQrQIpnA4GTqPVcEi/hlrZ/WAvA== X-Google-Smtp-Source: AGRyM1u7ZF88lGev8gK4mNAj9+18k+2fagtQ46pH50N6cUFYYsa2cXMunbEEp2WD+Q4TuSsjjZUw8w== X-Received: by 2002:a05:6871:68d:b0:10d:a96f:16b9 with SMTP id l13-20020a056871068d00b0010da96f16b9mr3091137oao.230.1658954120053; Wed, 27 Jul 2022 13:35:20 -0700 (PDT) Received: from localhost.localdomain ([201.75.167.67]) by smtp.googlemail.com with ESMTPSA id eq37-20020a056870a92500b0010d3438b20esm10306217oab.29.2022.07.27.13.35.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 13:35:19 -0700 (PDT) From: Luis Holanda To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Luis Holanda Subject: [PATCH 0/2] Support NixOS and others non-FHS Linux distributions Date: Wed, 27 Jul 2022 17:33:51 -0300 Message-Id: <20220727203353.1672954-1-luiscmholanda@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Currently, the project expects Bash to be in /bin/bash, but in certains Linux distributions, namely NixOS, this path doesn't exist as all binaries are stored inside /nix/store. The only thing that exists in /bin in these distros is sh. This patchset changes all the shebangs to /usr/bin/env bash, which will work across all distributions. The first patch changes only what is necessary to have Bazel run correctly, while the second one changes the remaining scripts so that contributors using NixOS can execute them without much problem. Luis Holanda (2): Support NixOS and others non-FHS Linux distros misc: use /usr/bin/env in scripts bin/mod-tidy | 2 +- ci/lint | 4 ++-- ci/list_toolchains_platforms | 2 +- ci/release | 2 +- ci/test | 2 +- contrib/makerel | 2 +- release | 2 +- test/c/test.sh | 2 +- toolchain/defs.bzl | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) -- 2.36.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by mail-b.sr.ht (Postfix) with ESMTPS id 5DEA611EFBC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 20:35:22 +0000 (UTC) Received: by mail-oi1-f178.google.com with SMTP id r13so195125oie.1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 13:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tuD3wJBNj3NRAjCTlvFeCAf38S0xjPdk/GOQvmNdgIQ=; b=k+CtfQuAJyUWYgmCMND7lFVDATS8Xiqu6xEOrvxalwSZKCuuRRPytRY4+KEURaps+U xG1Kc2ZVsR3Jw50TLl4TfMhTzvZx9J0iFV5378cg8um20ljACTHjxj33sgWluHFDX9sr mZ29jCKFkTc6SrqIR5xiLZ2Zq+UAJufJXLmIEk5HIdbZbCoKpecjh8oXNpq7zs97s8XW QjOjwnQIzDMt3SoAAMCPwdOINPBofkF61ygCand4cuq9BjGliQb/Fq8NXzgFnpMQCVjt 31qfRgbVnHrrph3IHc3i8x8zO5fvQJkX8tPSTn1FTtz19l2VuqJqWkMFruJ6yoqN7NRi 0xxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tuD3wJBNj3NRAjCTlvFeCAf38S0xjPdk/GOQvmNdgIQ=; b=rGQWcKOpH+Ge6mZInKDddAQuxLb9uwqjcTW+/zV8uPtBFx6VuYp91vKJi1UiqKUGjb +IcVX6u6acObpGSUAteT307n5SpelFfvIgZokhnmLk5tZ72MvZY/7g2RpitZAHfyyIZP A6FC9T598PfQUhjoDcVqz/ADqoo7MFXGBaV0HCyOc2RYdyrGeD8TGtfbcBTMneLgk3oS amg79rzv6woW5+gxcEz6LeD33J6CYIVKIzM+Dr7HG4r7yslOpqbnktHhbeTVco8J6HVO JFXqhsavOAmYygm1fP2G3otF+UFbG1VGpMjL2yrHHoDdknHY6JEzAkPEN5RLCj0j3RU4 My6g== X-Gm-Message-State: AJIora9PTzZsk4zYwDoH+5PXgXhhsmrlvUq+/xanoO3gTzUuErLDQp50 9GeYkX5jKLxWpnd5TOYg3oqzup74D6E0IQ== X-Google-Smtp-Source: AGRyM1vSS6Eoa0cr6+TSJWPYZSJENpgkvtbWyiuj9p3OZr/eFutrL4OsEyd49AWqG6Pr18CiBY994g== X-Received: by 2002:aca:d946:0:b0:339:fcc1:5f03 with SMTP id q67-20020acad946000000b00339fcc15f03mr2665712oig.230.1658954121538; Wed, 27 Jul 2022 13:35:21 -0700 (PDT) Received: from localhost.localdomain ([201.75.167.67]) by smtp.googlemail.com with ESMTPSA id eq37-20020a056870a92500b0010d3438b20esm10306217oab.29.2022.07.27.13.35.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 13:35:21 -0700 (PDT) From: Luis Holanda To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Luis Holanda Subject: [PATCH 1/2] Support NixOS and others non-FHS Linux distros Date: Wed, 27 Jul 2022 17:33:52 -0300 Message-Id: <20220727203353.1672954-2-luiscmholanda@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220727203353.1672954-1-luiscmholanda@gmail.com> References: <20220727203353.1672954-1-luiscmholanda@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit As it expects Bash to be at `/bin/bash`, the current implementation fails to execute on NixOS, given that there bash is in a non-standard path (i.g. `/nix/store/-bash-interactive-/bin/bash`). This patch specifically changes `/bin/bash` paths to use `/usr/bin/env bash`, which should give the correct path in every Unix system. Signed-off-by: Luis Holanda --- test/c/test.sh | 2 +- toolchain/defs.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/c/test.sh b/test/c/test.sh index ee67dd3..7cfac79 100755 --- a/test/c/test.sh +++ b/test/c/test.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -euo pipefail diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index d200588..f640aa4 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -76,7 +76,7 @@ def toolchains( }, ) -ZIG_TOOL_WRAPPER = """#!/bin/bash +ZIG_TOOL_WRAPPER = """#!/usr/bin/env bash set -e if [[ -n "$TMPDIR" ]]; then -- 2.36.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oi1-f172.google.com (mail-oi1-f172.google.com [209.85.167.172]) by mail-b.sr.ht (Postfix) with ESMTPS id 2FD7911EF38 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 20:35:24 +0000 (UTC) Received: by mail-oi1-f172.google.com with SMTP id h125so158446oif.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 27 Jul 2022 13:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xSjtdXFC1UmYSLdEpH2vdwQuVCpgTiP5N5Ny/JpP95c=; b=BspyOlKi0TASgVCkknqfzCDrviIkcb/FZZRv83zCKtblzTrMp2sDzDaeIJPEcjV6dC gw5+0S5LXiGcVX/38bJ7R15aB8ouaTuA6i5Cg/SZDFBYl+yQGOYl8+fSu/EwFtNQ4T/0 3QeQNjPw178O1FEEzfLWJxKTSvcCs7gYRRONsyEXvTQYvWVs9KayDA6Nfz+sXH8YVK51 zJkhIpOJYeTZrlHcqm5OYIUEkRtR5244AnhlW4RSAumTpl4LSPZMMpT7HIF5+o6kNyYm DQioNyFg7aU/1m+CJHpGVuN9Xf1zCQ6A1IZCdIVBOEgWrQS+61QyIJuxAH/tvbz1UKM+ DZmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xSjtdXFC1UmYSLdEpH2vdwQuVCpgTiP5N5Ny/JpP95c=; b=paKdcAFVye2BAtNFQzt/sO4LZe0afdTQWpPe8VtLby9fN5maOEbI8DcQtyi8YbE5AT Rug0ymJB7/0rXIQ2XMR2Tz7Pi9DVjNhcu6qI+BgD5WfswUOj3kouIcq6DesssYkyzx+s UsHrsAq++0T86IlwZW8uc7/5N+6r8xG1w3uqcdyAIJdmFPgefpoPYJsjcXN/VPOtbBFk xcMrphcX8WVAeISnQrMj75egTVal7FZKPX4++r7X2H+86Fa7U76YbYpgUSg3KtHg3lKg GdbNz1L3aATEV46W9e1Sju9jG4/jx0S73HaDu6Gf3S3bxbTZM7VMFfKADvExnITnv0eD WhiA== X-Gm-Message-State: AJIora+b7sLcppGy80arrIeJOrOaIdyZKCeuoxqEMix0EslklmRoGKjO spwhuPOcbO+BlhaDatkA7bMjhqMvfKKxsg== X-Google-Smtp-Source: AGRyM1tFzU5vsccWZskXpEYnhUKHf81gtd6jWhov81jmpBQCW1w3d6ouBHO6swcFyPfH9X8hkuVOvw== X-Received: by 2002:a05:6808:1a13:b0:33a:75de:233f with SMTP id bk19-20020a0568081a1300b0033a75de233fmr2716223oib.158.1658954123357; Wed, 27 Jul 2022 13:35:23 -0700 (PDT) Received: from localhost.localdomain ([201.75.167.67]) by smtp.googlemail.com with ESMTPSA id eq37-20020a056870a92500b0010d3438b20esm10306217oab.29.2022.07.27.13.35.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 13:35:22 -0700 (PDT) From: Luis Holanda To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Luis Holanda Subject: [PATCH 2/2] misc: use /usr/bin/env in scripts Date: Wed, 27 Jul 2022 17:33:53 -0300 Message-Id: <20220727203353.1672954-3-luiscmholanda@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220727203353.1672954-1-luiscmholanda@gmail.com> References: <20220727203353.1672954-1-luiscmholanda@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This patch continues the work to support NixOS and others non-FHS distributions by replacing instances of `/bin/bash` with `/usr/bin/env bash`, which works correctly in more systems than the former. Signed-off-by: Luis Holanda --- bin/mod-tidy | 2 +- ci/lint | 4 ++-- ci/list_toolchains_platforms | 2 +- ci/release | 2 +- ci/test | 2 +- contrib/makerel | 2 +- release | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/mod-tidy b/bin/mod-tidy index 0c66f25..b3d0971 100755 --- a/bin/mod-tidy +++ b/bin/mod-tidy @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -xeuo pipefail diff --git a/ci/lint b/ci/lint index 8c52243..f84eaa1 100755 --- a/ci/lint +++ b/ci/lint @@ -1,9 +1,9 @@ -#!/bin/bash +#!/usr/bin/env bash set -euo pipefail REPO_ROOT=$(git rev-parse --show-toplevel) cd "$REPO_ROOT" # shellcheck disable=SC2046 -shellcheck -x $(awk '/#!\/bin\/(ba)?sh/&&FNR==1{print FILENAME}' $(git ls-files)) +shellcheck -x $(awk '/#!\/usr\/bin\/env/&&FNR==1{print FILENAME}' $(git ls-files)) find . \( -name 'WORKSPACE' -o -name 'BUILD' -o -name '*.bzl' \) -exec buildifier {} + diff --git a/ci/list_toolchains_platforms b/ci/list_toolchains_platforms index a7d0342..fae9ab8 100755 --- a/ci/list_toolchains_platforms +++ b/ci/list_toolchains_platforms @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -euo pipefail indent() { sed 's/^/ /'; } diff --git a/ci/release b/ci/release index 5149c64..b166828 100755 --- a/ci/release +++ b/ci/release @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -xeuo pipefail cd "$(git rev-parse --show-toplevel)" diff --git a/ci/test b/ci/test index 269510d..5aaac7a 100755 --- a/ci/test +++ b/ci/test @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -xeuo pipefail bazel test ... diff --git a/contrib/makerel b/contrib/makerel index 045b422..de614db 100755 --- a/contrib/makerel +++ b/contrib/makerel @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -euo pipefail zigdir=out/zig-x86_64-linux-musl-x86_64_v3 diff --git a/release b/release index c3a4976..d49de26 100755 --- a/release +++ b/release @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -xeuo pipefail sign=(-u motiejus@jakstys.lt) -- 2.36.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) by mail-b.sr.ht (Postfix) with ESMTPS id C0C9A11EFC0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 28 Jul 2022 19:47:17 +0000 (UTC) Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-10e3852b463so3586422fac.3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 28 Jul 2022 12:47:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1X1kmZLyj4O7fbyQVYj0WvgfhXov5fohPzPdN2JcHlU=; b=AER75cZ1cZcA4JkXpIrkJ9tvtLgltWuAzjymTMN+NDkvAbYOl7skEeIgAiOFAQMmFq 3EeQzHNKOHxo6tsE5pVkeYTZaI1+it49B3aPrGVGEeHvyX58sHqW9WFaeTTQ16Fkz6Sq TO3aCBngShJa96HwjzEErzN8a4tLagcXJoT26pbd/aE4QdS+QyHBuXEOSwsoDkFmXpV4 hMSeF/s4T7XweqVImQ6vJkfBCNgETyYlhqbh4fmitgrsSvXhmOKLfDQcrB+Z5w2Dfy8n HeSUPmJMw99mqnYxKFdjuAdJD3nJgK/8H4DZO+oU9WVbRrr087UeUMYlpvqbz1/J7hhO WzhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1X1kmZLyj4O7fbyQVYj0WvgfhXov5fohPzPdN2JcHlU=; b=xoRL7sL0PVouUgNzDvkHFUZAeTO9BwePplFZZXYNeI3MP95iqB/k7hiEa7DJX2lBjM rzwaprXx/1XiZ+A0teWUMxYq2cJy3RDcmyu9/Z/L6u0YKsH/OqkbAFbUdZeW6YCI4kFb v0IXj5WqvCaXp5JwkLT9XRAbJmvOLgybT3FlXUDev8ulV+WYlx9KzmqmL0OuRuxMu4TA mA0Muo1pUmMHDh46VxawINHllcFmL0K1P7SFd2ryCFMi8AWGR1w7Fza1iRFRJ2INUiWt RGYuBvNXLi+TrTEhhGB0BWB2aBCOt5DKMwi6ryjV5F86bWf8DaS5oyb+ejBJNwKzaqgd /Uiw== X-Gm-Message-State: AJIora83HOY+O9jkO5I/26gKLXl968jSn7EfVix19HoXkgHzJ+9zlAlQ EyU4VZUxhXV05NQfkoXPwjYxSQ1/7hIT94edUIo= X-Google-Smtp-Source: AGRyM1ta7uAwtLddkUTA26k9NzRwJ8y8RYQUriPieT5iC7G9uqpNMFDAAAs0zwJlTq4LAI+ujenE5OqDJt2b8G0ekFY= X-Received: by 2002:a05:6870:a118:b0:10e:631c:5f3d with SMTP id m24-20020a056870a11800b0010e631c5f3dmr110995oae.116.1659037636813; Thu, 28 Jul 2022 12:47:16 -0700 (PDT) MIME-Version: 1.0 References: <20220727203353.1672954-1-luiscmholanda@gmail.com> In-Reply-To: <20220727203353.1672954-1-luiscmholanda@gmail.com> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 28 Jul 2022 12:47:05 -0700 Message-ID: Subject: Re: [PATCH 0/2] Support NixOS and others non-FHS Linux distributions To: Luis Holanda Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Wed, Jul 27, 2022 at 1:35 PM Luis Holanda wrote: > > Currently, the project expects Bash to be in /bin/bash, but in certains > Linux distributions, namely NixOS, this path doesn't exist as all > binaries are stored inside /nix/store. The only thing that exists in > /bin in these distros is sh. > > This patchset changes all the shebangs to /usr/bin/env bash, which will > work across all distributions. > > The first patch changes only what is necessary to have Bazel run > correctly, while the second one changes the remaining scripts so that > contributors using NixOS can execute them without much problem. > > Luis Holanda (2): > Support NixOS and others non-FHS Linux distros > misc: use /usr/bin/env in scripts Thanks, applied. For next time don't sign-off -- that's unnecessary here. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oa1-f43.google.com (mail-oa1-f43.google.com [209.85.160.43]) by mail-b.sr.ht (Postfix) with ESMTPS id 726A011EFC0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 28 Jul 2022 19:54:08 +0000 (UTC) Received: by mail-oa1-f43.google.com with SMTP id 586e51a60fabf-10cf9f5b500so3618201fac.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 28 Jul 2022 12:54:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=M3ZKMew3WW1+uBDJoQxk2d84eKMMvUxo8mlnKoDakpc=; b=LOcdMVyNyFSxiYbPpivz7Z6MKEK7BGlpcItSPk+jfBByt5ZR9s9uRgScpZyCoJlEPQ rNwID2ja8hhBOPK/uRhFy4ukUzgJKK7jCm/ItbJEMaKXu+/Zft7B1RSD1xwetfiSO8ip vR9TNnmGBPZVsyGr6zhlJpLmFQ921JrQGDm8vWhYcde569j1UHQ8IdRjQSW0YswSh3W1 lJ3QiE1yYqFOzaUTC4NiCPNmLVkqPPmNVXkOJz1ykY+VHsh/oVzJ1UP8mZ45TF+Bq4kI r1KGZUAeZnRMdjYqC5qrVdrystgB5KAI9V2zB0YlYdgiHZuIQo6evRsJKJiKZ/uddfKW kNQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=M3ZKMew3WW1+uBDJoQxk2d84eKMMvUxo8mlnKoDakpc=; b=Mt/l5KtYVK6JjMb4xRehzy2n+BV6LczZ4gK7CeB/ouj1t32Es6jcvybAcb/I4sKYyi zxHRc/6UfgYINfhjk5qcc685NFA3vTbJMTMwWMb/AejB0k5MpE/ymS56vNKW/YjKFhUK GdzHSN7HcPtsSTfNI6RyVKdJXAgVNpqlOwFd+U5T0LkYpJmFtdFq+HCXkrZFWbqXxz5z 9nUb65qgQFXGJ3fvbRTanovAunjjjBNlHpHRtsJvjrfG9vXkhGzb3tffQphoAAqrvXvk ruFuDaJOJdgSA5ebU1n/oU2t2Od5Q9gV2FeBRN3SeRXBdVqeU6qF9qhzld1RSCbhoHOZ KrzA== X-Gm-Message-State: AJIora/Hw737Lq5KYb7S7Y2ka/kc1tybwolmSlXXKwFSypFW3NGNHSGS +d5HaG0t+2KSfwEaCSq6uJhILbG0I7gkcg== X-Google-Smtp-Source: AGRyM1vnhn2Wu3z1qBQ8WSZ4qGlx7+SMqrLP+9laH5jK4mCWi9nmiRQQOGZ5o7eFAYAmkkzXaHfviw== X-Received: by 2002:a05:6870:4388:b0:10e:803e:5071 with SMTP id r8-20020a056870438800b0010e803e5071mr120170oah.62.1659038047709; Thu, 28 Jul 2022 12:54:07 -0700 (PDT) Received: from [192.168.0.2] ([201.75.167.67]) by smtp.gmail.com with ESMTPSA id q22-20020a056870e61600b000f2455e26acsm883856oag.48.2022.07.28.12.54.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 28 Jul 2022 12:54:06 -0700 (PDT) Message-ID: Date: Thu, 28 Jul 2022 16:54:01 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH 0/2] Support NixOS and others non-FHS Linux distributions Content-Language: en-US To: =?UTF-8?Q?Motiejus_Jak=c5=a1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht References: <20220727203353.1672954-1-luiscmholanda@gmail.com> From: Luis Holanda In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 7/28/22 16:47, Motiejus Jakštys wrote: > For next time don't sign-off -- that's unnecessary here. Thanks for the advice, first contribution in Source Hut. From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oa1-f53.google.com (mail-oa1-f53.google.com [209.85.160.53]) by mail-b.sr.ht (Postfix) with ESMTPS id 50E4011EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 12 Aug 2022 03:10:51 +0000 (UTC) Received: by mail-oa1-f53.google.com with SMTP id 586e51a60fabf-10ea7d8fbf7so23716771fac.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 11 Aug 2022 20:10:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc; bh=OvzaL/b2JIuLqdwq3IORh34Z1rM/m/uAXm6MNfTIKqw=; b=Y1de+fXouMuRC+4OVwmKiUU85F8qIds7Ldy7HLZmv9FF+YMF4K+vwOhuKsLf18bnvw tgRLXMEc3793BUsYsC0f7tuQDZ1i1p8Mv3EAse5t3Q2oFmSFspxnpfRIaeEPfuUasHbe HbhnOWJhbvb8a69VFAXPkmtBmgu/xSXeQM5MOrfzMJkLbumTCwGGhcwTxWvqIlMuYgex rttsAq4Yul9CjcrSHacD5XfLd8mbeKkhp1acVO1110Ukywy5IU3Czy63E1QYZLe3yk/g vvUFKSYq/GrHdGMsLkkLtiMKbpDBDL3yUDSlVAm9zUnlxhogNLMluBmB/fUzEhdKnPND AVRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=OvzaL/b2JIuLqdwq3IORh34Z1rM/m/uAXm6MNfTIKqw=; b=lueMsA0iY6ThJVU310h4n6zjuZXSSup9G7ukjO0a3/GITJYu/vjfQxqSK6W2mkevvB oZtnxQRLcBwaLBLcr2xZ0l3OduKYwuMLGm58e3QwFM525uM4sR7ihVE+hb190btkunCv OkCs1cN+7o6y5JAJ/4dtz2RqoVCpPkFsbGqnKzYhX/5WGcGms5CVFsuVcBSqrfwxUbcA O7YEx1VX0RyZ2SNvN9xh8CeXqoQuAZHmOVuWdAcyP+3libHz+bZlh6p6EaSXPpF8YM10 rP+NfEQDfWwRaLxAwu+WyzVJf6lPh33GkaK0eQCs6dLd6OepntrXsaJK0xH+DREqER9I PYLw== X-Gm-Message-State: ACgBeo1whcPtaS8bUFhfBC8G1rs2Lk+mUxI4RJT7LhKXFfoBb2RmfKOV +YLILXtQRgbKpWEkHxhQ9yu2KYbZK4jqlzA9Asmb/vibGok= X-Google-Smtp-Source: AA6agR73vYCQ2Cp2MweANst1nlNAZSL5aZ0VZWj5UGZ+zUx5eTckzAwyIcOtGIIaAMH9MGfK0niQDsV4bU2h35wap0Y= X-Received: by 2002:a05:6870:8904:b0:113:a785:b09f with SMTP id i4-20020a056870890400b00113a785b09fmr4932714oao.216.1660273838844; Thu, 11 Aug 2022 20:10:38 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 12 Aug 2022 06:10:27 +0300 Message-ID: Subject: bazel-zig-cc v0.9.0 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, Bazel-zig-cc was released. Backwards-incompatible changes: - Requires Go 1.19. Notable changes: - go 1.19 adds "--no-gc-sections" line [1], so we could clean up this from bazel-zig-cc. This is why it is incompatible with older Go versions. - go 1.19 uses `--compress-debug-sections=zlib`, which Zig understands since [2]. This results in significantly smaller binary sizes for debug builds. - support NixOS by Luis Holanda - upgrade zig 0.10.0-dev.3529+44a6172ed [1]: https://github.com/golang/go/commit/16e7613b2e1861b25c6549051337d1d8a850cf63 [2]: https://github.com/ziglang/zig/pull/11863 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=tecton.ai header.i=@tecton.ai Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by mail-b.sr.ht (Postfix) with ESMTPS id 54FCD11EE5E for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 22 Aug 2022 14:28:16 +0000 (UTC) Received: by mail-qt1-f177.google.com with SMTP id x5so7973001qtv.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 22 Aug 2022 07:28:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tecton.ai; s=google; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc; bh=0FaUGogP99VFlV515qvsOttPexbmSEDINNNuiGcAFLQ=; b=myRYmPEew/uqEMlLs+dya7upg+Ku8UAi5H/Ko7LRxKRiqxooWMBhX6qByl0cGj1BtH 7lSa4g0gDMOK3Nt6ETUCbQYQsCA9ZeGHdScdAp+0ksBUUfmp8Kg+AOTasukiNbure6OK +5L4HIx99Jy5k/tDgy0j0rIosaaDosL2uOhPVEbJkLZim3t6Icb9HMLIw12uGXTM1bbk gewyuJS4lsfm5MewPvzL4Jzv8UXC9cFYvPy3BcjPhwk/It8o2+LygxITDE0BN5HnH24I jd5d1JShrirxfqznYrq9Cbc1EBQ7nmjFWJcbJsZEjiYMSzFPXodzkrPX+r7XYvFCxaqY O8Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=0FaUGogP99VFlV515qvsOttPexbmSEDINNNuiGcAFLQ=; b=UR+/h2zXUo4XMcvDy6S0MWnGJBpo9ja8Lcr0B7eEFZ771q2l24Ea9jen2DEgxOD/Th eKaUUlpJyzJWTulEQKT3jCTEdW+Jo6WLS0FY6JMYMN3L523i5zbCR8ZHFZdcsFupaP3U DL1S2hQq1T2G3YaExRcm5Dd1oAMFIZe05rrWAAkCke3iIlmM3mZlIifrVSEdXPKQw4IN TNDicvxR6zzPzovu16Ff2lz49PyIJ0CgaHKcadJR4XvIZRDpeuGIrZMB9s+1H2oGEbTI TO8Q1PxjQIdCivMjc0hxaeAkst+7ywivFZ7SndMWBPHZvpTBy+kwrh73fW0tiZBlO6nk 73MA== X-Gm-Message-State: ACgBeo3HEbCDt5/I2VSixEWpwoIxHlUpNHs+ntByW+CmDryVdJkmpMza C5e07jDx2kt263q0PJKhOfChMeUH6eR0THnUAva9yJTiF9266g== X-Google-Smtp-Source: AA6agR5KcFftNxZIzNkfGY3ZTIM3V4H2EQ2iFXdZndc4FXOPEFDHpvoqYI7yHjSVqy8XTtdjICtyljk3zDftTRhfaBo= X-Received: by 2002:ac8:5dd3:0:b0:344:94e6:d667 with SMTP id e19-20020ac85dd3000000b0034494e6d667mr14471839qtx.409.1661178495743; Mon, 22 Aug 2022 07:28:15 -0700 (PDT) MIME-Version: 1.0 From: Mike Eastham Date: Mon, 22 Aug 2022 10:28:05 -0400 Message-ID: Subject: Re: [PATCH] Add missing include path for MacOS platforms To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Luis Holanda Content-Type: text/plain; charset="UTF-8" I found this thread while preparing to submit a patch for the very same issue. Hopefully it can be merged! One nit is that I believe the "{}-macos.{}-none" path you added should be replacing "{}-macos.{}-gnu" instead of adding to it. If you look at the Zig distribution (zig-macos-aarch64-0.10.0-dev.3659+e5e6eb983 in my case) you can see there are no -gnu directories, so I believe that was just a typo: $ ls -d lib/zig/libc/include/*macos* lib/zig/libc/include/aarch64-macos.11-none lib/zig/libc/include/aarch64-macos.12-none lib/zig/libc/include/any-macos-any lib/zig/libc/include/any-macos.11-any lib/zig/libc/include/any-macos.12-any lib/zig/libc/include/x86_64-macos.10-none lib/zig/libc/include/x86_64-macos.11-none lib/zig/libc/include/x86_64-macos.12-none From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by mail-b.sr.ht (Postfix) with ESMTPS id A572611EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 07:19:47 +0000 (UTC) Received: by mail-oi1-f178.google.com with SMTP id n124so4128640oih.7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 00:19:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=6zsEA5ROHIaWczJmUs9TIDq1H8FQUqtskW48jtXZh8U=; b=WrIgsvXVSVE3sUOG3GBYAczzMKmmUiVCm+1e0Bbu/vPxOiK7d9C+zFL3pExX60pR9S ytwYop74njTfEdiAQRcIu1d/ejQSZ0d3BRLMlGFdZoGDxcKwEvJgneCokYR+K5kLeNCL iumvaJ3jk+NU1Kukujj2mRuLaKwMYZrdNtw8HDVvnKH+xqf/dvCj7004m+zx+pJdf3qQ hJdhS/GNEy9tZGujeUL5WSYl2QGiW/G68lF/zks6992s4E8zTAoE2vQ/ckHW4RSs3NHT loQq60MS+y3wNJNsC8zegbPdufs3VI2JJzg/9O217YdXWM13HzOKi0b2p56RTf23o78+ yQXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=6zsEA5ROHIaWczJmUs9TIDq1H8FQUqtskW48jtXZh8U=; b=0iwnUvjsk9pyixEGTNO7/k+CwiuXhjuPsp+aD7uLd6sxOnyhR1Rr9HZAKGeXM3L1NL YHn6+fZ0N8ibCZgycIAdmZ2T8kdDFK13bIBoopon9GnyYcILSIRbhAWG3IL88c4Cb3DI 2mf/u2unyxwr5iPHCupymb+VOHloQkMEN9Tt5dfjTWrzStPkVzOCU2WqXM7V7hZyvB4m zzDqetieUSGIbbYaKmOg/Lw4zCDAXROJpIyDd61o6ETqAt3LLrGkQ0b1o2BAud125aUw pnHRqqbsNQw5qsyYntgnPLro7OltzWDLHEFzk7CFCrOCFDgf4XOhQJ1TdkTj5MRJh2KJ VSnw== X-Gm-Message-State: ACgBeo086hb4XC/7Dvh2Virpw6nNfCoL4jBoPQnmHGgODeBo2rMKeLRZ SdX90hyovoHT2c9ErqPrzWQl0qBitpsjeSXoL28= X-Google-Smtp-Source: AA6agR7WUdNw7VLbTkGnIeFhDKm7nlMyngIs6rt5xJJEJVJkXRNcMQGWAdgcK+vfqNkF9OQcxA3s8uUVwnD61A3H5P8= X-Received: by 2002:a05:6808:190f:b0:343:a58:d61d with SMTP id bf15-20020a056808190f00b003430a58d61dmr782979oib.216.1661239186909; Tue, 23 Aug 2022 00:19:46 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 23 Aug 2022 10:19:35 +0300 Message-ID: Subject: Re: [PATCH] Add missing include path for MacOS platforms To: Mike Eastham Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" On Mon, Aug 22, 2022 at 5:28 PM Mike Eastham wrote: > > I found this thread while preparing to submit a patch for the very same > issue. Hopefully it can be merged! Hi Mike, The subject like seems reasonable, but your submission is missing the patch itself. Thanks, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=tecton.ai header.i=@tecton.ai Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by mail-b.sr.ht (Postfix) with ESMTPS id AEC0E11EF83 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 13:52:23 +0000 (UTC) Received: by mail-qt1-f172.google.com with SMTP id g14so809723qto.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 06:52:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tecton.ai; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=7bXekKd7tvx/coptKr4cmDzXTJeOU8pK9pdf4IaDJxE=; b=D5NGNff2j2PvRfFJ/LwlU4vC4vQCWsIv4uuvps6r2b9rcPtXRghKABU1t/l6tDS9th sevm6uhIxWPrG+Xxlv5NI66WPNrslrLMoNrfGIXvxxUUKtkBP1AFn+P/6f0iYspklre6 58Wm+cEQqTOLwZq6aaxd6QAmpvU3AyAvofDMEh9nwlzX8jxk07kgPTjRxI6F572opaDU /YHTaa0P1fH0f81hN3faGRY+v96OEg4PXX1pdi71Ars2qxN9wSh6U8iIMJTUJtKbV1Q3 m1+yI6rD0BxhOUWwHL8b6/gB40i0vHpgI6gKZACXqvZN8OK5kEeUtTeWnPcwgydkrCyk Yr4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=7bXekKd7tvx/coptKr4cmDzXTJeOU8pK9pdf4IaDJxE=; b=JEizfdgirIPfD1X2Xn3/2pJXhu/7gMTYck8d0FhL0p/CR1RYWPfgsaylmGfg7saIbZ 7iZMCbmAbbsXuobwb7dW3Etqz/JUI2kfaL8vnbDJnSMSxLicbn8GJMrBSa2MEoCFtrdV Y9l91d4VXhJwU/XnBvQcVb6VljNMDqoeUbv/ZGJubkiYCM8rbdwvPGHe8/tEDQxDr8Vj xSqKPrQ4bmxOHFIpRYN5WqndvN2ewSWl9qcQhaEYfxnSXh+wF1Nd5qk5Qyev6XzYAUNj bbmd9ziZymPy9a+kujJr2WtJa6xCquXmgESpzImm3FkmM/RZs5wke5f4e0klvBiPP280 QD1g== X-Gm-Message-State: ACgBeo1Gqc4xx4nLA0Ol5cQ+UkwvTy2yQTdhWsRyc1+K2W6IJzcGxfy6 //ZWFpWHxl8dP6IoWWYg1k8ESYO5Bnk+L93VHd3pq2mbitRHHA== X-Google-Smtp-Source: AA6agR7Kf21QHF0pb+L+wpWo+wCOBg1pUhgFNRILndGzWlmPJTzpIlGWIh/eY5IcibUONlUdl1QeSHfGR5xX1vXcw7c= X-Received: by 2002:ac8:5dd3:0:b0:344:94e6:d667 with SMTP id e19-20020ac85dd3000000b0034494e6d667mr18596305qtx.409.1661262742104; Tue, 23 Aug 2022 06:52:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mike Eastham Date: Tue, 23 Aug 2022 09:52:11 -0400 Message-ID: Subject: Re: [PATCH] Add missing include path for MacOS platforms To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" Hey Motiejus, I was trying to reply to the patch submitted by Luis Holanda 26 days ago[0], but I suppose I did something incorrectly. Sorry about that! If it would be helpful for me to submit my own patch I would be happy to do so. [0] https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/34242 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by mail-b.sr.ht (Postfix) with ESMTPS id 0CA6811EF83 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 15:14:00 +0000 (UTC) Received: by mail-oi1-f181.google.com with SMTP id u14so16408944oie.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 08:14:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=UiBbGSUcRFrswlDf6dTZPvgknhWjlPB+Pss1mV60VCc=; b=N6jjJ6h6JmEyxA+/5eKax7hkg3q3r8REAO5GXZUWNVhMPfpc/bXF74m8w2LhNfxdSd hLjMlk2+1QYlrlQ3238JA6ap6CEpNuowZLU8jDtKaGoTDMSEQL0cX3cUu9+W/rLoWPl4 N0A89BhjKQF1r3iFY3kLtB6L5XfshMTayLS4d1quqcuOVCG1SF34xZsJXp0IpZPfScNd iWwjKXjY1Ejnlnat/e4RPmjWND+7MnM8tP0xzpTefJqVUwX7YRujviUQ8ejWwUeu3uLm il/OsndSfHTJOzbFOwGSu0IrJ1URoil7znqs2lZEOXev2RMCHgDJ1zB2nEPlEwZoH6Dx jm6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=UiBbGSUcRFrswlDf6dTZPvgknhWjlPB+Pss1mV60VCc=; b=nXkkocwHjS12hwEmRoCJEuDyEA5/Yfyc8rg/Hdw4U7HhKrFqxiBxgIQGDrc+036xgO /3cYHviSRGVCuwYv4yzhKmT9OwV2HCeBAlQn1hK5wH0YuScVrqjYEY9PrfztXDEoGWzx 0hbgBpEV3Yd8FNV/QuFYtop7yOIcqJL8uDYZLqFBWsSLrBS5HwT7kIha/IkNXAM9sCOM bqfvdk1N+UyC0gQVo+5h0KR0bmkmqJ8xRCKstlbfxB0vkp/WkYgsxU/4e3i4lcNzZT1n L+EqzC5FH6dHZhYmV4WYNWKcKT+KvSta0nWv8roYmbHJvXHgVpu+8OHPdk70NQU0T3Th 4Otg== X-Gm-Message-State: ACgBeo2jw2zx+vpN5jWqlaJs4WCe9crw0+L5IQXWEJhZvx30LGi0r1Dd ZSslqXzTW6GPl4YKCXcfZ8llj6STsY5nSucG2Ns= X-Google-Smtp-Source: AA6agR7EZXa3RFai+xgmpWX1+wBSiFO8yPakr89uSj1HUbwpRv9okSa+K4wmADtuNKXmmaCwN2c/4YUVFFwwB+dP20o= X-Received: by 2002:a54:4899:0:b0:343:3f7c:713d with SMTP id r25-20020a544899000000b003433f7c713dmr1493575oic.116.1661267639367; Tue, 23 Aug 2022 08:13:59 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 23 Aug 2022 18:13:48 +0300 Message-ID: Subject: Re: [PATCH] Add missing include path for MacOS platforms To: Mike Eastham Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" On Tue, Aug 23, 2022 at 4:52 PM Mike Eastham wrote: > > Hey Motiejus, > > I was trying to reply to the patch submitted by Luis Holanda 26 days > ago[0], but I suppose I did something incorrectly. Sorry about that! > > If it would be helpful for me to submit my own patch I would be happy to do so. Thanks, I didn't capture this first time. Applied Louis' patch and per your suggestion removed the darwin-gnu ones. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=tecton.ai header.i=@tecton.ai Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by mail-b.sr.ht (Postfix) with ESMTPS id 3B24E11EFF5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 17:10:24 +0000 (UTC) Received: by mail-qk1-f176.google.com with SMTP id g21so10786492qka.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 23 Aug 2022 10:10:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tecton.ai; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=rNJlO4/q80kk+PEPtW5ue8B+S2Qcu1i/6aKbO8a3aoI=; b=ZC4OgnYZUU79FwXdoX76CN+40U8f4wDu0Psb5HuI/OdHa9++nSKj+j9iPP/lT3Hf2L PbRie9tQHGfSDfovYbBGYEtrTbAqfCuTNa4Rjc+PUKBsNCavBuctA01BRIQab5lzGzyh cTql61htQbUj17nxpjiKqEGJ7U0qE4itwuSMd3Ysbsxsto9curOzjHreN1IuRTlrpmCr nOdJkGh//1GTP1eXO6OpOiEZ+GD48y+V5iWsF89H2aP7O95vc8DrzIxFZTU0LcsMLpBn jOreDjZxYuyWhtMDrrQxXbSUMVR3rMISUWR/NG+7vK6jRiVq65F/5S1MV8VHX9LiE7g/ ISkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=rNJlO4/q80kk+PEPtW5ue8B+S2Qcu1i/6aKbO8a3aoI=; b=v6BO8vSXIB9+WAEe+mbk7IMU/SCNUGRMHkgI2WbHOzfd98j1Y6/a3/a/YUOelxSIpz O85Gp0u8azxGDG6gcygoq8elOcRNjvS11TNQDZDmtFsUbSfFtMII/PTss0EQdnDXu9u0 nh0pHf0lsbv39t5htMX6LWj4GMivbn/xFBbX5FKe6GaFylirGk0FlzvsaPck84/FXz0G lBGn5j9GABWmTuOZ6A4EDh8ymEkaGn3arHVng+UtBmVx9279izVchHfecyto6TOH0a8x 38AtYfJ0NvodF/ytn0S2sN57UtSYRMJq2dQxWl4ukjMgnj8uk2EwMlGT3jAtCvek8Sfg FxwQ== X-Gm-Message-State: ACgBeo25VjTDVduzxYBQeZiaxYsKHqe7DI/7flkFgnpfuwwkUsf8i0kl pHM9WeRu5eCcNv3uB7d8kxHI0NdZ/ZgFNKb4UqPmVg== X-Google-Smtp-Source: AA6agR7lCoB9/y1yTlFbzgKSG6nBxE3xWn/5XsIZWIFm369jnjb5WxHYdTou1ZnbcRl1mAVDMltPLsYuiUwDGq1T4L8= X-Received: by 2002:a05:620a:4412:b0:6ba:e53e:3485 with SMTP id v18-20020a05620a441200b006bae53e3485mr16752631qkp.461.1661274623761; Tue, 23 Aug 2022 10:10:23 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mike Eastham Date: Tue, 23 Aug 2022 13:10:13 -0400 Message-ID: Subject: Re: [PATCH] Add missing include path for MacOS platforms To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" Thank you! From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 2FA7811EEDB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 07:27:56 +0000 (UTC) From: ~kmicklas Date: Thu, 25 Aug 2022 19:24:38 +0100 Subject: [PATCH bazel-zig-cc] Support configuring cache prefix with an environment variable Message-ID: <166149887610.13477.8916629882571649449-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas The user may want to build with `--sandbox_tmpfs_path=3D/tmp`, in which case the Zig cache will not be shared between sandboxes, massively slowing down the build. With this feature, the user can pass flags like `--repo_env=3DBAZEL_ZIG_CC_CACHE_PREFIX=3D$HOME/.cache/bazel-zig-cc` together with `--sandbox_writable_path=3D$HOME/.cache/bazel-zig-cc` to put the cache somewhere else which can be shared between sandboxes. --- toolchain/defs.bzl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 965cf22..c8b5be0 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -79,7 +79,9 @@ def toolchains( ZIG_TOOL_WRAPPER =3D """#!/usr/bin/env bash set -e =20 -if [[ -n "$TMPDIR" ]]; then +if [[ -n "{cache_prefix}" ]]; then + _cache_prefix=3D"{cache_prefix}" +elif [[ -n "$TMPDIR" ]]; then _cache_prefix=3D$TMPDIR elif [[ -n "$HOME" ]]; then if [[ "$(uname)" =3D Darwin ]]; then @@ -149,6 +151,7 @@ def _zig_repository_impl(repository_ctx): zig_tool_wrapper =3D ZIG_TOOL_WRAPPER.format( zig =3D str(repository_ctx.path("zig")), zig_tool =3D zig_tool, + cache_prefix =3D repository_ctx.os.environ.get("BAZEL_ZIG_CC_CAC= HE_PREFIX", ""), ) if os =3D=3D "windows": zig_tool_wrapper =3D ZIG_TOOL_WRAPPER_WINDOWS.format( --=20 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=oJdQI8cGPBGSPfeNCNHqTUaYSI5F7OsizcNMwxO1CBc=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1661499911; v=1; b=FKUvpqRZn48EuM1Clnn8smebPS97WzQbLOkOg8wIcLEIBANQpZ9+2cI+QFGpZn+p0kB4hp43 WRxr4O8CghhS4Ty/8rEuX2Mw0I7UJW0hLpoaktE5kp8ukyzylq7/NjlLqe6faPf7XGcBveG8e0P OvtLuP/oFGH33g4NcokYJMrS/ndlYsT3cZHAkP8EIw/v81efpDBz9bHNnrK5/bjkA9epRbZIt/t 9Jgh/3evWvhwLgFP70HESwNXbb0d5TbLdT13cCvFfZI6DkI5DTF9ezrIGL1AR5x0n1CpJAHKm8i TqP5Ubmcpj+W8yHasex7qDNCfWoRnywWujeDvk7jgIkiA== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 899C411EEDB; Fri, 26 Aug 2022 07:45:11 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 26 Aug 2022 07:45:11 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <166149887610.13477.8916629882571649449-0@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 bazel-zig-cc/patches/.build.yml: SUCCESS in 17m14s [Support configuring cache prefix with an environment variable][0] from [~k= micklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/34941 [1]: mailto:git@kmicklas.com =E2=9C=93 #831878 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/831878 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) by mail-b.sr.ht (Postfix) with ESMTPS id 3E7C811EF6A for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 08:08:40 +0000 (UTC) Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-11ba6e79dd1so1144697fac.12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 01:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=iOkmg5H8kC6sYToj5IN2l3Dx0MnC/eA4iGylZVpI+8U=; b=juI1V+/7KoFUYCnp6qJsqHiqrggnyxOzleApuW80+dDeWg3U1e3/8GrdBsnN+Z2zDH WKgYyG41aiCnB19lgl2UvyAPklUDBAEzBek6C+NDHxcE7s4hVyqhGjeW6KVTipaPnnul EPGEU4Bca3hYjaFatlHrNm2aihtEc51g5/JAurf7MUyNQ+rS2Hq4V1nC9n3UbFke3kU8 lsw2ZufrcDOgMz2c+95qTORaUIe0HWSGvYRJkpiAbJ9E9awCeyK3nlOL3WTO/MUuTcR/ qzxf/FGIk+I3Bw2qdcXO+hd+TPUlylblp5JP2qUT7KbnaCsRq5zWL4Ek0z2CuE/XOVPr pdxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=iOkmg5H8kC6sYToj5IN2l3Dx0MnC/eA4iGylZVpI+8U=; b=QMV1l7PnqWEZAcrKkEi/heXhp9gXq+ydD0y1tWe66Dvrm//kdZFNgBM83pw4loXxBk vb1NFmpRtVdi6Zds/BYPq8Uja8ih6KtNDV9Mc2iPBSmYTdR2jlXLxh+9MtqC1YlOVwK9 J7ae17qPljNC8a/3czJEjURMkeEU7sE5+UEYpGL94yWrHtAFQ4WIi2TtAwvOKWJIoMFl jvzquOqcOlGaV4l5HMXB0832JKPDbeRs2ziIVoFtxTOcKYCXmkXXmp8aOojZstG47O82 ZgsmWr+qsEpqSYxSAkQsnqwdx0Yo/0H9xgc6u4Mg5lf/XxZ8TVStYWFa7hX1Djo3qmaI 3UjA== X-Gm-Message-State: ACgBeo2djEKtwyIXs6fHXZra+NWPHUOZYnbc4+CVw0uZeCctrXFu1GYG HmbM/DZ5/KPJRGuN4v+SBaX4nD2cES9RodzU0Eoi2xwYmRM= X-Google-Smtp-Source: AA6agR49KCQy6GE5DZjvLSA9n41ys6JQMPc19xV1D6a3nfU7M/3p6wpPG82CRH33KzzI2CvDPj0/LIB7z+qzRkly/Kk= X-Received: by 2002:a05:6871:154:b0:11e:33b7:ddf7 with SMTP id z20-20020a056871015400b0011e33b7ddf7mr1280671oab.116.1661501319573; Fri, 26 Aug 2022 01:08:39 -0700 (PDT) MIME-Version: 1.0 References: <166149887610.13477.8916629882571649449-0@git.sr.ht> In-Reply-To: <166149887610.13477.8916629882571649449-0@git.sr.ht> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 26 Aug 2022 11:08:28 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc] Support configuring cache prefix with an environment variable To: "~kmicklas" , Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Fri, Aug 26, 2022 at 10:28 AM ~kmicklas wrote: > > From: Ken Micklas > > The user may want to build with `--sandbox_tmpfs_path=/tmp`, in which > case the Zig cache will not be shared between sandboxes, massively > slowing down the build. With this feature, the user can pass flags > like `--repo_env=BAZEL_ZIG_CC_CACHE_PREFIX=$HOME/.cache/bazel-zig-cc` > together with `--sandbox_writable_path=$HOME/.cache/bazel-zig-cc` to > put the cache somewhere else which can be shared between sandboxes. Thanks, applied. Fabian, would you like to keep compatibility and do this[1] for Windows? [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/15f957859146deaf524bbdf1a4b537124b305405 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) by mail-b.sr.ht (Postfix) with ESMTPS id 9523611EF8C for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 08:38:29 +0000 (UTC) Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-11c896b879bso1254063fac.3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 01:38:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc; bh=cpK8UTVU08tIWKMrxkziALp2cye54mdoDIYGSuig7lI=; b=BnyG+7/NibGRdwnEkKMA8Z24uCtX8KPI9AU+Iw0HSPaO5woiyoPB9+4kIEu88+Wyqp dQnK1RoTj59q/a8XbleyDu0ED0h2LH1QiFG03wp24DKpdInMP/LB+M2sQRAwLmYdQtCZ Oig4/mZYS2KBha5d4SiyOnOktXSgpGzsUzbYVS6xT19vr488bzyo8mKXaWO5qZ+sPqy9 3wssbsxJn39eF34wSTH0yxX1zNvPm0rRuUutk1vilIENocSupzAk+mxNEgW0Q5fvgpRo EcPdhmr6aX1rrqg9Gw9uz3sW9THQODNLh3W9lS1qMtrS7hoOGvfeaMvXcF/VEdaK+zX9 3iTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=cpK8UTVU08tIWKMrxkziALp2cye54mdoDIYGSuig7lI=; b=j8vgK6xND5v0H3bGEtHiqnINbNTq9D+tecbIsIy7diiJ8o6QYuhcv24XnwV+6fD/AU egtbi5ZuxuQY85QJQjFqUbgfQ8gQaZBYPP5D2yLCdmgZXw6puXQYI2jV3Qtt2qggI7Io k9JjaF0Blqxs620plGICSrM/L7qVIMUGvCU0SjAnYSZuV+m0MTD2d+apXyRoI75tiCey 216Yeti1OPuxbP2Asf1SlKN89IYwuraE9NqmzBRbynUgwwxPUSI4TnBG4LQQa3vNvEjW AuoohUL+pyegdRbOn6iVCmRncuPTbbVfxf0GMZD4Mx1oQK8CxeLMx7J3IJ5U8yOWzwL/ ZW2A== X-Gm-Message-State: ACgBeo33Be18p3r2ESaHUkqBqyfRXHON/gzItdvg2aq+D25tCgQYaoJQ KaN/vmzRs/B8foB8OYjRK2KEVqCRFjwQQPupB88AeWHxE+4= X-Google-Smtp-Source: AA6agR4/8eK+uJyRNxbPftkvtMpuWfhReKcdn/P9AtMI5C6tsCd1wyWNGN7gNbKnAcNo6kzCc6jddC16pH+520xbyUk= X-Received: by 2002:a05:6871:154:b0:11e:33b7:ddf7 with SMTP id z20-20020a056871015400b0011e33b7ddf7mr1318453oab.116.1661503108578; Fri, 26 Aug 2022 01:38:28 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 26 Aug 2022 11:38:17 +0300 Message-ID: Subject: bazel-zig-cc v0.9.1 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, I just released v0.9.1. Changes: - [Ken Micklas] Support configuring cache prefix with an environment variable - [Luis Holanda] Add missing include path for MacOS platforms This does no longer hardcode (on non-windows platforms at least) the /tmp/bazel-zig-cc; you can point the cache directory elsewhere. Zig landed two relevant changes to bazel-zig-cc: - https://github.com/ziglang/zig/pull/12629 : add some resolv stubs. - https://github.com/ziglang/zig/pull/12605 : artifacts of `zig cc` are no longer cached by zig. This avoids double-caching for most object files, saving disk space. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id B7DD711F00B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 26 Aug 2022 09:07:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1661504822; bh=9v0CfrUdSZh64OPu0b0vU8NJU5RI6W4mHvINxqb0E1c=; h=From:To:Cc:Subject:In-Reply-To:References; b=FJ/llJ4/xiM8AwdzNSNPCAInHcbZ6+ouTOzpC6sAIPU9H2NgkqGt9YcLBlyJYqXRY +6nvT5JKfdsXMUKGe2GFB2WgR3iFM1Ujoh/VhVhwJH+Cu59tuI0QPIabe7IbnO21vP iNAUaa8jMteY+eGdjfPCMqtm7N2He+lVwvOqS/QA= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Fri, 26 Aug 2022 10:06:56 +0100 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~kmicklas , ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc] Support configuring cache prefix with an environment variable In-Reply-To: References: <166149887610.13477.8916629882571649449-0@git.sr.ht> Message-ID: <103137ae39e92e7032ed8b5998b5432e@hahn.graphics> X-Sender: fabian@hahn.graphics On 2022-08-26 09:08, Motiejus Jakštys wrote: > Fabian, would you like to keep compatibility and do this[1] for > Windows? Sure, I'll take a look at it this weekend. From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 52F2F11EF56 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 27 Aug 2022 15:21:33 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1661613689; bh=lk7Ka7YTW3+XNx+V5QY2I3th4yFnM/VkEh+FTAcP0t4=; h=From:To:Cc:Subject; b=L3rCigC4XvEQUaC8R4ErzWSfYdrUmAOvlddz/hXGxRJz91s8nJmQs9lXWkydR0dxU VzOlZMR6ieOtdpKBqeLD508S5hdiR582WaE6GzCpi+C8tHjcAj9mCwqmXX1LdO6BLZ U4TTRH0/m2XKA3iq4suI8XDl12ZWQ08PXVMqYNxM= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc] add cache prefix configuration for Windows Date: Sat, 27 Aug 2022 16:21:08 +0100 Message-Id: <20220827152108.6422-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- toolchain/defs.bzl | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index a95f76e..53fd161 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -101,7 +101,20 @@ export ZIG_GLOBAL_CACHE_DIR=$ZIG_LOCAL_CACHE_DIR exec "{zig}" "{zig_tool}" "$@" """ -ZIG_TOOL_WRAPPER_WINDOWS = """@echo off +ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN = """@echo off +set ZIG_LOCAL_CACHE_DIR={cache_prefix}\\bazel-zig-cc +set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% +"{zig}" "{zig_tool}" %* +""" + +ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS = """@echo off +if exist "%TMP%\\*" goto :usertmp +set ZIG_LOCAL_CACHE_DIR=C:\\Temp\\bazel-zig-cc +goto zig +:usertmp +set ZIG_LOCAL_CACHE_DIR=%TMP%\\bazel-zig-cc +:zig +set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% "{zig}" "{zig_tool}" %* """ @@ -152,10 +165,17 @@ def _zig_repository_impl(repository_ctx): for zig_tool in _ZIG_TOOLS: cache_prefix = repository_ctx.os.environ.get("BAZEL_ZIG_CC_CACHE_PREFIX", "") if os == "windows": - zig_tool_wrapper = ZIG_TOOL_WRAPPER_WINDOWS.format( - zig = str(repository_ctx.path("zig")).replace("/", "\\") + ".exe", - zig_tool = zig_tool, - ) + if cache_prefix: + zig_tool_wrapper = ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN.format( + zig = str(repository_ctx.path("zig")).replace("/", "\\") + ".exe", + zig_tool = zig_tool, + cache_prefix = cache_prefix, + ) + else: + zig_tool_wrapper = ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS.format( + zig = str(repository_ctx.path("zig")).replace("/", "\\") + ".exe", + zig_tool = zig_tool, + ) elif cache_prefix: zig_tool_wrapper = ZIG_TOOL_WRAPPER_CACHE_KNOWN.format( zig = str(repository_ctx.path("zig")), -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=5E6sxSf2ZXX1a2DrcA3hWyb5G48e8Oph2Nv321KR9mc=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1661614790; v=1; b=O5riAorNq06QMAdbcpBR4oFYJ5fEQ5NgmTb1RVM4AVCoQ9we1LyL+FSilOPXC1pgix54A6u3 Bey7nRs4WQTBX9pIqcrfhhCQ7fFpZ07HG8dUoG2VmAMhknU+ojF1eajzEh98PPjw2PpPDW+gYhE uQfUzL01Ibk9r123DFEA/1pBXaIjjayUcsHWfiiMejz4fR0e+cmDPxTRxrxhbZn/aqMjFT5IgTd bVoAesVLCnPxHxbVpQ2iAAMkRY3uR6R4BbTVoZXFaDbPpcnfIeM811EmBYRqj0a2WJhbr3M89Bw gu5rMALDRjqvbdXFxmS1AkmIMi+2kiBidvJtv39h9zcOw== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id F17B711EF56; Sat, 27 Aug 2022 15:39:50 +0000 (UTC) MIME-Version: 1.0 Date: Sat, 27 Aug 2022 15:39:50 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <20220827152108.6422-1-fabian@hahn.graphics> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 bazel-zig-cc/patches/.build.yml: SUCCESS in 18m16s [add cache prefix configuration for Windows][0] from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/34959 [1]: mailto:fabian@hahn.graphics =E2=9C=93 #832843 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/832843 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.53]) by mail-b.sr.ht (Postfix) with ESMTPS id 6E23A11EF92 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 29 Aug 2022 11:46:50 +0000 (UTC) Received: by mail-ot1-f53.google.com with SMTP id h20-20020a056830165400b00638ac7ddba5so5696434otr.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 29 Aug 2022 04:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=x0lFNpP5L+ObV4+f6IFR3E0AjaW8Z93zTXfDBDuTNWA=; b=KiD91MhGDTZ3PmvYRaOPYw/l92xYiBTbmwWaAIo6pdL7kT8dtBkULVLqPhl05rXyT8 8mzyvXawwV6XJSKWR8IxnJI6CH42HLQtYKNkzT/ZHjEzdnWiu8dzcekqSWmJOvdKwx5Z mTDyBIXdP5s4SLiXFZIGBP2hEVx6xc2BmsQQV8YaYUdHlDdfJ/zdz5Vwn1pAgB98rLX3 lq42KlUtEJTFypFzg/dx7S7nv40fYePFbVVWcZ4UXpNCE7q40AMOV/HTnXNJtKMW16fS N+XtahcOSjOD4CN+jllyqFqC22yOEvjyq0iEN23c2B3otVU3ImwLS6954MF1I5Wa0T2Z 6vtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=x0lFNpP5L+ObV4+f6IFR3E0AjaW8Z93zTXfDBDuTNWA=; b=hyj8QbDeF2MoHf3AK3q2N85zrt5YTygwRUPQmqSeImUVbLmdWE0pnP5DUI7xTWya3A lfjsIB1Jt4quyklzZjhmFTd+qvf66i7Y5+GPHOBwIOOFbItZ1IuCOEmdQsq0Af+Zp9Tn XfWwmNd/+nD8j5H5Xafxh0HrfxIiZDWgZ86oB7X9AEtMIZNLokyP/WRYW8ootGZWUmWA oaaIDmGLoPpWlPkzJjfYOxsZCmmthCZOS5UTzJ0YnYTen8Q6mA2AvXtEvgGsjJ+U11nK JJt5H2ay1ikjALfdPns7dgTDxZqzNMPozCcmSbcUDEEQKSNCBAGbgIZK9mxtxBleehjX +Fiw== X-Gm-Message-State: ACgBeo3bpdst8L9ChlFwXJoeRiXReFVVWDpOJ9oWkOrTMynkeswlB9gi WfbdGNMX3ZWlriOwcL0w6x65NDNoXSIrJm49aDk= X-Google-Smtp-Source: AA6agR7uTAmiG0/lWGZlTD1TXldy2nqE6VyscD8pIWS8rekNF7Pd201/NJu2wm2kS1Ma7vC2kJ7UEpzT2umsv5EQSO4= X-Received: by 2002:a9d:6452:0:b0:638:8437:cbb3 with SMTP id m18-20020a9d6452000000b006388437cbb3mr6246491otl.194.1661773609610; Mon, 29 Aug 2022 04:46:49 -0700 (PDT) MIME-Version: 1.0 References: <20220827152108.6422-1-fabian@hahn.graphics> In-Reply-To: <20220827152108.6422-1-fabian@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 29 Aug 2022 14:46:38 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc] add cache prefix configuration for Windows To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Sat, Aug 27, 2022 at 6:21 PM Fabian Hahn wrote: > > --- > toolchain/defs.bzl | 30 +++++++++++++++++++++++++----- > 1 file changed, 25 insertions(+), 5 deletions(-) > Hi Fabian, I've applied your diff and cleaned up[1][2] the accumulated mess, then pushed to main. If I broke anything on Windows in the process, please ping me, preferably in the next couple of days. Thanks! Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/e861c5b4bedb752adbdca9bfb863e9cc131c2a5c [2]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/342b239bb90e3bd8c35e64d6bc14924600e980c5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com [209.85.160.54]) by mail-b.sr.ht (Postfix) with ESMTPS id A21AB11EE64 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 30 Aug 2022 03:07:30 +0000 (UTC) Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-11c5505dba2so13797028fac.13 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 29 Aug 2022 20:07:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc; bh=pmtODwdqQDwI78SnRc0bQ6YRA+jpVfC0v5H1ES+2g+Y=; b=OF9SmF0rDDVH92ayCFnFGcwb9lR+7vXfkClxCgAh/+EiVZRmT0DkQw4QhbJ9vZX00+ jeaH1AOpH27VfD4q0EJ7KKwT7CV/Lx7R0i8MdZsq9ME9Hbg47QqiIeaIra/h5aVyM2fW CCmRhsGqY5ib6cYe66JPfe87BPMiYkJ5FHSXal6mwg6kvDrzOEmIN/zn7epAfsh9sJQr jGNVzj0Fm+mVwhHFKnyBpeANCaC1c7Mv8ioNB31OAqZHoxZQG+pNvJ9PwnlqguWdqYVW 705TUgAc1JUONkDqJ7GB+jZ/1yviKAgbCUDjGqXE4R4ulyzhHKdkKkQ5kIUHAgceMlRG zdnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=pmtODwdqQDwI78SnRc0bQ6YRA+jpVfC0v5H1ES+2g+Y=; b=x15/LvWFuYkKS7DM5dC40+iWd2xWUmdul6GLtzQQ64SwR5y+1s997UT+VxOoI5IhZR 9nVvA2HlQY3JTzFJ9On+ZAetAKaQ349+P5WTylpYeTbOqTWzynmb5G6RsdGs4WatyRv9 7cnCLsxg6Z3d+u+XSFVHFOzO2I6/DWL/53GqQn4CRHmZCKD4HyrFzubG+gnk9PHBKHCb DWuuV0gLWXR8zeYSPq6+xzQe9hHsuyA0uU8quxF4kMoPEcUmKlLuuhlzjNYCvUxniwKh Zgg8NY8E8AMZwoI98wyvG1JsS2Fonegh31+/Z4nF9NAI5W1/RJRDJz33xrZAWpQpPWEu 68ww== X-Gm-Message-State: ACgBeo2u5YIpP/GUyFqsspH710RWRoQszzeAEhwmL/1miHLq/5ylHZ3a Z6FsI84YxrikYZ0AMRgJcrEafRR4tbcSA9iWAW4= X-Google-Smtp-Source: AA6agR55v3ScfR6sHQZpMvXk04tC0JAWONPI9kBI1sjrkln3tpvTDWi88xzzp++aj/yPpzLo7UzQxvokrxd1U2oTJPA= X-Received: by 2002:a54:4899:0:b0:343:3f7c:713d with SMTP id r25-20020a544899000000b003433f7c713dmr8372804oic.116.1661828849905; Mon, 29 Aug 2022 20:07:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 30 Aug 2022 06:07:18 +0300 Message-ID: Subject: Re: bazel-zig-cc + rust To: Kevin King <4kevinking@gmail.com>, ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Aug 30, 2022 at 5:48 AM Kevin King <4kevinking@gmail.com> wrote: > > Hi Motiejus, Hi Kevin! > Thank you for the awesome bazel integration! I wasn't sure how to reach o= ut so let me know if there's a better way. Use the mailing list. :) > I am working on a bazel+rust+wasm project and was looking to use zig to c= ross-compile a rust web server to linux/{arm,amd}. The only problem I ran i= nto with bazel-zig-cc was that the rust does not pass its env down to the l= inker process, and so the #!/usr/bin/env sh line fails. I was able to fix i= t by changing it to #!/bin/sh (and then everything worked perfectly!), but = I understand that things like nix put sh elsewhere. That was /usr/bin/bash originally, then /usr/bin/env bash, then I removed the bashisms and changed to /usr/bin/env sh. Louis, does NixOS suppot /bin/sh? Kevin, why does /usr/bin/env sh fail? What is the error message? That's quite curious, since that would imply /usr/bin/env does not exist, or sh is not in $PATH. > Can you think of any potential solutions that would work for both rust an= d nix? Let's try to find out. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oo1-f44.google.com (mail-oo1-f44.google.com [209.85.161.44]) by mail-b.sr.ht (Postfix) with ESMTPS id 85F4B11EEFB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 30 Aug 2022 06:20:53 +0000 (UTC) Received: by mail-oo1-f44.google.com with SMTP id w39-20020a4a97aa000000b0044dfa1ddc67so779282ooi.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 29 Aug 2022 23:20:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=BZXDXnigXy9sHdrMQGkAVengDkQWZdmf25cJiZ7tIeY=; b=xhTaPw16KtnH6Ft4mPIvcJScavzgcgMX350ASeYIjsyr3xFDlQQrHKMohW/WSbeiVf ZbcysrNUfrc+htbRRahRXkXHuEq73p5fJj9bwfeAaLrYrPE1LgWQHIC9LF84CqzJkvUL tiNJM2TBqniy+MhwkYwKrZ76VoIyuAoJbb89oq/GVYKigcBsAkPFwi04EfGKqzfQR73E Rhvn/69dSQKosQZn0q1cT+Vgf2I081LcFnJogiRqaeI02Z2eu9Q0BEpVDjUYiJgdr4M7 CgSxce9lQ4ckNflVlZDqeTiLCcNBdNpGP0glKPCmdl5TuV2/VSlygewNYxnjdTAx6D6f ryxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=BZXDXnigXy9sHdrMQGkAVengDkQWZdmf25cJiZ7tIeY=; b=cjnd28vIJl9TairMh30cl+ggllwEWXZ3wMq6FNZEmkYjXpdI0v/a5pc6ja29Mv5g0c 1+9UW1eGKd/uJWXwwKdhXzncw8u329nCZ3fyLcTERT/nr4NUHLXpOaF7BwPUToOXorRj K+buedzuX4gY2wVC4TyQQNkkKja0fNdieu5LrmtV6ApvejEOuE0Fmn3MQ493yhfMXS85 Ly4HASOynKFUg98L5xcT49wr6ytfCvYOdvTZjpMXo9zngIAXBrn7yK82MD6WOrudP/3L YTsMFWm8sAyW4u85h4t5w8KJzrbPVFJwi8ee/7s9AGhIp8hHJLi68aeVsi5ZsByluHQo GYRg== X-Gm-Message-State: ACgBeo0hJqcejYcQtsR0BhiLpohohqheud38RfRJd4IZxp2F/8t7nbbK Xtqxi8mCAhC8RPBiKNP7i4XjZ6b8SALIy4H6ing= X-Google-Smtp-Source: AA6agR66jEAcTuGpCWkbdeKQkqv8tMlrFGuWNZUOaA+lKorOiWWURc3c/TeuHMyCj+je2MsT5gEKHd19vK2KgTMc8E8= X-Received: by 2002:a4a:ba95:0:b0:44b:499f:793d with SMTP id d21-20020a4aba95000000b0044b499f793dmr6681165oop.68.1661840452852; Mon, 29 Aug 2022 23:20:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 30 Aug 2022 09:20:41 +0300 Message-ID: Subject: Re: bazel-zig-cc + rust To: Kevin King <4kevinking@gmail.com> Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" On Tue, Aug 30, 2022 at 6:58 AM Kevin King <4kevinking@gmail.com> wrote: > > The error I get is > > linking with `/private/var/tmp/_bazel_kevin/c782d9784982eee1866a2e1ae5f6f353/external/zig_sdk/tools/c++` failed: exit status: 127 > [...] > = note: env: sh: No such file or directory > > This appears to mean /usr/bin/env is executed correctly, but env itself can't find sh. Linking succeeds when I change the zig wrapper to use /bin/sh directly, leading me to believe rust does not pass PATH down to the linker. I asked in #zig:libera.chat, and Andrew pointed out that `/bin/sh` and `/usr/bin/env` are the only two files in `/bin` and `/usr/bin` respectively. So `#!/bin/sh` will work both NixOS and in your case, since it's an absolute path. I will make the change in bazel-zig-cc later today. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by mail-b.sr.ht (Postfix) with ESMTPS id 5855911EEFB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 30 Aug 2022 06:22:49 +0000 (UTC) Received: by mail-ed1-f52.google.com with SMTP id z8so4025765edb.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 29 Aug 2022 23:22:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=XooOH/gLGyV2e5XWgAs3frYuHQQeJNtnNXdT/SGMF9I=; b=PPtO8/Sv5VZ8lhD8JW0GxmymEkrSfq1DuFPoCJgLQbfeoEKMfCfStcEz9EP8WZwN1+ OUZc2jHFhal9sE3eFMbFgbnh9tPIEXx63wqxFj5lcjp3JJKnCnFNFdziC2kVBvnxhgBC WZLMkmB3ptUXilrvJWh3vff0lxrfaqiqr8koLUjCsivhBtZ3Qc6mlmlW2ELZpasm6utH Yo/Op0tVH+hqXPjbouWBUEzUAmrQ+xj4fpy8WJTWyRq/OmUqOiPZwsdFr1plz3CcbKZ8 7oC2TbCs35m/brTZvvgbtOJxblbZ3SVCQAciRD0T0Mza7YSVJX+QD27m2NWazBvwdSHh tSow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=XooOH/gLGyV2e5XWgAs3frYuHQQeJNtnNXdT/SGMF9I=; b=1cabWsKYFnHBcd1GTOz1sX8Wuk0sLPSwo1FyakSWglcakiicUKuyWeahm3e8u793BM JeukRVPx6mvqxdM78i6Hmd3cuUD3YzTeA11fG/gNMT6lczTmEIGP94g2e9rL+gUfs+GO cUEMS1f+N0ISpBm3CEuCrMJOT2aGN6UNTzeevgJFje+D4ISsDstQDD8HCxnkWGGeToDS ahtiBpqtYdHi74b86/gkXBqABMnueLc/2kCc3PWhMO/2BTUx6pgkg9nEZ1dCvQlIfBFj OF2ij1jvIYFWbXo3s5LJLQbZhOKEFmdpdS8/4EqUbQY2p8ni8ZFjKB/iuAai1NIfFAPY jD9w== X-Gm-Message-State: ACgBeo1VRhSCKOAXqt7EgfvqnHVuvgEsDdMguwWv+mRNNq6Nt078f/B4 PNzG/DpaLGd8Paz8o8v8dwbesLvdoQV62BPrG/Q= X-Google-Smtp-Source: AA6agR6wgcjfMAclWe0wsDiBMKAo/xahWxNhKjmGBDD2p84jEgeKgSxwrbIfa1Q1ApMs04aL8satXp0rDwJL4yeveQk= X-Received: by 2002:a05:6402:1694:b0:447:fa04:367b with SMTP id a20-20020a056402169400b00447fa04367bmr13825978edv.138.1661840568280; Mon, 29 Aug 2022 23:22:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Kevin King <4kevinking@gmail.com> Date: Mon, 29 Aug 2022 23:22:37 -0700 Message-ID: Subject: Re: bazel-zig-cc + rust To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, Luis Holanda Content-Type: text/plain; charset="UTF-8" Oh perfect! I'm glad there was a simple fix :) From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=avilabs-is.20210112.gappssmtp.com header.i=@avilabs-is.20210112.gappssmtp.com Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by mail-b.sr.ht (Postfix) with ESMTPS id B2FDD11EF2F for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 9 Sep 2022 19:52:51 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id z25so4511554lfr.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 09 Sep 2022 12:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=avilabs-is.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=k6q6Je/61wR2hy7UvCPDU+RUtdEWbu+6TDxSehTKHFM=; b=J5Nc4Aw5EMDQuUVgC4b4MoOFeUxIMs91RjL7RqJQMJ0qIMzIs4v5+N41DW+oL0R99m RcruqkrYSsuowwfxha0Hc4b255hLuTajksEpaw/6uUvBSFC5maZtQXKNm0h7pj2lnwiZ 6VSCo9EoHm64qgmZotg2RFNJO7FwRFwUWCEY2yNPnxHdeB1sWg+c7D/pDlaAntaVvzga 18ExK7p/hwf85L5RpWyQF5z2r+bLjEVYChYBbzvJDLAOSKs993JEdTYompxDi07SlH2D hMxIK0PWa0rUM6VrDaGd14b91QyYKCdzbSovOJuU9woskctVb5Y4G/1iS8MaxxUvRcw3 1oMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=k6q6Je/61wR2hy7UvCPDU+RUtdEWbu+6TDxSehTKHFM=; b=US6aSzUU93bjMXRyKb2wPjah2ZBb+UfohNSYOiMFggxKsgZngijKgc2seJAkcvml4e tmohhAjskpEE/1NGh6d/pFPACc9P1Qr/u5mE4bP+EElq3mpAT29SL/lcag2FHX62V8Ne gWwDmTThv8/KMzqVVi+dw2eBP0ZlLSEu6jIy68gNv6h1DF+/PvaFz3TSWyOYLMhDKN9D bawlpiiqpL0uM6v6zGf5efym4v3WVVi4P9tGsmQsQHQX/k5rqytu0ezAf/QAdJvHcyqO o8mcPymzacVQRcn/a2N3s1fv4Sfqi6bUD/uN/eUnBDjBZ9mJTMsCvkxOlv4GVaeiGiCT 8zkA== X-Gm-Message-State: ACgBeo343XM4YwO9XVCrLC2otZsHPesSRbOwEi56GVcw+Jk8PFLNCZpd qqKM7XElrphyTSVOTqimm6f4gTiS/ck/Va78RrUCYtay/gokkNYw X-Google-Smtp-Source: AA6agR5pF4K8tov2jp1OBxXHJR9+Yl00UbYc/kjXbNunQkTsYqxNFsMBOWTKqpZ8xwSRhbDwXPgCEQ/c/y3/hP3fUYI= X-Received: by 2002:a05:6512:e99:b0:492:cf19:875 with SMTP id bi25-20020a0565120e9900b00492cf190875mr5124812lfb.690.1662753169952; Fri, 09 Sep 2022 12:52:49 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?RGFuw61lbCBQdXJraMO6cw==?= Date: Fri, 9 Sep 2022 19:52:39 +0000 Message-ID: Subject: Using with rules_rust To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" I've been trying to build our Rust code with these rules as the C/C++ toolchain but I'm encountering an issue. When I try to build an project that depends on https://crates.io/crates/async-trait I get the following error: /workspace/bazel_output_base/execroot/monorepo/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/cargo__async-stream-impl-0.3.3/libasync_stream_impl-1922333755.so: cannot allocate memory in static TLS block There is a similar issue posted here when using cargo-zig: https://github.com/messense/cargo-zigbuild/issues/4 I'm having a hard time figuring out if it's possible to fix this using rules_rust and these rules. I was wondering if anybody in this mailing list had found a way to get past this issue? From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f50.google.com (mail-oa1-f50.google.com [209.85.160.50]) by mail-b.sr.ht (Postfix) with ESMTPS id 3006F11EEC6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 10 Sep 2022 04:52:37 +0000 (UTC) Received: by mail-oa1-f50.google.com with SMTP id 586e51a60fabf-127dca21a7dso9126500fac.12 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 09 Sep 2022 21:52:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=9HFx1iNsEtN1WgL1Rmqux1snsjnyIzqx9MPUZhjlwp0=; b=CzluCGkxLbwtAgeeM9V1YZ8vWMoe5g1w5F7T8hTQvpRBkeGZNJrVdJagkyYQXWoS3c R1wEAxNP8RtPK6WYRHWpbx8mIo18ZMsIwSoveWnjcn+7TVxfl+cK/kcp+pXDZquFQrPT CaHfS+p+xAAgmkgp8W1deJURMvg+wOa2Eg+4DvHvgxyjFayf3VwaZnML9iywJYTia1w9 qlKEflhGr4jwxFwtldQyCLiCIeiu26JhO/gmXdHfGnt/d3GifW+Pp5Kso1fO496vTvLr ashhFgYchRNMcnTCk45v83Jl/GMaZ5q+jJHGqmz3zLD+iSJZxX8QJ5TNvmL/pR4OA6yE gaEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=9HFx1iNsEtN1WgL1Rmqux1snsjnyIzqx9MPUZhjlwp0=; b=CkyfJCTcQ9d5xTRBwuTqRYW+rQnAYzkECVyrMohECW2Ej8NacS75srZLef0Kb1qOpo h+QQ2/+TT16/o3ZjxXGoUZ842ZsWGdksSuD1aLevx+rQkUNKVRCKIYWbU8TAz7ZFIsKn yRj9gpsEPgrLw/GDcCKR+v+NyBYPNVfPmcpLQLndaf82FGsmbPabM24WXr6hiY04XREx Kq5tb9/kROo+9PHgNaTbkikzmW4+yf9eyydxWKSg2usy8/F9jS6wunShuuB0Px7TJWI+ 6IwI/br59WDHLFyT1smskDMUm6lP2gdNgxOz7O7Ux/Ndq9n14lFpe1XLQkvc1y/VRdMS PX0w== X-Gm-Message-State: ACgBeo2KTT0mYnqV0e5xVgbgavQ3DNqAL/kAN11bzig399bsMsj5ZMjV oiBIpxcupJ+ZXbtBWQ6AYngIBUJoQzvcrCu9ziyXOzEUYgU= X-Google-Smtp-Source: AA6agR4Xpn2N0vw+iHwycUodkZWakZqTWEzZkR6l1unqTYnAxZVxJWvDFyujPDQG2RgrmmJrQvYOMApDhDBswY6NwOE= X-Received: by 2002:a54:4899:0:b0:343:3f7c:713d with SMTP id r25-20020a544899000000b003433f7c713dmr5001244oic.116.1662785556272; Fri, 09 Sep 2022 21:52:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sat, 10 Sep 2022 07:52:25 +0300 Message-ID: Subject: Re: Using with rules_rust To: =?UTF-8?B?RGFuw61lbCBQdXJraMO6cw==?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Sep 9, 2022 at 10:52 PM Dan=C3=ADel Purkh=C3=BAs wrote: > > I've been trying to build our Rust code with these rules as the C/C++ > toolchain but I'm encountering an issue. > When I try to build an project that depends on > https://crates.io/crates/async-trait I get the following error: > > /workspace/bazel_output_base/execroot/monorepo/bazel-out/k8-opt-exec-2B5C= BBC6/bin/external/cargo__async-stream-impl-0.3.3/libasync_stream_impl-19223= 33755.so: > cannot allocate memory in static TLS block > > There is a similar issue posted here when using cargo-zig: > > https://github.com/messense/cargo-zigbuild/issues/4 > > I'm having a hard time figuring out if it's possible to fix this using > rules_rust and these rules. I was wondering if > anybody in this mailing list had found a way to get past this issue? Hi Dan=C3=ADel, Both cargo-zigbuild and bazel-zig-cc are thin wrappers on top of zig cc, so the underlying mechanism (zig cc) is the one to look out for. The best course of action would be to make a minimal example (e.g. a single test.rs) and peel off the build layers (bazel-zig-cc or cargo-zigbuild; whichever is easier) and file an issue in ziglang/zig. If you have a minimal rust example that exposes this problem, "rustc" and "zig cc" commands to reproduce it (no cargo or bazel), that will go a long way for whoever is interested in picking this up to understand what happened and fix this. Hope that helps, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) by mail-b.sr.ht (Postfix) with ESMTPS id 3EFB511EF19 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 12 Sep 2022 10:53:05 +0000 (UTC) Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-11eab59db71so22216913fac.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 12 Sep 2022 03:53:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=y7WyWF2RZq+b4qTej7JMdDJ7rSe1MtThqFCbkZDFbIc=; b=iXA8gyCcbj7tRy8rKJtcgvrUoV2fVm9ly2XmKeMOfzR0haPxSF2pIXQjn+aM42RKo/ PKZfby9a3PS0Df6BttZdGccbU4Kln6WKNVvWnLfTjc/co4K+aSz1sWxcaxGCJTa8+pR0 IbM65+87CHjlYuAOxd6IeYLAIJ5SEIkmeALofCSpApcueC5/FK7U8Qjof8jyaa9PXNze 2K4GaXTeoYVu1R9l1xHEa6wP5JiAiMbmsiMsQpTBuQw6EOPwCW1SOURRvikEQw0e86a/ 7ZN5nq4r/aLRvjIxeRiZ1wvzBQWW7W5kfirl9nmIvqU/3vZA/la6I1DwptAgar6NyhEz epFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=y7WyWF2RZq+b4qTej7JMdDJ7rSe1MtThqFCbkZDFbIc=; b=mNACTqZ44vMFX5n7RhI31sJDBug9jXT7WG80GHwawWZBzI/o7470wPfQcDNsdvdy5g kFkIpe3bTo0evJ59ablMR1QYxsUD80Gr5OgDvpAAbiLbt31YXcgwY8nT8RK2vz16Hwpf QWfozM+crFV4/mvn2j0FpOEwm4uSiPk1rPcmMYCHjlNC/wxzZ0ibKLTl08//8fN5WQwv YhPJ91TelNnhtd9BV+GbcliyUkronpFrNI/utEqE68B8E2iD6mnkfPb3lc1B7ct0sZFo 9ZBCTD3Ns++KkP5OBz7EJ8s+tuOM2phBfic6UY6azNsVbcVHScEAvc6L1evZMDQtqwtv TJXw== X-Gm-Message-State: ACgBeo3q+klR5NGQgrnqa8cx5RaUQ1WxTtKSZPMOeyzlc/Stk5r42mrY BBTFH3xwWd+R+TYZT1JWsg8h4vIMlfuptpyjXct0eG08Cbw= X-Google-Smtp-Source: AA6agR45Jfu+x6EJ9u8wdc1QO+Kx1hzxyFC9/kxmvj+JJjfX4M5ZyJod16rHp73TKgB3tX4+I9d6rSLLmdVO6wowoNo= X-Received: by 2002:a05:6870:b14f:b0:127:d4f1:6a90 with SMTP id a15-20020a056870b14f00b00127d4f16a90mr11274750oal.116.1662979984463; Mon, 12 Sep 2022 03:53:04 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 12 Sep 2022 13:52:53 +0300 Message-ID: Subject: bazel-zig-cc v0.9.2 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, v0.9.2 brings in some changes w.r.t. BAZEL_ZIG_CC_CACHE_PREFIX: - make it work on Windows: thanks Fabian Hahn. - make repository_rule depend on it, so artifacts that depend on it get invalidated. Thanks Laurynai. And makes bazel-zig-cc work on NixOS. For that I thank Luis Holanda and Andrew Kelley. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f51.google.com (mail-oa1-f51.google.com [209.85.160.51]) by mail-b.sr.ht (Postfix) with ESMTPS id EB5F911EF19 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 12 Sep 2022 10:56:50 +0000 (UTC) Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-11e9a7135easo22275719fac.6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 12 Sep 2022 03:56:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=uMuUfBSSCorRcC5QjiCJo6Ia2ic2flgrpVRvIq8kKjc=; b=VB+1hU0yZNXqxISFUf8zgbD6+lm0/Ti8ASDyS7ZzhYwIpQQBDZmjfGddt9wGx7jmyv qFKkIJ/rst66/WBqNFdtaky1FevV6iNHmJ6vrI6u1H/HhIdk0mY5UmZsu57kQ3qFkCzh Ke22B/iFc1W/JRntivIUq7og91pKuz/ZplPfzfXwIi6i3P52uG39ToxE7W4cXUMtZUqQ HlJBsu3+sE2uBkC9OxV2JhJ/stqzw7jgoHOxFbxqzlhwMlwSSbGMPXLS0SfdZ2/hqqzS NEpoRYBOL2Gy+W6j3zmBFTKmroIDHkZVRcDFybFt2EXHxaq+F133m+ZJ/AZc1p32ILMN TaGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=uMuUfBSSCorRcC5QjiCJo6Ia2ic2flgrpVRvIq8kKjc=; b=p6Q1ti2pL4HiJM8h4sstjk80S0V3DWOIn2RF+xkfVIxVWcPl0aNXpm4lXxo+HAAP3x bn06E8iUWc7YylyzVeEaf3WLtG4FB8nkIuEluKO863wrVSvDhD40/VD8bn5Nrf247Pgt NCG2+SGY8MjQUL6W7T6A4Qo2AqgH1s/3rZlSNZQRvemsRkbYBprUkKisyfq7NCFaQ1Qe p491MJEKSi/hP8qQ++UF+PPaJpCGP/EvCmnz1NULALCK0stqoFHtUW9slphVdinwjlve AqNXAkaMWY9JKU+OflFCbaR69bdPP7Pej0qVCkVSL2MKK31TvMXKBfyJULPlthGIfM+L d0DA== X-Gm-Message-State: ACgBeo2WfhCGxmr6U/POuvGcGsAQCh2M+CrX4CSJsbuuboYXYM30N1zn Uzp1Yp3Mngmy1oB+MeFd0dn60Cbu1rhsmf9Mi73vDPzd9Xs= X-Google-Smtp-Source: AA6agR6Jbh4Va0PTc0LMi/JpiV6/lYECI44Yce3tWI+dilrKD/LWRYxDENjswmwBU9pC6Y/CzppyzHAFrDk/GJ2ILYM= X-Received: by 2002:a05:6870:b14f:b0:127:d4f1:6a90 with SMTP id a15-20020a056870b14f00b00127d4f16a90mr11280348oal.116.1662980210247; Mon, 12 Sep 2022 03:56:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 12 Sep 2022 13:56:39 +0300 Message-ID: Subject: Re: bazel-zig-cc v0.9.2 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Sep 12, 2022 at 1:52 PM Motiejus Jak=C5=A1tys = wrote: > > Hi all, > > v0.9.2 brings in <...> One thing I forgot: if you used musl, bazel-zig-cc used to add "-s -w" to LDFLAGS. That was wrong, added by me a while ago[1]. This is what happens when I don't get code reviews. Well, it's fixed now: the musl binaries produced by bazel-zig-cc will no longer be stripped. [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/58a04fbfec10d98ac5cd8e= e44df441146085b780 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 9504811EF24; Thu, 15 Sep 2022 14:40:41 +0000 (UTC) From: ~kmicklas Date: Thu, 15 Sep 2022 14:40:41 +0000 Subject: [PATCH bazel-zig-cc 0/1] Fix include root path for macos-aarch64 MIME-Version: 1.0 Message-ID: <166325284132.32481.3819031653685599117-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Despite the odd inconsistency between OS/arch, the others appear correct from a latest nightly. Ken Micklas (1): Fix include root path for macos-aarch64 toolchain/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id B11A311F88A; Thu, 15 Sep 2022 14:40:41 +0000 (UTC) From: ~kmicklas Date: Thu, 15 Sep 2022 15:37:35 +0100 Subject: [PATCH bazel-zig-cc 1/1] Fix include root path for macos-aarch64 Message-ID: <166325284132.32481.3819031653685599117-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <166325284132.32481.3819031653685599117-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 71214f6..f72412d 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -70,7 +70,7 @@ def toolchains( host_platform_include_root = { "linux-aarch64": "lib/zig/", "linux-x86_64": "lib/", - "macos-aarch64": "lib/zig/", + "macos-aarch64": "lib/", "macos-x86_64": "lib/zig/", "windows-x86_64": "lib/", }, -- 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=DlXGYPf+otWnejEClYXaLB1lSlI9vZSkseK4QiVLjAc=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1663253908; v=1; b=K8cl/QZ97rhbTIO0JBn7X2bSeGAoSI7gfKUMBf7ufvfeEWPNxm8sAGkNABF2vA124Wk2lJHr eBSNmFz/VElj1t25dGJEsayWT93HkToqMQteeUip1bEE0iOSlCZYrOBnwkEm50XtyCBZFiIlEbO oZYpdgZ2lRGF6vpZhGnlBSKeSqm5kCaWXmIoRMH5l8lQLeoKb4PQTRCOGNI+Jybme8r6d/26OuO QSKRvF8g8L93upEzaElPBmQDfItO8Of+30qpeIUEnGPq06Y/cXjMvYinluo6otDFTuztc49S7Kc D7CQAdLJfoDPqBGrq6ovD3Jk8rsST5D4OKPa+pcuXGsCw== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 0F9C111EF24; Thu, 15 Sep 2022 14:58:28 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 15 Sep 2022 14:58:28 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <166325284132.32481.3819031653685599117-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 17m45s [Fix include root path for macos-aarch64][0] from [~kmicklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35334 [1]: mailto:git@kmicklas.com =E2=9C=93 #845320 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/845320 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id C0EC011EEDB; Thu, 15 Sep 2022 18:30:04 +0000 (UTC) From: ~kmicklas Date: Thu, 15 Sep 2022 18:30:04 +0000 Subject: [PATCH bazel-zig-cc 0/1] Move Label dependencies above archive fetching to reduce restarts MIME-Version: 1.0 Message-ID: <166326660455.1440.4931108525708331193-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Before this, when running the repository rule, you might notice the Bazel output say it was extracting the SDK archive ~7 times. Each time a label dependency is used, it would restart the whole rule with the new dependency. Now, the restarts technically still happen, but are not noticeable since they occur before doing any substantial work. Ken Micklas (1): Move Label dependencies above archive fetching to reduce restarts toolchain/defs.bzl | 53 +++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 24 deletions(-) -- 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id DE95911EF24; Thu, 15 Sep 2022 18:30:04 +0000 (UTC) From: ~kmicklas Date: Thu, 15 Sep 2022 19:20:21 +0100 Subject: [PATCH bazel-zig-cc 1/1] Move Label dependencies above archive fetching to reduce restarts Message-ID: <166326660455.1440.4931108525708331193-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~kmicklas In-Reply-To: <166326660455.1440.4931108525708331193-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: kmicklas@uber.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- toolchain/defs.bzl | 53 +++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 71214f6..ceddb70 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -170,6 +170,35 @@ def _zig_repository_impl(repository_ctx): "host_platform": host_platform, } =20 + # Fetch Label dependencies before doing download/extract. + # The Bazel docs are not very clear about this behavior but see: + # https://bazel.build/extending/repo#when_is_the_implementation_function= _executed + # and a related rules_go PR: + # https://github.com/bazelbuild/bazel-gazelle/pull/1206 + for dest, src in { + "platform/BUILD": "//toolchain/platform:BUILD", + "toolchain/BUILD": "//toolchain/toolchain:BUILD", + "libc/BUILD": "//toolchain/libc:BUILD", + "libc_aware/platform/BUILD": "//toolchain/libc_aware/platform:BUILD", + "libc_aware/toolchain/BUILD": "//toolchain/libc_aware/toolchain:BUIL= D", + }.items(): + repository_ctx.symlink(Label(src), dest) + + for dest, src in { + "BUILD": "//toolchain:BUILD.sdk.bazel", + "private/BUILD": "//toolchain/private:BUILD.sdk.bazel", + }.items(): + repository_ctx.template( + dest, + Label(src), + executable =3D False, + substitutions =3D { + "{absolute_path}": _quote(str(repository_ctx.path(""))), + "{os}": _quote(os), + "{zig_include_root}": _quote(zig_include_root), + }, + ) + urls =3D [uf.format(**format_vars) for uf in repository_ctx.attr.url_for= mats] repository_ctx.download_and_extract( auth =3D use_netrc(read_user_netrc(repository_ctx), urls, {}), @@ -200,30 +229,6 @@ def _zig_repository_impl(repository_ctx): content =3D _fcntl_h, ) =20 - for dest, src in { - "platform/BUILD": "//toolchain/platform:BUILD", - "toolchain/BUILD": "//toolchain/toolchain:BUILD", - "libc/BUILD": "//toolchain/libc:BUILD", - "libc_aware/platform/BUILD": "//toolchain/libc_aware/platform:BUILD", - "libc_aware/toolchain/BUILD": "//toolchain/libc_aware/toolchain:BUIL= D", - }.items(): - repository_ctx.symlink(Label(src), dest) - - for dest, src in { - "BUILD": "//toolchain:BUILD.sdk.bazel", - "private/BUILD": "//toolchain/private:BUILD.sdk.bazel", - }.items(): - repository_ctx.template( - dest, - Label(src), - executable =3D False, - substitutions =3D { - "{absolute_path}": _quote(str(repository_ctx.path(""))), - "{os}": _quote(os), - "{zig_include_root}": _quote(zig_include_root), - }, - ) - zig_repository =3D repository_rule( attrs =3D { "version": attr.string(), --=20 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=ByBs1FjHk1lGGcjd5gBmc72N92u3A0Qyh2mWYaae3Oc=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1663267619; v=1; b=IL5AcdNK5WhcdRq495tuR+383OSpYDpc5gkuZ36a3pT0xdKmmKPGlevKY5pFcsxv8JK8gG/3 ZcgEEgdxOQSoZJD2CuTaBiHkIuKRmwNgFjiTyjgJWREMdtG158ncPcxZScJz9y06GttomneFdJt Nsn3I4UKULj0n3ZhJiFyN+p9TPMkKUNgoglu9v5QtO77putQ3b/oi/osUUXPJcjiQProXKwT0Ag SZgDiV5KYitEGx5qTv2V/XFxfF1nR4faZ1UHFXDlbmXEYnjljWpbNKWBT8TDpG/r0pO7bnKJJEz SK/uafrDdYNEpPasImE1yNElrYSFy1F7MwjZq1BRBnpkQ== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 4920011EEDB; Thu, 15 Sep 2022 18:46:59 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 15 Sep 2022 18:46:59 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <166326660455.1440.4931108525708331193-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 16m52s [Move Label dependencies above archive fetching to reduce restarts][0] from= [~kmicklas][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35345 [1]: mailto:git@kmicklas.com =E2=9C=93 #845473 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/845473 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by mail-b.sr.ht (Postfix) with ESMTPS id 7666B11EEDB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 15 Sep 2022 19:20:39 +0000 (UTC) Received: by mail-oo1-f43.google.com with SMTP id l40-20020a4a94eb000000b00472717928b5so3152400ooi.1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 15 Sep 2022 12:20:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=cIrQy9EdHerBVaY7Dvc4XNQfhltLnbs0FHVFNRu23eM=; b=1T1nysZ869dF1ANT3HcsxAOYKtoyROr7N1psifQ9SlLPA+cSvJz+ifbf56qdOZQ1yc Km/R4eMYlifGrMDd76VikiiRbuIG30LNURWXS8L3EH8+U+A1Ob9M5cLlmvlJzNz33RxT jU3yKRhpVMQF0LlCWlZRPxvNl3f5IT2dkC3mSPOAYzKv+BNa5/lNBVG1zn00h6kh0RdV 7H6bR6X4UUIN5Kg9TbVGpejRCk9MXMEhfs6xuX/ex+xcESCXUewYOHuXPjVJjqByMDxl ioa1xcLI1j+HZHa+N5nNHMbzy62hWx9dPaqm2z5T0/VvJP0zQtmj9mPALBneduYyk5Y+ pHwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=cIrQy9EdHerBVaY7Dvc4XNQfhltLnbs0FHVFNRu23eM=; b=S+tZImHAV/bTgE4PJsKS5gCTSBnUltknmV6XRw1x7N4IgSL/oXsSE+lflO1mN6QyNH g3yltZZ6V1eNRpMSEB+kw51rzugVJk3H2OY64b77tRoFgk/+shPja7n/016pi1arD8/2 KG+0rXm7lX1c8bRXeWGBt5JQcb8hPXr0bEiM9/Ejs/Vgl+4cxcCBA4HQv3diExWGLO7t Mk9JHsMJ89uFkPrpLmZQ9+mYLI1bj56cEUnmY6N/QGAO76T8ANfwRVqLxptTYodkuIv1 R0TX4z89/T4gPrXaxvKU3HzNcJe1pOZvusFzoBZlricumsn9Yq5tnQ42Jq3MW5NIoRr7 5Diw== X-Gm-Message-State: ACrzQf29AUKb+rNRu+DEkxOe6AbvWepSitQPfJuxNXhLzImXxxbGnCJ7 AjQ05MLxGW9EXOeG/x4LzmbEz1N9/XoVod8uJkA= X-Google-Smtp-Source: AMsMyM4vZhBMhSN2kpNqJx1evgIjbRUJkxPg4vHEZ00Ltfgt1EpaMjyj2BYKLM5A/FznCEo5afdxlk/3hHH+eVtJHjI= X-Received: by 2002:a4a:aa48:0:b0:475:2ead:9e35 with SMTP id y8-20020a4aaa48000000b004752ead9e35mr654566oom.68.1663269638692; Thu, 15 Sep 2022 12:20:38 -0700 (PDT) MIME-Version: 1.0 References: <166326660455.1440.4931108525708331193-0@git.sr.ht> <166326660455.1440.4931108525708331193-1@git.sr.ht> In-Reply-To: <166326660455.1440.4931108525708331193-1@git.sr.ht> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 15 Sep 2022 22:20:27 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 1/1] Move Label dependencies above archive fetching to reduce restarts To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, kmicklas@uber.com Content-Type: text/plain; charset="UTF-8" On Thu, Sep 15, 2022 at 9:30 PM ~kmicklas wrote: > > From: Ken Micklas > > --- > toolchain/defs.bzl | 53 +++++++++++++++++++++++++--------------------- > 1 file changed, 29 insertions(+), 24 deletions(-) Applied, thanks! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f51.google.com (mail-oa1-f51.google.com [209.85.160.51]) by mail-b.sr.ht (Postfix) with ESMTPS id 0AE1B11EEDB for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 15 Sep 2022 19:23:53 +0000 (UTC) Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-1274ec87ad5so49012618fac.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 15 Sep 2022 12:23:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=3ZUSupMUH6E05gWVqE9yBfHWRhcg+RWdYQR0rqWPlKE=; b=NlG7X7sAgkihr8jLH40LSPCowvP3DcK7dl/HlE56PNTt/7AYtvmrb6Uo+fKj90v58i Z8JYtrE3frsPhcg2CN+Upc+SuSaLNVVs0Q4lVEVNXmU24F6RpWtx/eO9go/Q1TxFYoE7 yER+2xF8rL9onEJ8rukvZvgeciFJUPF04wJD50SZSTqeiUrpT0EB0CNLTWGwiVdpg/Ig k95M8LwxZ/rYGG4jGd/aTCFu6a8Cb+DFUjlTS65J//U8jbTUk6suuFV47O20KvzwytM7 /7eeZ5Q7zTNVvSs8Po4Q5jBoJVaO9G+zAMGK9YhfFD6nzbsFmKRslP4aevtAqjtZ5Ip/ A+pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=3ZUSupMUH6E05gWVqE9yBfHWRhcg+RWdYQR0rqWPlKE=; b=ad+7HmX3/Bk55NXV+l9bp9pqAloe4fhT+sTZTag48DFD5G5oCFiteaPAztrhbD+imb 9NgLVy6lzh7ZeG+ZarlGLeao+183VHvIkgZRXEXI8g4j6Icak9QOlAhpwRd/dKgDUwlG gE9hNqYkxQE+nyvj64TpVkEbtWfNZVk1aiUB07sYZwOOK7DvrVquGP4RRCra60gmQxWK dTS3MJeHfCgtOpN/zIZIucWSgMpcn2cskBCta97WdcBETXHVhK96ApLJwHh7qEY31eR/ v1mr27+cFuyaejbhq/amjA80QFdx9xXZ+fp0Etc3qCvVv83oAs50qpnqy7Wa8hsXxB7c GACg== X-Gm-Message-State: ACgBeo3X6OJjo8jAkmpi8xv1T+hIia2GdFvMLsZF2ZXA1Ia0zmKJCyeo gYsMVQxUJA//2NyiCm8iiv9u2rToxVN7VlUPqjY= X-Google-Smtp-Source: AA6agR6JEj+JU288Tt4plRsVDzZTfLUQvjSeoreUySv8gLa8vz3h1eFeMqigehU624QVLMUJokkNG3rhp5eiZ4X0SRk= X-Received: by 2002:a05:6870:14c8:b0:127:8b50:198b with SMTP id l8-20020a05687014c800b001278b50198bmr6209532oab.216.1663269832350; Thu, 15 Sep 2022 12:23:52 -0700 (PDT) MIME-Version: 1.0 References: <166325284132.32481.3819031653685599117-0@git.sr.ht> <166325284132.32481.3819031653685599117-1@git.sr.ht> In-Reply-To: <166325284132.32481.3819031653685599117-1@git.sr.ht> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 15 Sep 2022 22:23:41 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 1/1] Fix include root path for macos-aarch64 To: "~kmicklas" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, kmicklas@uber.com Content-Type: text/plain; charset="UTF-8" On Thu, Sep 15, 2022 at 5:40 PM ~kmicklas wrote: > > From: Ken Micklas > > --- > toolchain/defs.bzl | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Thanks, applied. Though those will likely need to be revised soon -- I remember reading somewhere that those prefixes will be made consistent at some point. It's either landed, or there is an open PR. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id A8BE811EE04; Tue, 27 Sep 2022 07:24:28 +0000 (UTC) From: ~motiejus Date: Tue, 27 Sep 2022 07:24:28 +0000 MIME-Version: 1.0 Subject: [PATCH bazel-zig-cc 0/2] use relative paths Message-ID: <166426346839.12781.6953968828011257615-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Cc: laurynasl@uber.com, mail@kmicklas.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This patchset changes absolute paths to tools to relative paths. Work was started by @kmicklas and completed by myself and @laurynasl. Please review. Currently, with absolute paths, bazel's remote cache keys are different between two workspaces, busting our remote cache. We hope (did not try yet) that this will normalize them and fix our cache hit ratios. Fabian, this does not work on Windows yet; if you want to chime in, I will wait a couple of days for your patch before I cut a release. 1.0 is coming soon. Ken Micklas (1): WIP: use relative paths for tools Motiejus Jak=C5=A1tys (1): defs: fix import paths README.md | 2 +- toolchain/BUILD.sdk.bazel | 9 +++++++-- toolchain/defs.bzl | 29 +++++++++++++++++++++++++---- toolchain/private/BUILD.sdk.bazel | 7 ------- toolchain/private/cc_toolchains.bzl | 17 ++++++++--------- toolchain/private/defs.bzl | 29 ++++++++++++++--------------- toolchain/toolchain/defs.bzl | 4 ++-- 7 files changed, 57 insertions(+), 40 deletions(-) delete mode 100644 toolchain/private/BUILD.sdk.bazel --=20 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id CC64611EE05; Tue, 27 Sep 2022 07:24:28 +0000 (UTC) From: ~motiejus Date: Wed, 21 Sep 2022 11:14:29 +0100 Subject: [PATCH bazel-zig-cc 1/2] WIP: use relative paths for tools Message-ID: <166426346839.12781.6953968828011257615-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus In-Reply-To: <166426346839.12781.6953968828011257615-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Cc: laurynasl@uber.com, mail@kmicklas.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Ken Micklas --- README.md | 2 +- toolchain/BUILD.sdk.bazel | 9 +++++++-- toolchain/defs.bzl | 5 +++-- toolchain/private/BUILD.sdk.bazel | 7 ------- toolchain/private/cc_toolchains.bzl | 12 +++++++----- toolchain/toolchain/defs.bzl | 4 ++-- 6 files changed, 20 insertions(+), 19 deletions(-) delete mode 100644 toolchain/private/BUILD.sdk.bazel diff --git a/README.md b/README.md index 262b88b..266952f 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ toolchain( generator_location =3D "toolchain/BUILD:7:19", toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", target_compatible_with =3D ["@platforms//os:linux", "@platforms//cpu:aarch= 64", "@zig_sdk//libc:unconstrained"], - toolchain =3D "@zig_sdk//private:aarch64-linux-musl_cc", + toolchain =3D "@zig_sdk//:aarch64-linux-musl_cc", ) ``` =20 diff --git a/toolchain/BUILD.sdk.bazel b/toolchain/BUILD.sdk.bazel index e1505b1..ef5fd5f 100644 --- a/toolchain/BUILD.sdk.bazel +++ b/toolchain/BUILD.sdk.bazel @@ -1,11 +1,10 @@ load("@bazel-zig-cc//toolchain:defs.bzl", "declare_files") +load("@bazel-zig-cc//toolchain/private:cc_toolchains.bzl", "declare_cc_toolc= hains") =20 package( default_visibility =3D ["//visibility:public"], ) =20 - - declare_files( os =3D {os}, zig_include_root =3D {zig_include_root}, @@ -15,3 +14,9 @@ exports_files([ "glibc-hacks/fcntl.map", "glibc-hacks/glibchack-fcntl.h", ]) + +declare_cc_toolchains( + os =3D {os}, + absolute_path =3D {absolute_path}, + zig_include_root =3D {zig_include_root}, +) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 797e4fe..f0e6a72 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -186,14 +186,14 @@ def _zig_repository_impl(repository_ctx): =20 for dest, src in { "BUILD": "//toolchain:BUILD.sdk.bazel", - "private/BUILD": "//toolchain/private:BUILD.sdk.bazel", + # "private/BUILD": "//toolchain/private:BUILD.sdk.bazel", }.items(): repository_ctx.template( dest, Label(src), executable =3D False, substitutions =3D { - "{absolute_path}": _quote(str(repository_ctx.path(""))), + "{absolute_path}": _quote("external/zig_sdk"), "{os}": _quote(os), "{zig_include_root}": _quote(zig_include_root), }, @@ -246,6 +246,7 @@ def filegroup(name, **kwargs): return ":" + name =20 def declare_files(os, zig_include_root): + filegroup(name =3D "all", srcs =3D native.glob(["**"])) filegroup(name =3D "empty") if os =3D=3D "windows": native.exports_files(["zig.exe"], visibility =3D ["//visibility:publ= ic"]) diff --git a/toolchain/private/BUILD.sdk.bazel b/toolchain/private/BUILD.sdk.= bazel deleted file mode 100644 index 3e7c23e..0000000 --- a/toolchain/private/BUILD.sdk.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("@bazel-zig-cc//toolchain/private:cc_toolchains.bzl", "declare_cc_toolc= hains") - -declare_cc_toolchains( - os =3D {os}, - absolute_path =3D {absolute_path}, - zig_include_root =3D {zig_include_root}, -) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 724cbda..6b8b3e6 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -29,7 +29,7 @@ def declare_cc_toolchains(os, absolute_path, zig_include_ro= ot): absolute_tool_paths[name] =3D path continue tool_path =3D zig_tool_path(os).format(zig_tool =3D path) - absolute_tool_paths[name] =3D "%s/%s" % (absolute_path, tool_pat= h) + absolute_tool_paths[name] =3D tool_path =20 linkopts =3D target_config.linkopts dynamic_library_linkopts =3D target_config.dynamic_library_linkopts @@ -53,18 +53,20 @@ def declare_cc_toolchains(os, absolute_path, zig_include_= root): compiler =3D "clang", abi_version =3D "unknown", abi_libc_version =3D "unknown", + # visibility =3D ["//visibility:private"], ) =20 native.cc_toolchain( name =3D zigtarget + "_cc", toolchain_identifier =3D zigtarget + "-toolchain", toolchain_config =3D ":%s_cc_config" % zigtarget, - all_files =3D "@zig_sdk//:zig", - ar_files =3D "@zig_sdk//:zig", - compiler_files =3D "@zig_sdk//:zig", - linker_files =3D "@zig_sdk//:zig", + all_files =3D "@zig_sdk//:all", + ar_files =3D "@zig_sdk//:all", + compiler_files =3D "@zig_sdk//:all", + linker_files =3D "@zig_sdk//:all", dwp_files =3D "@zig_sdk//:empty", objcopy_files =3D "@zig_sdk//:empty", strip_files =3D "@zig_sdk//:empty", supports_param_files =3D 0, + # visibility =3D ["//visibility:private"], ) diff --git a/toolchain/toolchain/defs.bzl b/toolchain/toolchain/defs.bzl index 1d99a61..24a90cc 100644 --- a/toolchain/toolchain/defs.bzl +++ b/toolchain/toolchain/defs.bzl @@ -32,7 +32,7 @@ def _declare_toolchain(gotarget, zigtarget, target_compatib= le_with): name =3D gotarget, exec_compatible_with =3D None, target_compatible_with =3D target_compatible_with, - toolchain =3D "@zig_sdk//private:%s_cc" % zigtarget, + toolchain =3D "@zig_sdk//:%s_cc" % zigtarget, toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) =20 @@ -41,6 +41,6 @@ def _declare_toolchain(gotarget, zigtarget, target_compatib= le_with): name =3D zigtarget, exec_compatible_with =3D None, target_compatible_with =3D target_compatible_with, - toolchain =3D "@zig_sdk//private:%s_cc" % zigtarget, + toolchain =3D "@zig_sdk//:%s_cc" % zigtarget, toolchain_type =3D "@bazel_tools//tools/cpp:toolchain_type", ) --=20 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id EAD5C11EF5B; Tue, 27 Sep 2022 07:24:28 +0000 (UTC) From: ~motiejus Date: Mon, 26 Sep 2022 10:14:08 +0300 Subject: [PATCH bazel-zig-cc 2/2] defs: fix import paths MIME-Version: 1.0 Message-ID: <166426346839.12781.6953968828011257615-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus In-Reply-To: <166426346839.12781.6953968828011257615-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Cc: laurynasl@uber.com, mail@kmicklas.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Motiejus Jak=C5=A1tys Empirically these need to come from most specfic to least specific. The error message is as follows: In file included from test/c/main.c:1: In file included from external/zig_sdk/lib/libcxx/include/stdio.h:107: In file included from external/zig_sdk/lib/libc/include/generic-glibc/std= io.h:38: external/zig_sdk/lib/libc/include/generic-glibc/bits/types.h:139:3: error: # error ^ external/zig_sdk/lib/libc/include/generic-glibc/bits/types.h:145:1: error= : unknown type name '__STD_TYPE' __STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ Dissected `generic-glibc/bits/types.h:#error`: #if __WORDSIZE =3D=3D 32 <...> # define __STD_TYPE __extension__ typedef #elif __WORDSIZE =3D=3D 64 <...> # define __STD_TYPE typedef #else # error #endif So we do not have the `__WORDSIZE`. Where does that come from? Probably from a directory that has an `x86_64` in it. How does that get included? Let's start with `lib/libcxx/include/stdio.h`: 16 #include_next Now previously our `c++` command line looked like this: external/zig_sdk/tools/c++ \ <...> -Iexternal/zig_sdk/lib/include \ -Iexternal/zig_sdk/lib/libcxx/include \ -Iexternal/zig_sdk/lib/libcxxabi/include \ -Iexternal/zig_sdk/lib/libunwind/include \ -Iexternal/zig_sdk/lib/libc/include/generic-glibc \ -Iexternal/zig_sdk/lib/libc/include/any-linux-any \ -Iexternal/zig_sdk/lib/libc/include/x86_64-linux-gnu \ -Iexternal/zig_sdk/lib/libc/include/x86_64-linux-any \ -Iexternal/zig_sdk/lib/libc/include/x86-linux-any \ -Iexternal/zig_sdk/glibc-hacks \ <...> So the next place it will find `stdio.h` is in `generic-glibc`, which already uses the `__WORDSIZE`. If we make the "next" include to be the arch-specific one instead of the generic-glibc, things start compiling again. Fix the same fo musl. --- toolchain/defs.bzl | 24 ++++++++++++++++++++++-- toolchain/private/cc_toolchains.bzl | 9 +++------ toolchain/private/defs.bzl | 29 ++++++++++++++--------------- 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index f0e6a72..25ca20a 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,6 +1,13 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "us= e_netrc") -load("@bazel-zig-cc//toolchain/private:defs.bzl", "DEFAULT_INCLUDE_DIRECTORI= ES", "target_structs", "zig_tool_path") +load("@bazel-zig-cc//toolchain/private:defs.bzl", "target_structs", "zig_too= l_path") + +# Directories that `zig c++` includes behind the scenes. +_DEFAULT_INCLUDE_DIRECTORIES =3D [ + "libcxx/include", + "libcxxabi/include", + "libunwind/include", +] =20 _fcntl_map =3D """ GLIBC_2.2.5 { @@ -86,12 +93,14 @@ _ZIG_TOOLS =3D [ "wasm-ld", # WebAssembly ] =20 +# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN =3D """@echo off set ZIG_LOCAL_CACHE_DIR=3D{cache_prefix}\\bazel-zig-cc set ZIG_GLOBAL_CACHE_DIR=3D%ZIG_LOCAL_CACHE_DIR% "{zig}" "{zig_tool}" %* """ =20 +# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS =3D """@echo off if exist "%TMP%\\*" goto :usertmp set ZIG_LOCAL_CACHE_DIR=3DC:\\Temp\\bazel-zig-cc @@ -104,6 +113,12 @@ set ZIG_GLOBAL_CACHE_DIR=3D%ZIG_LOCAL_CACHE_DIR% """ =20 _ZIG_TOOL_WRAPPER_CACHE_KNOWN =3D """#!/bin/sh +set -e +if [ -d external/zig_sdk/lib ]; then + export ZIG_LIB_DIR=3Dexternal/zig_sdk/lib +else + export ZIG_LIB_DIR=3D"$(dirname "$0")/../lib" +fi export ZIG_LOCAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" export ZIG_GLOBAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" exec "{zig}" "{zig_tool}" "$@" @@ -111,6 +126,11 @@ exec "{zig}" "{zig_tool}" "$@" =20 _ZIG_TOOL_WRAPPER_CACHE_GUESS =3D """#!/bin/sh set -e +if [ -d external/zig_sdk/lib ]; then + export ZIG_LIB_DIR=3Dexternal/zig_sdk/lib +else + export ZIG_LIB_DIR=3D"$(dirname "$0")/../lib" +fi if [ -n "$TMPDIR" ]; then _cache_prefix=3D$TMPDIR elif [ -n "$HOME" ]; then @@ -258,7 +278,7 @@ def declare_files(os, zig_include_root): lazy_filegroups =3D {} =20 for target_config in target_structs(): - for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: + for d in _DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: d =3D zig_include_root + d if d not in lazy_filegroups: lazy_filegroups[d] =3D filegroup(name =3D d, srcs =3D native= .glob([d + "/**"])) diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 6b8b3e6..a5b4b5e 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -1,4 +1,4 @@ -load(":defs.bzl", "DEFAULT_INCLUDE_DIRECTORIES", "target_structs", "zig_tool= _path") +load(":defs.bzl", "target_structs", "zig_tool_path") load("@bazel-zig-cc//toolchain:zig_toolchain.bzl", "zig_cc_toolchain_config") =20 DEFAULT_TOOL_PATHS =3D { @@ -17,9 +17,6 @@ def declare_cc_toolchains(os, absolute_path, zig_include_ro= ot): zigtarget =3D target_config.zigtarget =20 cxx_builtin_include_directories =3D [] - for d in DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: - d =3D zig_include_root + d - cxx_builtin_include_directories.append(absolute_path + "/" + d) for d in getattr(target_config, "toplevel_include", []): cxx_builtin_include_directories.append(absolute_path + "/" + d) =20 @@ -53,7 +50,7 @@ def declare_cc_toolchains(os, absolute_path, zig_include_ro= ot): compiler =3D "clang", abi_version =3D "unknown", abi_libc_version =3D "unknown", - # visibility =3D ["//visibility:private"], + visibility =3D ["//visibility:private"], ) =20 native.cc_toolchain( @@ -68,5 +65,5 @@ def declare_cc_toolchains(os, absolute_path, zig_include_ro= ot): objcopy_files =3D "@zig_sdk//:empty", strip_files =3D "@zig_sdk//:empty", supports_param_files =3D 0, - # visibility =3D ["//visibility:private"], + visibility =3D ["//visibility:private"], ) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 8a8b4f5..2e939fd 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -1,9 +1,3 @@ -DEFAULT_INCLUDE_DIRECTORIES =3D [ - "include", - "libcxx/include", - "libcxxabi/include", -] - _ZIG_TOOL_PATH =3D "tools/{zig_tool}" =20 # Zig supports even older glibcs than defined below, but we have tested only @@ -101,12 +95,14 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): gotarget =3D "linux_{}_{}".format(gocpu, glibc_suffix), zigtarget =3D "{}-linux-{}".format(zigcpu, glibc_suffix), includes =3D [ - "libunwind/include", - "libc/include/generic-glibc", + "libc/include/{}-linux-gnu".format(zigcpu), + "libc/include/generic-glibc", + ] + + # x86_64-linux-any is x86_64-linux and x86-linux combined. + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64"= else []) + + (["libc/include/{}-linux-any".format(zigcpu)] if zigcpu != =3D "x86_64" else []) + [ "libc/include/any-linux-any", - "libc/include/{}-linux-gnu".format(zigcpu), - "libc/include/{}-linux-any".format(zigcpu), - ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), + ], toplevel_include =3D ["glibc-hacks"] if fcntl_hack else [], compiler_extra_includes =3D ["glibc-hacks/glibchack-fcntl.h"] if fcn= tl_hack else [], linker_version_scripts =3D ["glibc-hacks/fcntl.map"] if fcntl_hack e= lse [], @@ -127,11 +123,14 @@ def _target_linux_musl(gocpu, zigcpu): gotarget =3D "linux_{}_musl".format(gocpu), zigtarget =3D "{}-linux-musl".format(zigcpu), includes =3D [ - "libc/include/generic-musl", + "libc/include/{}-linux-musl".format(zigcpu), + "libc/include/generic-musl", + ] + + # x86_64-linux-any is x86_64-linux and x86-linux combined. + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64"= else []) + + (["libc/include/{}-linux-any".format(zigcpu)] if zigcpu != =3D "x86_64" else []) + [ "libc/include/any-linux-any", - "libc/include/{}-linux-musl".format(zigcpu), - "libc/include/{}-linux-any".format(zigcpu), - ] + (["libc/include/x86-linux-any"] if zigcpu =3D=3D "x86_64" else [= ]), + ], linkopts =3D [], dynamic_library_linkopts =3D [], copts =3D ["-D_LIBCPP_HAS_MUSL_LIBC", "-D_LIBCPP_HAS_THREAD_API_PTHR= EAD"], --=20 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=W7KlZflNVFjgKd628RF6PaVUJubT+rUOy4Q+3rHrpxM=; c=simple/simple; d=sr.ht; h=Date:Subject:To:Cc:From:In-Reply-To; q=dns/txt; s=srht; t=1664266328; v=1; b=NCYXfvN9GoTiM384oIMvv0Zysk1gDxQiDQHIqwGA2NBS/5ESsWVndRdHWnLPeTKNDJ6hZipK nRGGRix+3HVrumdnhXQoo2OaT1az2Xsj/IdIOgKcjUuOrLY51JDiFFEZl+RlC+unoN2AXg2vUI/ urwhxb19FXVu97UVnTJ01EIp+AJWjBxBFP/SBazSOKBX0c0GG6gZlpsvWbI6BhFfN/a2cNmN94E 3GjhqyDfH5ng3siBZJUVl5qsi7qupHMP0N0pFCdcdGYpIvkMpwkc86HbtgQbzls0/vhOsvmLtf7 9pLHhXmhIFKaRVTLsRZWXWYTYF3vyFnm60FhBETgyghsQ== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id C3F2F11EE04; Tue, 27 Sep 2022 08:12:08 +0000 (UTC) MIME-Version: 1.0 Date: Tue, 27 Sep 2022 08:12:08 +0000 Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~motiejus" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <166426346839.12781.6953968828011257615-2@git.sr.ht> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 47m37s [use relative paths][0] from [~motiejus][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35627 [1]: mailto:motiejus@jakstys.lt =E2=9C=93 #851368 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/851368 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=uber.com header.i=@uber.com Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by mail-b.sr.ht (Postfix) with ESMTPS id A049611EE05 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 09:44:45 +0000 (UTC) Received: by mail-qk1-f170.google.com with SMTP id d17so5651016qko.13 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 02:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uber.com; s=google; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=r5VFyX1uT1BFLnwrXt3uLx3lRhBc+ITbuN6f4nth1Gg=; b=vvbnJZEiuJt4m2ffffQyXu+Y8naonBmKxxIMgkii/lWQ6X21TnQmhRYDUeWf8vyN5U LnB/FRDXykuT2/Jw2WwvXWtTA3RzpLQ8SerPeR3Vqh1Nqa1A0iRcwwrn+gMukMPip/FV n/Ko4qOfW65WIq2C2WZspGwgfdsw4CFDAHFOs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=r5VFyX1uT1BFLnwrXt3uLx3lRhBc+ITbuN6f4nth1Gg=; b=VDBpQSk57bs2YO9HT3E4l7sJK6P64dF5Qbe5zBVL0cJhStzPUSo+fNJe+r7eXacNmc UeMAeOyJMUEAK/uym+PLTOvruaNsprC96YKWFjPEemuPUSnwAVHyiYd+90BrMicTCDUV 0LExWrmsyn6hr9/WLwh4sKsFUGBpPFAxBmaACGVjA/ihTBWwiUF6weFuDuLIAUR9qZfU Qq2cWpfBNpsfsA6VBjBz3o3DD6Md0DGtCSC7oPlp3SuUJzBuAleO80nfzWOg0JY9S88W 8yyNY3knobuft6mbxLxkKvhwgiIw4n6hlK+yuXfHOunCfDqnMHIyBJpM45rgSqSUoGMY taTQ== X-Gm-Message-State: ACrzQf1cX1aBsmkgNoAchdOUMGdFpv9CQtAkamC84YQzjchqeb6YJ47R TzsaFpTjgUkkdRq9jIUMmEVLubytMZPifn3LXktR X-Google-Smtp-Source: AMsMyM5YfFW5pOEuSYW2BGOZGw7sBOW82OY5UKDobg0Kx32YmdjDydMkfReEwBnQW6MOUNb1ME/cW7Do1qJzHRHEzx4= X-Received: by 2002:a05:620a:1239:b0:6ce:24c1:12d7 with SMTP id v25-20020a05620a123900b006ce24c112d7mr16841011qkj.496.1664271885023; Tue, 27 Sep 2022 02:44:45 -0700 (PDT) MIME-Version: 1.0 References: <166426346839.12781.6953968828011257615-0@git.sr.ht> In-Reply-To: <166426346839.12781.6953968828011257615-0@git.sr.ht> From: Laurynas Lubys Date: Tue, 27 Sep 2022 12:44:34 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc 0/2] use relative paths To: "~motiejus" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics, mail@kmicklas.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Mostly looks good. The `absolute_path` parameter can be inlined to avoid confusion. I don't see a good way to keep the `private` package. It has to go, so that all the generated files are available under the `zig_sdk//:all` fileset. On Tue, Sep 27, 2022 at 10:24 AM ~motiejus wrote: > > This patchset changes absolute paths to tools to relative paths. Work > was started by @kmicklas and completed by myself and @laurynasl. Please > review. > > Currently, with absolute paths, bazel's remote cache keys are different > between two workspaces, busting our remote cache. We hope (did not try > yet) that this will normalize them and fix our cache hit ratios. > > Fabian, this does not work on Windows yet; if you want to chime in, I > will wait a couple of days for your patch before I cut a release. > > 1.0 is coming soon. > > Ken Micklas (1): > WIP: use relative paths for tools > > Motiejus Jak=C5=A1tys (1): > defs: fix import paths > > README.md | 2 +- > toolchain/BUILD.sdk.bazel | 9 +++++++-- > toolchain/defs.bzl | 29 +++++++++++++++++++++++++---- > toolchain/private/BUILD.sdk.bazel | 7 ------- > toolchain/private/cc_toolchains.bzl | 17 ++++++++--------- > toolchain/private/defs.bzl | 29 ++++++++++++++--------------- > toolchain/toolchain/defs.bzl | 4 ++-- > 7 files changed, 57 insertions(+), 40 deletions(-) > delete mode 100644 toolchain/private/BUILD.sdk.bazel > > -- > 2.34.4 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by mail-b.sr.ht (Postfix) with ESMTPS id 1B25911EE05 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 13:10:04 +0000 (UTC) Received: by mail-oi1-f178.google.com with SMTP id m81so11839896oia.1 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 06:10:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date; bh=cBNiw8zybrgk0hg558e2v5hQQ5OHEb48r745rdZ9+Tk=; b=dbDdpk2p6sLSVmDD4hEh4NZLYV0zQZ0lcwNwnCi4DWYLKaxD5cQPz5vwudAr7AMvwC PgohWaiWFBhKc/VVAe81iS2irKoWClxZzn1XqzNyXhFRsUd0Gt0xezj1c5V57UGJnGpc 8J/pcMreo6CiIMEuRWvuLPWDdDSoSkGD18yAElnI8lilyNL+46BM+s/Ah4NhrnVtC1jx CxTAcWcunoyxwh3NotR9zI91C0ksiCayZBGU6yVai6PYhw2DzSSM/JjfYfEoeIcUbY7P t/swYzL6PmGjEyUjonp48koVRAErTes40JHpVdGAcdP5QAHtGzXs5l8iXV028G5Ax+QP hB+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=cBNiw8zybrgk0hg558e2v5hQQ5OHEb48r745rdZ9+Tk=; b=b/F2LU+u3InyGfvmHPoLT24MQdlnSFkDljgxWqZa8/8d8vxcMLTtNtYuX3aneEEwNK AsG6uVN2bbdq+xUAI1Ei5G8n3B2xWFgxDHUmkyvSfntTfFEofQ9nWsj4B2f0OiBBLvVN NBkRKsUsJ/dSwMayohHMdIHKORqpXze9beq5iSJu1NlTtUEgQjAqcPSfmQWzMbWhmKEd D/SkrQnebqTkv0HfSBWGM1WWPVARxw3j6+JRpFmA0VW2/c5RaZogqr1sLFp32D9Os6mM ApfzQLxs33ij1sH4oay7FSuDwU5BXjlZtKb7Ss5onF62nnSzBERHokwKBxvskgB2VyTs vtzA== X-Gm-Message-State: ACrzQf1prgnmbVCNta7dvBQoUIy3Y734OGhKu3UTtdauzZRm8VUVg3t0 k32pbaVrjrb7WHnN3oROj0QyfU4ycDlMBwhzwc6WgRPITMY= X-Google-Smtp-Source: AMsMyM5Kyq9LAyyIJZZsagbDl/3R1Ng5ZwWZkDauCpP6FlNXoh5oCFQTzFWwIUPEWMOT9ToiRQMYc7AYRqKS0PXGVic= X-Received: by 2002:a05:6808:a0a:b0:350:aae9:3c7 with SMTP id n10-20020a0568080a0a00b00350aae903c7mr1764209oij.216.1664284203295; Tue, 27 Sep 2022 06:10:03 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 27 Sep 2022 16:09:52 +0300 Message-ID: Subject: bazel-zig-cc v1.0.0-rc1 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, I just cut bazel-zig-cc v1.0.0-rc1. Big release: - use relative paths for tools. We hope this will make builds (more) reproducible and un-bust our remote cache hit rates. - you may have noticed zig_sdk is being "downloaded" ~10 times on some occasions. No longer. We are in final testing & acceptance phase to use bazel-zig-cc for all CGo at Uber's Go Monorepo. We may have a couple more RCs. Note: this release temporarily breaks Windows support; I will wait for a couple of days for Fabian's patch to port [1] before cutting v1.0.0. This release includes code from Motiejus Jak=C5=A1tys and Ken Micklas with close collaboration of Laurynas Lubys. [1]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35627 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f51.google.com (mail-oa1-f51.google.com [209.85.160.51]) by mail-b.sr.ht (Postfix) with ESMTPS id B00F111EE05 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 13:59:55 +0000 (UTC) Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-1319573379eso516462fac.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 27 Sep 2022 06:59:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=NWWaL96khLWrFeuHEpCKFpO9Uk7PENGUdwLiys4kvek=; b=MZk/b8eFw/uDRuWxXvOvxAc7wzeE/Zs0s7ACPE3TfGR+F/ysSOwL0W6PbQrJEQn5Cp mV5CG+Tpp6slfXS+MDStcdYcSJ0o3Smd3m1r1k6tQbmLuUI0v8Mp03i8t8isekhl1DGJ Bighdzoi0hANgz/IQuQfII7m3qVvgM9ab+O2Bw448FLkaczQTSWkRriGQc9HsQNvlFWR QoWCcMgsrDCsUqutAMh2CowNUE4souwv5Z2ITaj7YRm1RJsBOs4IfDKqvxDTp4oRTGUL 8B0FLvnBcAXG+ItvvRL167CJ8TiaL8/w6LqIqqJ4/Ji5cEZV6lAvzvXwqw/wTM1BmECB 24QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=NWWaL96khLWrFeuHEpCKFpO9Uk7PENGUdwLiys4kvek=; b=qcj4YYjQA6EjwQeaSnBhtC+vJx2CTmBRBLsHJFQQf2xZKiA0uF8yTCMbl9hIuSxEdZ WcUic5zYj6X+TZcTUVsfwgewlM8ehhVTYYPe19vC3R9fetHMKToDTuWQP5rwd7Najkjn sj+wM7cZ4L4QHOfdsexzbwhHRwdLnNJkKihyv0RYhfPxuG2WrOX+bez3SCeXSzvQGn8Y hOiI3E5FqvvGAPYtSkwzxdj9kmCzUWlbFw6JGk6AxJDcc/DTv6FSLpSh0LaXes/f4bqp wXw2Syew50khtOtMPqWpBLnqZEqUXJUGmDPNj/BWdgwGyCWvcsdXByNmBx2GES0j28H9 fVoA== X-Gm-Message-State: ACrzQf3rG+rHO88wr+NcwkJMcIpvcon18JYSH5DqhutT6SkLjebVw1iI eAkpQ4fpNScDOdxyc9/Y3OF6nAtxGbJOLbylBYnN9gdU X-Google-Smtp-Source: AMsMyM7YB6TQn8UidRWDQ3wNHSOyeN7PEOLcW+39BBYx7LP28r1Fqxpuxp4VmkbVCABa073pkEiJHusiDEddl9cePOU= X-Received: by 2002:a05:6870:b14f:b0:127:d4f1:6a90 with SMTP id a15-20020a056870b14f00b00127d4f16a90mr2276361oal.116.1664287195035; Tue, 27 Sep 2022 06:59:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 27 Sep 2022 16:59:43 +0300 Message-ID: Subject: Re: bazel-zig-cc v1.0.0-rc1 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Sep 27, 2022 at 4:09 PM Motiejus Jak=C5=A1tys = wrote: > - use relative paths for tools. We hope this will make builds (more) > reproducible and un-bust our remote cache hit rates. Quick update: bazel-zig-cc v1.0.0-rc1 does not mess up the remote cache keys. Jackpot! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 5F91511EEE2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 28 Sep 2022 16:38:28 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1664383103; bh=nZiSsi4a3L6utKl+cvx5mUU11oQlCVQAM3bzccuOFVo=; h=From:To:Cc:Subject; b=M687vJMugshPLNlJ3uk9sTKN0OjwjA4V9RxcfwWFLVMMo3XRBWvvLJD9tvvXY5ion ngnILZc79nqqiNkdB7IribEbiFRBjWL8xxDgExPzMlHXEK90Lv2V+sWbN/dXgs0jq0 P51I+qtrArEKXAk2PiFDkl6vIjiW9vHATxwuB0o0= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc] fix Windows host support with relative paths Date: Wed, 28 Sep 2022 17:38:11 +0100 Message-Id: <20220928163811.4756-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit v1.0.0-rc1 indeed broke Windows host support, but it was trivial to fix. Also, the massive speedups gained from bazel not redownloading zig multiple times more than made up for it, this was actually way worse on Windows than I've ever experienced it to be on Linux (could take up to 10 minutes on first bazel run...). Also very cool to see that we're now friendly to remote caches. Fantastic work everyone! I've tested v1.0.0-rc1 with my minimal patch below on Windows and everything is working fine. If we can add this then from my side v1.0.0 is good to go. Nice milestone indeed. Best, Fabian --- toolchain/defs.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 0aba0fb..487271f 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -93,15 +93,15 @@ _ZIG_TOOLS = [ "wasm-ld", # WebAssembly ] -# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN = """@echo off +set ZIG_LIB_DIR=external\\zig_sdk\\lib set ZIG_LOCAL_CACHE_DIR={cache_prefix}\\bazel-zig-cc set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% "{zig}" "{zig_tool}" %* """ -# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS = """@echo off +set ZIG_LIB_DIR=external\\zig_sdk\\lib if exist "%TMP%\\*" goto :usertmp set ZIG_LOCAL_CACHE_DIR=C:\\Temp\\bazel-zig-cc goto zig -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=zczVT4eRYBkbCSg5ecsE3BwZfMagCqVvV0rebt+AFo8=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1664386011; v=1; b=f+i6LUFuTw2PexTQo+vzq4G4ddTeyzGRGicT2E6Yx8OhjuDvjAHLt6NZl6ccv/E0Y+ZTM4Lb AwAGJvQLwobFb3uvIAPriSI29NlMQ6QvuzefnApcbw32xK8vUmNMJNClpjaELU+JPai8TtudRPk emwPtEdXOSo04vyDt46XQ73L5EZw2PYzXmSalATPCRR++p1Ocl2Z5NWOmmGGLmCWrrZsPIybWZi y3uAFuyrd+RMWYPWBoM5z+Y+EnNI1LjPaorU5Gfhrewi66iW+CmwdRB2jJQn2MAIQH7kuIkGQs3 cVhjfR4A3dlYJce3AFeiG6A2fkTm5B/Zd6qcRvje8LXLg== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 9F85C11EEE2; Wed, 28 Sep 2022 17:26:51 +0000 (UTC) MIME-Version: 1.0 Date: Wed, 28 Sep 2022 17:26:51 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <20220928163811.4756-1-fabian@hahn.graphics> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 48m21s [fix Windows host support with relative paths][0] from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35663 [1]: mailto:fabian@hahn.graphics =E2=9C=93 #852370 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/852370 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f43.google.com (mail-oa1-f43.google.com [209.85.160.43]) by mail-b.sr.ht (Postfix) with ESMTPS id 88C0911F04E for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 28 Sep 2022 17:39:05 +0000 (UTC) Received: by mail-oa1-f43.google.com with SMTP id 586e51a60fabf-12803ac8113so18209645fac.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 28 Sep 2022 10:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=qaL7GGgrR6+LcB0nMfuv/XEGqUKAHZzfsHSfMqGiWXE=; b=eXrwPluflVBoDQ8RN8qoNycAWWLxip4VFTn3nNdg3RhcH32QxcPIfN+OpDpoEIn7hL lrWggIdq+JKQtcEKD6lF4ohCRWR94919NDrkDcuKDrnQBBTjn+fEXDkai477DWYELmo0 FHcvcyxo/oERnWirkpdNVZL6W0x4k5BYmMTrplBlMcUz1DWUKimbXUunM1zE5U4aYRkG rtqDlFJJ4fZUZz5QucmGwrrIzDEdhw66qvBknSWGW50tpTqhkYsjcvwJZ7MqLA7osROc EBUkXRADzN4VNke/T/9AlSW73IiCDplJsXxltuUe4VBVFG09WTeIKfhR6HxU6AmzcOfm qcFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=qaL7GGgrR6+LcB0nMfuv/XEGqUKAHZzfsHSfMqGiWXE=; b=iEJeq4KuP50j9+Ijpgj1x5mTQPmhvCofRHB0trc6HrEtakvTcIL8M9+oPgszHaXUik d0tUCnm1b2lDhq1C4uQcYAxbY5/XPJfRvyNZi3e0gD8C+30X6ywSvAkf47o8Ffu0AwSK tzUWSKWNhnuF+PBRixPCCPLx4yYUYIYfZYROydL05geGAJ8yHlJB8ki/VZvygn5+Wu61 muBB7HMY4kdX+xAdGGhOvQPHox6wdM9iVk6Y2bHKlvKhmswqbaHov3WfvzaM4lvlJW+a +vL7JrezdUU/gV+elrGD31w+gEk0M870NPa35GHwU4vgf2t/bcev5UNWavEQmX2VsXb/ nRmw== X-Gm-Message-State: ACrzQf1GU4gH+Sqq9tffb/lJvnChsHF16rmZb6Ewr65mXRXqPAYvcLnR VYVQ5oIdAF0otitS1gkgHcJXxqhhGK5G6O+7Pe9PnRR0Nc0= X-Google-Smtp-Source: AMsMyM7EB2jI2qFrXCD1EBpbBcLzGml3gRTiF9f+ChdDLkQsDlvXCh/8E5lZL+Z9HmR4KQjEPTFtjK3W3sXngLkkD9I= X-Received: by 2002:a05:6870:b14f:b0:127:d4f1:6a90 with SMTP id a15-20020a056870b14f00b00127d4f16a90mr5958396oal.116.1664386744779; Wed, 28 Sep 2022 10:39:04 -0700 (PDT) MIME-Version: 1.0 References: <20220928163811.4756-1-fabian@hahn.graphics> In-Reply-To: <20220928163811.4756-1-fabian@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 28 Sep 2022 20:38:53 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc] fix Windows host support with relative paths To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi Fabian, On Wed, Sep 28, 2022 at 7:38 PM Fabian Hahn wrote: > diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl > index 0aba0fb..487271f 100644 > --- a/toolchain/defs.bzl > +++ b/toolchain/defs.bzl > @@ -93,15 +93,15 @@ _ZIG_TOOLS = [ > "wasm-ld", # WebAssembly > ] > > -# TODO: ZIG_LIB_DIR equivalent in powershell? > _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN = """@echo off > +set ZIG_LIB_DIR=external\\zig_sdk\\lib > set ZIG_LOCAL_CACHE_DIR={cache_prefix}\\bazel-zig-cc > set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% > "{zig}" "{zig_tool}" %* See the logic of Linux: if [ -d external/zig_sdk/lib ]; then export ZIG_LIB_DIR=external/zig_sdk/lib else export ZIG_LIB_DIR="$(dirname "$0")/../lib" fi It should set ZIG_LIB_DIR to external/zig_sdk/lib iff the directory exists. It may not exist if build tools change working directory before invoking zig cc. Hello Go! Can you update the patch to add this? Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 6588111F050 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 28 Sep 2022 18:58:29 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1664391505; bh=59+Xlj3WvqBwGrjjA1jXOHljOQCjh53DEv6XJpf5vPk=; h=From:To:Cc:Subject; b=GDy89IkCKUV/lFMnjtwZMdxoPWh5IkGPLMBFGcEgYSAcJxpexWxBbFQW2pPZqZdeN bspQgpbHeQCfsVz2tw6AmwfFO39bAjJUEL9DFeSkmBt4MOVVhSlIOuPoKU+6015sO4 hNOPRu7U8s4OengLZV5V47oxDHrvTcgF0JKfQ+zo= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2] fix Windows host support with relative paths Date: Wed, 28 Sep 2022 19:58:17 +0100 Message-Id: <20220928185817.4406-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- Fixed the Windows scripts to support changing working directories. Apologies for missing this, it didn't come up in my testing so I wasn't sure if would be needed and skipped it. It's a bit more complicated now than just adding a single line, but should still be fine. Best, Fabian toolchain/defs.bzl | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 0aba0fb..284d2fe 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -93,15 +93,25 @@ _ZIG_TOOLS = [ "wasm-ld", # WebAssembly ] -# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN = """@echo off +if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib +set ZIG_LIB_DIR=%~dp0\\..\\lib +goto :set_zig_lib_dir +:have_external_zig_sdk_lib +set ZIG_LIB_DIR=external\\zig_sdk\\lib +:set_zig_lib_dir set ZIG_LOCAL_CACHE_DIR={cache_prefix}\\bazel-zig-cc set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% "{zig}" "{zig_tool}" %* """ -# TODO: ZIG_LIB_DIR equivalent in powershell? _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS = """@echo off +if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib +set ZIG_LIB_DIR=%~dp0\\..\\lib +goto :set_zig_lib_dir +:have_external_zig_sdk_lib +set ZIG_LIB_DIR=external\\zig_sdk\\lib +:set_zig_lib_dir if exist "%TMP%\\*" goto :usertmp set ZIG_LOCAL_CACHE_DIR=C:\\Temp\\bazel-zig-cc goto zig -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=um/H94u9uG3jiKqtK6opec6OVER4+3uYUPAM2kq5ODw=; c=simple/simple; d=sr.ht; h=Date:Subject:To:Cc:From:In-Reply-To; q=dns/txt; s=srht; t=1664394340; v=1; b=jEz6APX7utEsOBPp/her0yUMV08BU8gMARGXiM8M3NDCfZ6uBEINLca0xz96FxajKcFIKGUB 0GD65sDJb3X42LDaBOImfDq9/TKcroDs+4+a2EZJD1e7vn/mG2qWq9SHVGcQfXqlX/CYfalTS0l 6Vpwrbo0u2wn1VMWEDGpCMen94GyQq9L+MIbh2oGUWcn/xJzfX7b3VxIq1u4aw9xWHOhqId8KXR 7hYPySwIFlpII/MrS0Cho3tTzrAGH2B46uNkPPetHJNNs0i5Z/6XVl78asFEy/AGaBnCb8vZWNN LZCETsLwpCU7/MBqbGqQt4KgrTSepTGxcXWvQX/hLmilA== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 490A011F050; Wed, 28 Sep 2022 19:45:40 +0000 (UTC) MIME-Version: 1.0 Date: Wed, 28 Sep 2022 19:45:40 +0000 Subject: [bazel-zig-cc/patches/.build.yml] build success To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <20220928185817.4406-1-fabian@hahn.graphics> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 47m9s [fix Windows host support with relative paths][0] v2 from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/35674 [1]: mailto:fabian@hahn.graphics =E2=9C=93 #852447 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/852447 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by mail-b.sr.ht (Postfix) with ESMTPS id 1A38711F0DA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 29 Sep 2022 08:33:40 +0000 (UTC) Received: by mail-oi1-f170.google.com with SMTP id d64so889810oia.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 29 Sep 2022 01:33:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=k7f3v35257wecXHbrge3h66zdPnddoPFCoZyYUDOQ1k=; b=oO4xAYm6SaxOJgUtCA93CRdnbs8ChGaXjMhWgV4pCxN0Om0960N26OcnzmN/OYlSOE CMcBE75sKFrQFSDH1JDHmIhGJE1H7mo39A1FmMCGa6sSkl+KmUvgJi001Fp8P2hgTYJh hj7cPJ/1PlBWgqjijx1F1dICLtDhC6vmkw/y6wOipGy1hO2RTTTYDvekd2mzeRZBGgYD p3w/w8tfbbh0rPnM2M86o4pBfy9sTEtxb4K4DSZRYTihrF2i68J6wzH2tfJz99kiBfUD UO+WlHP6w7KAzau5+exqOUuI60dj+QrpHfIa9t1Gf2bRvPYahi0cPqPK89gncHGp3WD9 nRqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=k7f3v35257wecXHbrge3h66zdPnddoPFCoZyYUDOQ1k=; b=WdVqoLIn3o9yV1kfcz0GWlVao2nbzYJiHlKDQyMBoXfvbE25If+/boS0/Av/ADZSTb /i+YV12/F+eKPP9BbmeZGxZqvIUrespDSJpH0TXtY8yrUvC+k60m8/E3gtCTPh+suace 735Y4xOXmSQLT+rgwD6q+jhqdXmVuUDMJGQWk85Ym+qrR1Nsjrl5MoFVXU2j7nWOKjyh wBm/NUXKns0fvK9JTtK6RNo66RnmfJvJnYdRczMQvJ0ZOpkRXROx/KHHZMRTfUanrIlS HkdmT4TFdy6C0wG0O8VT/3r5dLBIQSEP9UluRkpWvUGJZPfmlLR16kaf1dcQFmmdmmTf 7J/A== X-Gm-Message-State: ACrzQf0FHA8iDvttJTHFqSMc7YH74QX2b7jfUnUKEIAyL6Eb1dXROkwQ tyr23T0VtCUPecwsXNxhiRuyBGKNRlUNcdTqID9F9eS5 X-Google-Smtp-Source: AMsMyM61D9h+aah20DtTQqLfSoKZsIYE8ReLUtOWgG+nolYSqPdkD11wuDCN1t1K4b/bnSCVmkNRpvB2zYsgLcGyiJo= X-Received: by 2002:a05:6808:a0a:b0:350:aae9:3c7 with SMTP id n10-20020a0568080a0a00b00350aae903c7mr6316454oij.216.1664440419323; Thu, 29 Sep 2022 01:33:39 -0700 (PDT) MIME-Version: 1.0 References: <20220928185817.4406-1-fabian@hahn.graphics> In-Reply-To: <20220928185817.4406-1-fabian@hahn.graphics> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Thu, 29 Sep 2022 11:33:28 +0300 Message-ID: Subject: Re: [PATCH bazel-zig-cc v2] fix Windows host support with relative paths To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Wed, Sep 28, 2022 at 9:58 PM Fabian Hahn wrote: > > --- > Fixed the Windows scripts to support changing working directories. > Apologies for missing this, it didn't come up in my testing so I wasn't > sure if would be needed and skipped it. It's a bit more complicated now > than just adding a single line, but should still be fine. > > Best, > Fabian > Thanks! Applied and tagged v1.0.0-rc2. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) by mail-b.sr.ht (Postfix) with ESMTPS id C420311EE64 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 25 Oct 2022 06:59:41 +0000 (UTC) Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-13b103a3e5dso14554672fac.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 24 Oct 2022 23:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=jf6+1+G0zOxE1rzJSq3uMSkjpwIdg2Fm/ARuAuCiiE4=; b=sj+jKesr7+howUfNeubxE0bB9IUFuQxxluTnWHzeff0o+08+UCnMNLmWG72+sXVmkP +MlRNCLIEXSSVxMKE4iIjPGeR0zHth7UdB4PBDUvkXht4aWV4F0k+gfTu/p8zIsUEBYQ 7vXg8z2ThTCvTouw18mWXi3cpz6BkNFEIwFueg7RTjJVMJis3tEkFlrAPaYc1s+ZvJqA 4FE6qyBOUsSRkwtW2ZCXy1sjoUjucLaa70BC0wgm8FOUifJsOzwbqi/7OgQVgBDMkOvc OaTjqT9JUykT2iQwgE0guL4IgXVo38VU7IzLp9kqH9g0lCXwEKMuImwaeyxWd/sK44dq Y6Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=jf6+1+G0zOxE1rzJSq3uMSkjpwIdg2Fm/ARuAuCiiE4=; b=cj6+CZKAZkYDaXF9QCvhKKMPkfANCO7DBTOX0yI3naboW2N4+fBx3cLrkWCXC1LwAC a/qCrgSBLJ0Rpz3ZH3YPjORgAdRgeCYpv9bA4GqoLXQetsrJdMIRWRu3zqbGsc3a7fDL o51u7QxBJ6LoHjyImAN0OBh427553i8FBbIJQJHq8bYeLmjOfrzZroAwgzTsI9u63dTh 8Bk/Pq/+gKFtkP6Z/LNk2jzc+6ZDq9pwA5PvOQZMxRJcWMVwuz8k8NZirgwvTnkZ7gGx gwDHnRMLC1i9SZ3CxzelkpAzkF8JzGOHUnMo8G4Aa9dUZP7JUxp4bKCzGwnX3ehQbxYD Xelw== X-Gm-Message-State: ACrzQf0srv2JBlgd64+0eajB/2X28AvJjRCEPn8rttmla0CWzwei/ato caiTAsXgy0FC0t7IMtLLTyFajDTdqgNGb+oForkiFKiLBcM= X-Google-Smtp-Source: AMsMyM5TjyvBNtJz9Ax7S9fwoo7wObkMbBFsB/CFIikXxDEGL7H3GyUMcavLzcmP/sjYDQRKi9enj8H241LqPOwyStI= X-Received: by 2002:a05:6870:6189:b0:13b:9640:6ed7 with SMTP id a9-20020a056870618900b0013b96406ed7mr6496049oah.216.1666681180845; Mon, 24 Oct 2022 23:59:40 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 25 Oct 2022 09:59:29 +0300 Message-ID: Subject: what's cooking in bazel-zig-cc To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi folks, I made a few -rc releases and things went silent. Well, they are silent publicly, but I am very much working on v1.0. A few open tracks: - bazel-zig-cc is much slower than gcc/clang when building many small binaries. https://git.sr.ht/~motiejus/test-zigcc reproduces it whlist comparing to grailbio/bazel-toolchain. - relative ZIG_LIB_DIR does not work correctly in zig, tracked in https://github.com/ziglang/zig/issues/13050 ; currently bazel-zig-cc ships a forked version which includes #13051 (created using https://git.sr.ht/~motiejus/bazel-zig-cc/tree/main/item/contrib/README-patched.md ). - rare race in zig when building glibc stubs: https://github.com/ziglang/zig/issues/13160 I am currently narrowing down (1), so I can remove Bazel out of the picture and engage ZSF. The other two have been escalated to ZSF under Uber's support contract and we are awaiting resolution. Hold tight! Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=mobileink-com.20210112.gappssmtp.com header.i=@mobileink-com.20210112.gappssmtp.com Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by mail-b.sr.ht (Postfix) with ESMTPS id 1A22211EE04 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 3 Nov 2022 14:40:48 +0000 (UTC) Received: by mail-qt1-f178.google.com with SMTP id l2so1307345qtq.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Thu, 03 Nov 2022 07:40:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mobileink-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=jMlACLQlu7KNgsKUE+rAK6IghqNSJfYH0RjdLmrVNwc=; b=F2ymHMAxYPTHHVkddf1RkYcUru30i438IKnogOhgx2PGeka9QhYCwxcKE3yvRLIRKr bfvND/PoBnF4w7K/abneF32frSEikuiZOt+6JUhGEqu+2pd1xdjth9QRyJn0NvqVd3/Z jJXRgVGUWi5gCU10aUN36Jps4fCYsm/3v1q6X+FAcUopVc1JEdmEurJ/WKisCHb6Fo8m JAV51wEL3FMzcpEtpDAf9b2iuBtz7I09fcNWKws8zmGpr1Mfy8QG3wN1prlxvs17Tp15 zJOh54um2C/Si1tenjoB9ihvN1F9kyIWfYb7LFAludP+PYwzRYKieW28cT6zjMETFxzC uy8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=jMlACLQlu7KNgsKUE+rAK6IghqNSJfYH0RjdLmrVNwc=; b=UqANvCs1u4CAS9LDAK7q7Ed180Ay/+s94PMhOyz8l8kd9sNg224oyjotx/Z3hWQGCx +3uH8Ii3p3aYrGBLMDWRGdXQx1ZVIhPK4uOicz2BVzHCwqAOjpGihok/ECWSy+gmGGEd naRttCdFk3s6tCwmQlo28iYI0j0WdPW85vXOHpdCVnYxYYWZMkWBU7oUNrWNtuenPNaJ 4dob33dcBlL/eDTuwS17roLpdBJUUn1v4K1+gvkwvR9Pty90aXd4/jQ4h1N5EwROurJX 6k+FLIURrCGxFD9RwbJLnEn3icCkRPitC9GGZeP9fQctRSsnviCyii4niJwDFzmf/WQh lpqA== X-Gm-Message-State: ACrzQf3ZfOBmkT+fii0fDskzZ8ftnqiI1+8ZTRUYQq1I9syjGSXHHCHT PCT0q4D/Hi3vD9X7KZEERUCYBCzU7Yb5jIZm/Sayq7c62RqwmQ== X-Google-Smtp-Source: AMsMyM76BEOgp5tc15OQJxZrOL5rdJVe+f2RYvMfomhNJDZ6Ou3PzaBOOjdiHblfE6Q+cfyC6LCNsZYU0M8y/NaxeQQ= X-Received: by 2002:ac8:1102:0:b0:3a5:3f57:ebeb with SMTP id c2-20020ac81102000000b003a53f57ebebmr10605975qtj.59.1667486447325; Thu, 03 Nov 2022 07:40:47 -0700 (PDT) MIME-Version: 1.0 From: Gregg Reynolds Date: Thu, 3 Nov 2022 09:40:36 -0500 Message-ID: Subject: v1.0.0-rc1 fail on mac: stddef.h not found To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" First off: bazel-zig-cc is awesome, thanks so much! Second: I tried to send this via the mailing list 'new post' button and from gmail but both were rejected because they contain html. Recommend you find a friendlier mailing list manager. In any case here's the error: runtime/caml/config.h:51:10: fatal error: 'stddef.h' file not found #include ^~~~~~~~~~ Selected tc: INFO: ToolchainResolution: Target platform @local_config_platform//:host: Selected execution platform @local_config_platform//:host, type @bazel_tools//tools/cpp:toolchain_type -> toolchain @zig_sdk//:x86_64-macos-none_cc Compile cmd: external/zig_sdk/tools/c++ -MD -MF bazel-out/host/bin/runtime/_objs/sak.exe/sak.d '-frandom-seed=bazel-out/host/bin/runtime/_objs/sak.exe/sak.o' '-DCAMLDLLIMPORT=' -DIN_CAML_RUNTIME -iquote . -iquote bazel-out/host/bin -iquote external/bazel_tools -iquote bazel-out/host/bin/external/bazel_tools -Ibazel-out/host/bin/runtime/caml/_virtual_includes/hdrs -target x86_64-macos-none -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -O2 -DNDEBUG -g0 -fno-strict-aliasing -fwrapv -pthread -Wall -Werror -fno-common -c runtime/sak.c -o bazel-out/host/bin/runtime/_objs/sak.exe/sak.o) System: $ sw_vers ProductName: macOS ProductVersion: 12.6 BuildVersion: 21G115 $ xcodebuild -version Xcode 14.1 Build version 14B47b Thanks, Gregg From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by mail-b.sr.ht (Postfix) with ESMTPS id 0938D11EEE2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 4 Nov 2022 19:22:51 +0000 (UTC) Received: by mail-lf1-f54.google.com with SMTP id b3so8689903lfv.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 04 Nov 2022 12:22:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=cYx3yJ/RDDFOSuaADVZfbpxRd8e1fxtTE0tODqcXZvY=; b=l5h3FzQReJw0YY+o5aN9B1W73hto4wvBwHA9uqTpO+Rqxz/fi6EphKCKj1O/C2AW6m FXylGQ3v9wTrwAAnQo4J5OJcvyFMSoN4gsZdkmmLpYSevg/kEr0bQq0+OEcfnclkkOkL xfiWacTxR815RlINVd78QfXOXEHtSNVcSe9NohKcKrOpS2caid1eD6zaJIALtTFMT/SJ QdYmgxQW3tfQMvnTLLhrJTU30bYaAtDpi3D6ny+zMcrogdvhukciyfYeraqCUo140DeK S6JiBgMgIBMv1/q/NB1mZZgK6pdTS/zG2WZgk4b7l03a6RKAZ9qIeROwENBYTpg8pi6u 8n5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cYx3yJ/RDDFOSuaADVZfbpxRd8e1fxtTE0tODqcXZvY=; b=AsHMt4/q2cUf6b5jUTlmJ1R+XxvH7sy6tdbTWyySgub0ETTBslvliJf6HssZ4a+STw rcLKvpfbbmxUUfKddXF8XDGgLp7QzRkWvfivlpi1uTzWPcOAf2RekO6QEm3SvDUOn8PS fogoM0R82WwwOM4n3wYjWDPQzRnM8SPjc2TSnZBkwlRwgtu6LwfWFZgqUWrjHaUkvVvy ahS/5jK7dLvV1XSshXTcPb4UcMy24h/HDgXBy+uDgeh8Jy1JdszsaTVQhQAejHI4qOtK ES58jZ5Di/Jw8IE62MEy31BhKqQp7hIMaHhEWwBhQloDy0bwnHYakA+/W9VRivS6brg4 9wsQ== X-Gm-Message-State: ACrzQf2UsKjdvUskZmJrzDNJnP8dbr+0y7sZe913fc1mn8J5vMisU1jK /KNTHpM7Cy3IxQu4bA9vpFdNS12Yd18= X-Google-Smtp-Source: AMsMyM6bqv/PdYuL2wSI9D/WIfaFf9BCRCxNpBwSX5Zco6vmH5ggQJE5zkIYl/shrimNCgdPoH8/0w== X-Received: by 2002:a05:6512:3052:b0:4a2:67f0:eaaf with SMTP id b18-20020a056512305200b004a267f0eaafmr15048363lfb.34.1667589769360; Fri, 04 Nov 2022 12:22:49 -0700 (PDT) Received: from localhost (m90-131-45-252.cust.tele2.lt. [90.131.45.252]) by smtp.gmail.com with ESMTPSA id i14-20020a2ea22e000000b0026e8dd02eacsm44358ljm.16.2022.11.04.12.22.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Nov 2022 12:22:48 -0700 (PDT) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 4 Nov 2022 21:22:44 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Gregg Reynolds Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: v1.0.0-rc1 fail on mac: stddef.h not found Message-ID: <20221104192244.r53ifvwhbnyuughu@mtmine.i.jakstys.lt> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On Thu, Nov 03, 2022 at 09:40:36AM -0500, Gregg Reynolds wrote: > First off: bazel-zig-cc is awesome, thanks so much! Hi, thanks! > Second: I tried to send this via the mailing list 'new post' button > and from gmail but both were rejected because they contain html. > Recommend you find a friendlier mailing list manager. bazel-zig-cc is planned to move to github.com/uber ; timelines are unknown yet though. Will update this list when I have more details. > In any case here's the error: > > runtime/caml/config.h:51:10: fatal error: 'stddef.h' file not found > #include > ^~~~~~~~~~ Please use v0.9.2, the one that's recommended in the README. 1.0.0-rc versions are known to have bugs. See my earlier posts in this mailing list. I will ping here separately when I will need extra hands testing v1.0. It's not ready yet. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=mobileink-com.20210112.gappssmtp.com header.i=@mobileink-com.20210112.gappssmtp.com Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by mail-b.sr.ht (Postfix) with ESMTPS id 5902311EF1B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 4 Nov 2022 21:10:51 +0000 (UTC) Received: by mail-qv1-f47.google.com with SMTP id mi9so4024206qvb.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 04 Nov 2022 14:10:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mobileink-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wwFDZqdO3rtoRHVwu4ZKuKsRuY8F7ZOEiEjtfPOftmw=; b=CbgFEisgIrTS2Vv3iefgihY1xKWkOVX+eecol7d5bDFygdOZG0jfIRVCymHF4x7hkQ gcL5F+5dX3ZYmP0fZYK+dkwhQa0XRMNxF7oRiBybFm47ReHMCAgtLoKf9FTCpgizg3fi Bd8z/PQRUu/RTLrwpG5MwdFdJRqSVL6h4wR1VNc9bvj4S1t9tGvR/FE/8aEHf2v806Yt 3+m5RJLscKN+4ip7faecSnTC6EuDygD26UpftaeSm3KyRciynfTk095JCmGpBrk4WJ4W pXhzvZhGuLZjlaHmUSUaQZaUVCVvJP3UCwdRqlWfr4pIQicsKlU2yhavqjnNLSl2Uzz0 eC7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wwFDZqdO3rtoRHVwu4ZKuKsRuY8F7ZOEiEjtfPOftmw=; b=pkqQqN+V+98+H5TdMtgf7egLO4iSKs7WX/PTaKsTp3R0n8aKwT1w1AzNC7JivO2DT6 WAPeW38jeVrD25w1LyLCFBCzg8AV+BrdC8P8jVzWtXHCnRqKsyGR4D8/r8oWUthVlUy/ bxhyoxOQcy50/bnjEzBFDZwgp2LoVH/uSM6zmeXmTLPhtYmsFFuBuJXVI9zksxfw1stP FQdqPD7QWK89IQeXXOn6Dbhv3UI0lyBhpg7aAiLHzcBrIa8AnRDlgv6Qoy/Aa5LCmwF9 ol9CN3nLbswtf7Xkkf4hbd00UQ8SOuNiy6Ct0dptkdwTrxegnqIsRzqDNjoZ/aGPz5Sf Zhag== X-Gm-Message-State: ACrzQf2U/N/7KTmcljCd5C0WLX+6B25mA8Tc+HHRzWcaNTonRv3HrLUM FTHQwBIof+Dmd0Lo+qdVKUrKra2Is+5IHr8EG0FH1VL/z6A= X-Google-Smtp-Source: AMsMyM71d61IaU1620tQveHTo6060ovqlBWYOOv540Q8FClBcWmvoniSa2G555UJR0X0M3IEvQRAXEuLk95rocrZsiM= X-Received: by 2002:a05:6214:4104:b0:4af:8576:e65a with SMTP id kc4-20020a056214410400b004af8576e65amr34416169qvb.70.1667596250793; Fri, 04 Nov 2022 14:10:50 -0700 (PDT) MIME-Version: 1.0 References: <20221104192244.r53ifvwhbnyuughu@mtmine.i.jakstys.lt> In-Reply-To: <20221104192244.r53ifvwhbnyuughu@mtmine.i.jakstys.lt> From: Gregg Reynolds Date: Fri, 4 Nov 2022 16:10:40 -0500 Message-ID: Subject: Re: v1.0.0-rc1 fail on mac: stddef.h not found To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ok, thanks for the update. On Fri, Nov 4, 2022 at 2:22 PM Motiejus Jak=C5=A1tys = wrote: > > On Thu, Nov 03, 2022 at 09:40:36AM -0500, Gregg Reynolds wrote: > > First off: bazel-zig-cc is awesome, thanks so much! > > Hi, thanks! > > > Second: I tried to send this via the mailing list 'new post' button > > and from gmail but both were rejected because they contain html. > > Recommend you find a friendlier mailing list manager. > > bazel-zig-cc is planned to move to github.com/uber ; timelines are > unknown yet though. Will update this list when I have more details. > > > In any case here's the error: > > > > runtime/caml/config.h:51:10: fatal error: 'stddef.h' file not found > > #include > > ^~~~~~~~~~ > > Please use v0.9.2, the one that's recommended in the README. 1.0.0-rc > versions are known to have bugs. See my earlier posts in this mailing > list. > > I will ping here separately when I will need extra hands testing v1.0. > It's not ready yet. > > Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 206AC11F051; Sun, 11 Dec 2022 04:56:02 +0000 (UTC) From: ~motiejus Date: Sun, 11 Dec 2022 04:56:01 +0000 MIME-Version: 1.0 Subject: [PATCH bazel-zig-cc 0/1] changes in windows zig toolchain wrapper Message-ID: <167073456185.10966.5711284970000433405-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I am doing a change in Windows wrapper, which I have no means to test nor know is correct. Fabian, please test/ack. `--experimental_use_hermetic_linux_sandbox` option is interesting, because instead of symlinks in the sandbox it creates hardlinks. Which has a chance to fix https://github.com/ziglang/zig/issues/13619 ; Bazel's acceptance test in https://git.sr.ht/~motiejus/test-zigcc. Hermetic sandbox also means one thing: all outside-sandbox directories need to be explicitly allowlisted with `sandbox_mount_pair`. Since the toolchain wrapper uses /bin/sh, it brings a bunch of stuff with it: /bin, /lib, /lib64. If my experiments with `experimental_use_hermetic_linux_sandbox` will fix the performance issue, the zig wrapper rewrite to zig will happen sooner than later (and I may have an interesting bootstrap problem to solve). Motiejus Jak=C5=A1tys (1): toolchain wrapper: zig_exe path is relative toolchain/defs.bzl | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 4841211F2BB; Sun, 11 Dec 2022 04:56:02 +0000 (UTC) From: ~motiejus Date: Sun, 11 Dec 2022 06:43:28 +0200 Subject: [PATCH bazel-zig-cc 1/1] toolchain wrapper: zig_exe path is relative MIME-Version: 1.0 Message-ID: <167073456185.10966.5711284970000433405-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus In-Reply-To: <167073456185.10966.5711284970000433405-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Motiejus Jak=C5=A1tys Just like we know the path to zig_lib_dir, we do know the path to zig_exe. Lets use that. This was surfaced by experimenting with `--experimental_use_hermetic_linux_sandbox`. `repository_ctx.path("zig")` would return the real file system path to zig (outside of the sandbox), which is not good when the sandbox is hermetic. --- toolchain/defs.bzl | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 3d08abd..752a663 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -92,21 +92,25 @@ _ZIG_TOOLS =3D [ _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN =3D """@echo off if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib set ZIG_LIB_DIR=3D%~dp0\\..\\..\\lib +set ZIG_EXE=3D%~dp0\\..\\..\\zig goto :set_zig_lib_dir :have_external_zig_sdk_lib set ZIG_LIB_DIR=3Dexternal\\zig_sdk\\lib +set ZIG_EXE=3Dexternal\\zig_sdk\\zig :set_zig_lib_dir set ZIG_LOCAL_CACHE_DIR=3D{cache_prefix}\\bazel-zig-cc set ZIG_GLOBAL_CACHE_DIR=3D%ZIG_LOCAL_CACHE_DIR% -"{zig}" "{zig_tool}" {maybe_target} %* +"$ZIG_EXE" "{zig_tool}" {maybe_target} %* """ =20 _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS =3D """@echo off if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib set ZIG_LIB_DIR=3D%~dp0\\..\\..\\lib +set ZIG_EXE=3D%~dp0\\..\\..\\zig goto :set_zig_lib_dir :have_external_zig_sdk_lib set ZIG_LIB_DIR=3Dexternal\\zig_sdk\\lib +set ZIG_EXE=3Dexternal\\zig_sdk\\zig :set_zig_lib_dir if exist "%TMP%\\*" goto :usertmp set ZIG_LOCAL_CACHE_DIR=3DC:\\Temp\\bazel-zig-cc @@ -115,29 +119,33 @@ goto zig set ZIG_LOCAL_CACHE_DIR=3D%TMP%\\bazel-zig-cc :zig set ZIG_GLOBAL_CACHE_DIR=3D%ZIG_LOCAL_CACHE_DIR% -"{zig}" "{zig_tool}" {maybe_target} %* +"$ZIG_EXE" "{zig_tool}" {maybe_target} %* """ =20 _ZIG_TOOL_WRAPPER_CACHE_KNOWN =3D """#!/bin/sh set -e if [ -d external/zig_sdk/lib ]; then ZIG_LIB_DIR=3Dexternal/zig_sdk/lib + ZIG_EXE=3Dexternal/zig_sdk/zig else ZIG_LIB_DIR=3D"$(dirname "$0")/../../lib" + ZIG_EXE=3D"$(dirname "$0")/../../zig" fi export ZIG_LIB_DIR export ZIG_LOCAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" export ZIG_GLOBAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" {maybe_gohack} -exec "{zig}" "{zig_tool}" {maybe_target} "$@" +exec "$ZIG_EXE" "{zig_tool}" {maybe_target} "$@" """ =20 _ZIG_TOOL_WRAPPER_CACHE_GUESS =3D """#!/bin/sh set -e if [ -d external/zig_sdk/lib ]; then ZIG_LIB_DIR=3Dexternal/zig_sdk/lib + ZIG_EXE=3Dexternal/zig_sdk/zig else ZIG_LIB_DIR=3D"$(dirname "$0")/../../lib" + ZIG_EXE=3D"$(dirname "$0")/../../zig" fi if [ -n "$TMPDIR" ]; then _cache_prefix=3D$TMPDIR @@ -154,7 +162,7 @@ export ZIG_LIB_DIR export ZIG_LOCAL_CACHE_DIR=3D"$_cache_prefix/bazel-zig-cc" export ZIG_GLOBAL_CACHE_DIR=3D$ZIG_LOCAL_CACHE_DIR {maybe_gohack} -exec "{zig}" "{zig_tool}" {maybe_target} "$@" +exec "$ZIG_EXE" "{zig_tool}" {maybe_target} "$@" """ =20 # The abomination below adds "-O2" to Go's link-prober command. Saves around @@ -176,14 +184,13 @@ fi eval set -- "$saved" """ =20 -def _zig_tool_wrapper(zig_tool, zig, is_windows, cache_prefix, zigtarget): +def _zig_tool_wrapper(zig_tool, is_windows, cache_prefix, zigtarget): if zig_tool in ["c++", "build-exe", "build-lib", "build-obj"]: maybe_target =3D "-target {}".format(zigtarget) else: maybe_target =3D "" =20 kwargs =3D dict( - zig =3D str(zig).replace("/", "\\") + ".exe" if is_windows else zig, zig_tool =3D zig_tool, cache_prefix =3D cache_prefix, maybe_gohack =3D _ZIG_TOOL_GOHACK if (zig_tool =3D=3D "c++" and not = is_windows) else "", @@ -266,7 +273,6 @@ def _zig_repository_impl(repository_ctx): for target_config in target_structs(): zig_tool_wrapper =3D _zig_tool_wrapper( zig_tool, - str(repository_ctx.path("zig")), os =3D=3D "windows", repository_ctx.os.environ.get("BAZEL_ZIG_CC_CACHE_PREFIX", "= "), zigtarget =3D target_config.zigtarget, --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=SEhhsERM2tiN+zXwqVbO2CXOMOTdt0C5v57GnHy/avQ=; c=simple/simple; d=sr.ht; h=Date:To:Cc:From:In-Reply-To:Subject; q=dns/txt; s=srht; t=1670735653; v=1; b=SEFNUM+Ip5bueHhETm1VQapGJ2UloAIvplbMQH7UjJp24qUXpLPH91nIaLsFmgLMxh+DKTXF pIv56Z15L9Yxwxv+JEKpUWtvg28UsfYb9xheSkXtpyctY886JISWp3zhUfsvKycIXAuKvEzW9fW 0ywMi50oaylIIlYBJGBKLpOgvaO4riPxHyzq6bOaj/SwagpMl20gnzIdx5PYKCMBePHJaVAgpRM K3L/cmQKS7hHunaWDvtjRlHyu5QofQbM7nDDm7TwOJc7a+Ya2/i3qvE+gdboy8jkPoHeWG+7iWf LpvUKQ9zigB7e+qL67KWgcyxEI7jE0efEy9qxD632lM5Q== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 70A9B11F051; Sun, 11 Dec 2022 05:14:13 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 11 Dec 2022 05:14:13 +0000 To: "~motiejus" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <167073456185.10966.5711284970000433405-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build failed Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 18m9s [changes in windows zig toolchain wrapper][0] from [~motiejus][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37457 [1]: mailto:motiejus@jakstys.lt =E2=9C=97 #902752 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/902752 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id A706A11EF16 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 11 Dec 2022 14:53:50 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1670770425; bh=7Cya5rRskvQtJMLM4PNcWn0MIfEynP3CVGQLOZw3gw4=; h=From:To:Cc:Subject; b=SpntOUoK58nipd8RJgxmrLZtvPbf3MIOSbZWOPilLEDSjXeaba6ul2Oh969UVcuKg WvNmLEqgB4tSkTaQJ4zuGHB7eP19Y2NuXFtOvrZ/GfsAHQJWRWDPKfmQclBFDxO7bQ sBQ7pZv7FR2fgpF8Nq8cYidoNxqBVNLdxHUiB7o0= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc] fix windows include root path Date: Sun, 11 Dec 2022 14:53:37 +0000 Message-Id: <20221211145337.4722-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit --- When trying to test the patch https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37457 I noticed that the current main branch is broken on Windows. I ran a bisection and the offending bad commit is 88e7e47ed20ca7b2f9509dfe09089b812d7d94eb, which makes changes to the zig_include_root. Here's a small patch that resolves this and fixes Windows host support again on main. The issue here is that while paths on Windows do indeed use \ instead of /, the variable `d` here is used as a bazel target name for a filegroup rule, which must not contain backslashes. And bazel accepts forward slashes within glob() just fine on Windows, so no special handling needed here. toolchain/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index 3d08abd..aa2e4e6 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -318,6 +318,6 @@ def declare_files(os): for target_config in target_structs(): for d in _DEFAULT_INCLUDE_DIRECTORIES + target_config.includes: - d = "lib" + ("\\" if os == "windows" else "/") + d + d = "lib/" + d if d not in lazy_filegroups: lazy_filegroups[d] = filegroup(name = d, srcs = native.glob([d + "/**"])) -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 2823411EF16 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 11 Dec 2022 14:59:42 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1670770778; bh=KshE725FUdjyTNQ0Y1VtqU7JIh3l6+b+PI+dREBWejg=; h=From:To:Cc:Subject; b=g4NLq/WF/nlKGZDU5NY5bHrc/EfG9I+Z7BC2Gqtw/KEQeOiiAzJZzyDB3gjYrgR72 VZCUvK0fwHc0h9wgK4ZJzrhB+Pn8SlVjGXBU6sQYft+1BkNLHr9KM1CDJbzhxMkCob JveXjGkKvRNcGgf6hlmZZYJcctQxavB0Zv+6vAQE= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Subject: [PATCH bazel-zig-cc v2 0/1] changes in windows zig toolchain wrapper Date: Sun, 11 Dec 2022 14:59:28 +0000 Message-Id: <20221211145929.5701-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a revised version of https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37457 which fixes Windows host support. The key is to use %VAR% notation to interpolate environment variables within batch file strings, and to use the proper exe extension for the zig binary. Note that in order for this to work on Windows, this other patch I submitted also needs to be applied: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37465 This is because the current main is broken on Windows otherwise. Best, Fabian Motiejus Jakštys (1): toolchain wrapper: zig_exe path is relative toolchain/defs.bzl | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 09C9911EF16 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 11 Dec 2022 14:59:43 +0000 (UTC) From: Fabian Hahn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1670770780; bh=sKu6Fwv608vhiNqG38OqDveIHqZfZ63kFx0gzrfWuqQ=; h=From:To:Cc:Subject:In-Reply-To:References; b=SWSa1cAZXAWuplP0wXd9v4NabJUNeVXzzaAPgHw2TEWKf+PrU+x2pb0pGI0URmI6k f0P2EeATswa4KyUYP7VKkZ1FJmfNzKWpXcLQVOnArWMAMODqhPMUuRlGPUq7a9vBZN T3JrDvip6RwpveyMnCMegb3NfV5SKTL44ZqsEioE= To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Subject: [PATCH bazel-zig-cc v2 1/1] toolchain wrapper: zig_exe path is relative Date: Sun, 11 Dec 2022 14:59:29 +0000 Message-Id: <20221211145929.5701-2-fabian@hahn.graphics> In-Reply-To: <20221211145929.5701-1-fabian@hahn.graphics> References: <20221211145929.5701-1-fabian@hahn.graphics> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Motiejus Jakštys Just like we know the path to zig_lib_dir, we do know the path to zig_exe. Lets use that. This was surfaced by experimenting with `--experimental_use_hermetic_linux_sandbox`. `repository_ctx.path("zig")` would return the real file system path to zig (outside of the sandbox), which is not good when the sandbox is hermetic. --- toolchain/defs.bzl | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index aa2e4e6..746156d 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -92,21 +92,25 @@ _ZIG_TOOLS = [ _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_KNOWN = """@echo off if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib set ZIG_LIB_DIR=%~dp0\\..\\..\\lib +set ZIG_EXE=%~dp0\\..\\..\\zig.exe goto :set_zig_lib_dir :have_external_zig_sdk_lib set ZIG_LIB_DIR=external\\zig_sdk\\lib +set ZIG_EXE=external\\zig_sdk\\zig.exe :set_zig_lib_dir set ZIG_LOCAL_CACHE_DIR={cache_prefix}\\bazel-zig-cc set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% -"{zig}" "{zig_tool}" {maybe_target} %* +"%ZIG_EXE%" "{zig_tool}" {maybe_target} %* """ _ZIG_TOOL_WRAPPER_WINDOWS_CACHE_GUESS = """@echo off if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib set ZIG_LIB_DIR=%~dp0\\..\\..\\lib +set ZIG_EXE=%~dp0\\..\\..\\zig.exe goto :set_zig_lib_dir :have_external_zig_sdk_lib set ZIG_LIB_DIR=external\\zig_sdk\\lib +set ZIG_EXE=external\\zig_sdk\\zig.exe :set_zig_lib_dir if exist "%TMP%\\*" goto :usertmp set ZIG_LOCAL_CACHE_DIR=C:\\Temp\\bazel-zig-cc @@ -115,29 +119,33 @@ goto zig set ZIG_LOCAL_CACHE_DIR=%TMP%\\bazel-zig-cc :zig set ZIG_GLOBAL_CACHE_DIR=%ZIG_LOCAL_CACHE_DIR% -"{zig}" "{zig_tool}" {maybe_target} %* +"%ZIG_EXE%" "{zig_tool}" {maybe_target} %* """ _ZIG_TOOL_WRAPPER_CACHE_KNOWN = """#!/bin/sh set -e if [ -d external/zig_sdk/lib ]; then ZIG_LIB_DIR=external/zig_sdk/lib + ZIG_EXE=external/zig_sdk/zig else ZIG_LIB_DIR="$(dirname "$0")/../../lib" + ZIG_EXE="$(dirname "$0")/../../zig" fi export ZIG_LIB_DIR export ZIG_LOCAL_CACHE_DIR="{cache_prefix}/bazel-zig-cc" export ZIG_GLOBAL_CACHE_DIR="{cache_prefix}/bazel-zig-cc" {maybe_gohack} -exec "{zig}" "{zig_tool}" {maybe_target} "$@" +exec "$ZIG_EXE" "{zig_tool}" {maybe_target} "$@" """ _ZIG_TOOL_WRAPPER_CACHE_GUESS = """#!/bin/sh set -e if [ -d external/zig_sdk/lib ]; then ZIG_LIB_DIR=external/zig_sdk/lib + ZIG_EXE=external/zig_sdk/zig else ZIG_LIB_DIR="$(dirname "$0")/../../lib" + ZIG_EXE="$(dirname "$0")/../../zig" fi if [ -n "$TMPDIR" ]; then _cache_prefix=$TMPDIR @@ -154,7 +162,7 @@ export ZIG_LIB_DIR export ZIG_LOCAL_CACHE_DIR="$_cache_prefix/bazel-zig-cc" export ZIG_GLOBAL_CACHE_DIR=$ZIG_LOCAL_CACHE_DIR {maybe_gohack} -exec "{zig}" "{zig_tool}" {maybe_target} "$@" +exec "$ZIG_EXE" "{zig_tool}" {maybe_target} "$@" """ # The abomination below adds "-O2" to Go's link-prober command. Saves around @@ -176,14 +184,13 @@ fi eval set -- "$saved" """ -def _zig_tool_wrapper(zig_tool, zig, is_windows, cache_prefix, zigtarget): +def _zig_tool_wrapper(zig_tool, is_windows, cache_prefix, zigtarget): if zig_tool in ["c++", "build-exe", "build-lib", "build-obj"]: maybe_target = "-target {}".format(zigtarget) else: maybe_target = "" kwargs = dict( - zig = str(zig).replace("/", "\\") + ".exe" if is_windows else zig, zig_tool = zig_tool, cache_prefix = cache_prefix, maybe_gohack = _ZIG_TOOL_GOHACK if (zig_tool == "c++" and not is_windows) else "", @@ -266,7 +273,6 @@ def _zig_repository_impl(repository_ctx): for target_config in target_structs(): zig_tool_wrapper = _zig_tool_wrapper( zig_tool, - str(repository_ctx.path("zig")), os == "windows", repository_ctx.os.environ.get("BAZEL_ZIG_CC_CACHE_PREFIX", ""), zigtarget = target_config.zigtarget, -- 2.25.1 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=gT7xKJjOc/1EpJvoZQ71J0eekHIG+7u6QaPoSQv3F0E=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1670771490; v=1; b=UUdqKUNb8uacCV2JEjsumQd/QJecOhRkKrAet0hW/6Hl4VgEkxHGS7y38/P3MYnPT1prnAFo AXg7n2SuLZgkyiL/bDj+00Jq5ddDteGquArs5ZBzQTjjh6O0vKEEai04SjlAIrwKg/awX9mh4Zr 1kKhhFXY5sk+VCkZI9Qst8jjrhme2C2IC7YCAMTu1xOIZeozawmq/A4mAlGzsbuvrs88v/niCRo btpyyPqtWSjZu+MZ2AP9wnyHRJS1un7LnD45IFgzhlj6ApU3STG99gyaxLDaJI8kWxRVJmbYEez tPIQ509crvK7uNCDgZiyZd930ZBJNy4AE8qQMEgwnZpAQ== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 7F4BE11EF16; Sun, 11 Dec 2022 15:11:30 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 11 Dec 2022 15:11:30 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <20221211145337.4722-1-fabian@hahn.graphics> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 bazel-zig-cc/patches/.build.yml: SUCCESS in 17m38s [fix windows include root path][0] from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37465 [1]: mailto:fabian@hahn.graphics =E2=9C=93 #902966 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/902966 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=dWs0WggYTNebMtC0i1Z/tFNbrDlbP48VuSL24yIPKF4=; c=simple/simple; d=sr.ht; h=Date:In-Reply-To:Subject:To:Cc:From; q=dns/txt; s=srht; t=1670771913; v=1; b=dUW3XL7QbHXCRWODcWUT50O5fldY7S3cx4lVx9wu1kAAK959n1stMhIAmgzwMPKEX2X0P5io w/sB8S0XssNAEpILZecZQ7Ac/tc6J3AL+xGPZPeyzv1xdFzcr3vFVbY3KMejCbg1IFuI1/pdxcb Kawt3xw/8iJRDZA97v7DMHquBffLkfiA8PwHhpZjqwC/kzYytKyhm4B65U1IeTR1f15M57DGVQ5 0u82A4MlEmJtG4GhiJTIvotsLRML7BiJG1rUxjyFTF0JWsl33mxmFAgQnyyd9jAjLU3ar0avQqv iaXk9hUOpygbrlI5pLW4RfBeiRp0AtV28p8DIcmdTsX9w== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 34A6511EF16; Sun, 11 Dec 2022 15:18:33 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 11 Dec 2022 15:18:33 +0000 Message-ID: In-Reply-To: <20221211145929.5701-2-fabian@hahn.graphics> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "Fabian Hahn" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 18m48s [changes in windows zig toolchain wrapper][0] v2 from [Fabian Hahn][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37466 [1]: mailto:fabian@hahn.graphics =E2=9C=93 #902967 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/902967 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by mail-b.sr.ht (Postfix) with ESMTPS id 56CAB11EF2F for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 11 Dec 2022 16:32:00 +0000 (UTC) Received: by mail-lf1-f51.google.com with SMTP id y25so14699483lfa.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 11 Dec 2022 08:32:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=XzuoAlh6IDmX/e4P7zHpbMNsl+grZq2CS3bqWYvauYY=; b=PgkwAc8n+WjWTU8lay7rY25pAogWGZw3EmgGkjZTH/Mh3pG1nqrgxFfFrH7pR22Crz KjewdZU4iiI8WtaWnB3IsNZJz1D8VnDuU8jjb5saxNS7CCCiWYv38/O1VqzcRTxZidQq ikOc6JrnX+cj49o+P01BrqyuD8otTVQCDfprikCyaJo4ra34B9Ke2gV4F5s5siHbz5dy 5TYXsy+k/1b27m34/W3Q1g1rX+yc6wPaC5WGqNnvdnY6pV5TyhJewHasQh7C5Vixh+/R NZ9U7Ti3QXfIebxVqSONaVR2hHIsHncqXD1q4/h8yOMl3RBiXAR0xRDc+pYkYePbBF/t uHHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XzuoAlh6IDmX/e4P7zHpbMNsl+grZq2CS3bqWYvauYY=; b=2ZbPviEVg4RsyfS+CSbAgZTaDcaOHQdhgnUCi3pD4dnjVD64DYxb1f5LjdIUpYDRb/ 4sN8zE1N5/HXHjzAAcx5T4deJyIGB1xgqTJu5MLqOpXfUsi54eBrASCXNzJkwOuEqMON cxj+KTejAZe7lAiXzHoEtPhUyqIZAMLyYBW9D9Pg3Ff2U8dlKY8Lvi1jn+c/ZV+rzPza IyPFVJnV41NR+FXJgKGy4+7Dw1E7vawF9pW9y8f16KgNgr4ffBz6kJu0PM2AnpwROI35 cC2P/OSHNdxls5aDYDLtkySmnz97+5lhB83jebUaydyx7WVtlJkkc3NaET4s4pgYIiab B+2Q== X-Gm-Message-State: ANoB5pk4uNDEEfl+E3HbtCbOTUHsfmYMnHT06dUQW2RmxQWKkbAzVq0f q7iLcI4XmSVazwanntbUHecUfSKqYG4= X-Google-Smtp-Source: AA0mqf6XcpSBJkeV0UESaEJ9tx2dpk5usg4AfPj7UT60r4HdY7jXLKfmVpmTz7E5P8Oj7wGn9NgVEw== X-Received: by 2002:ac2:58ea:0:b0:4a4:68b7:f86e with SMTP id v10-20020ac258ea000000b004a468b7f86emr4690733lfo.18.1670776318489; Sun, 11 Dec 2022 08:31:58 -0800 (PST) Received: from localhost ([88.223.105.24]) by smtp.gmail.com with ESMTPSA id m10-20020a056512358a00b004b585003839sm1235842lfr.265.2022.12.11.08.31.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Dec 2022 08:31:57 -0800 (PST) Sender: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sun, 11 Dec 2022 18:31:56 +0200 From: Motiejus =?utf-8?Q?Jak=C5=A1tys?= To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Subject: Re: [PATCH bazel-zig-cc v2 0/1] changes in windows zig toolchain wrapper Message-ID: <20221211163156.evp5thus2itgiful@mtmine.i.jakstys.lt> References: <20221211145929.5701-1-fabian@hahn.graphics> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20221211145929.5701-1-fabian@hahn.graphics> On Sun, Dec 11, 2022 at 02:59:28PM +0000, Fabian Hahn wrote: > This is a revised version of > https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37457 which fixes > Windows host support. The key is to use %VAR% notation to interpolate > environment variables within batch file strings, and to use the proper > exe extension for the zig binary. > > Note that in order for this to work on Windows, this other patch I > submitted also needs to be applied: > https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37465 > This is because the current main is broken on Windows otherwise. Hi Fabian, thank you, applied both. Be assured that I will break Windows again. However, I will definitely ask for your testing/feedback before I cut v1.0. Thanks for your continued contributions. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) by mail-b.sr.ht (Postfix) with ESMTPS id 986F411F284 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 14 Dec 2022 13:19:16 +0000 (UTC) Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-1322d768ba7so16526094fac.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 14 Dec 2022 05:19:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=/YM5JhtOsbamKOhauM3du3FSimX3Xr1KXH8guB6PdaU=; b=TN4Awr18kkm/s9QY1rHHfEC/DyyIH2G9rjwSfBhcR6ffQWvSDbSiLH86uzjU967eDw EpGKaD2A+kO+nvUj0FeveXez7PTa7Ezg/8CbUh78sfFfLZrdUZLzpfDFfyiApurOR7d/ KrAWX70FJiJacYdzUDvj269CrQKhqoh8l+8ep+Yy2uQVkDD0NJRLdT7Gj57kves8tPaS GKMQrTVEqjHLvtv1R/3lWu/ERVXIoxybHcaS3fGsrO+xNkjFQ1mxvCYVJ5RT43RoFXiJ ZPCSsY3zZnpM/aYFdSL0NjJGjDoYWoCadzEI3hysRBJ+fsyTVKUYAxAFNdmG53Go5P2/ IMHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/YM5JhtOsbamKOhauM3du3FSimX3Xr1KXH8guB6PdaU=; b=4ThcRJ7KY8rgRVNLpvk0d+NfvYS3ZUlgvcAKWAmRqRCAPCoKLRCSjp9kPdmoKHgp/W e5zGRTpHtriAS5a+xV5XmUqXKfGTXovOJ8EfLfZgbaI9arecyV1yq8U0DJzHcNCsDA9V Y7l7MJExJDKXrRfjP53Mx5JqPh2byBHsUwB5qHP0u6G2gfVRzaA9VMD+Swyl6MljqN2M 4gMVIGKnSCnhUTzABwn83ZDAgVbdg7xJ1B8wGVCPq5qi1SO7SouifU1KjNc5GyoOsm/O kOEMBqDR2BC/nxNoFhe5UYyIDcZPxkfJDHQFRQ6R/X5VgEZjyB6NlPp3dJI7v0ImK4KG fDsg== X-Gm-Message-State: AFqh2kqg1b0z0Q3bot3583L92TFQ4i2TS0tlzmkSQwtGH3vXIExNalUg JzWt1/EYlipoQl9AovxyaaWFs84JzUkvF0olRVCf3uyi X-Google-Smtp-Source: AMrXdXvksExt1FuthkzBs3iXHM1abzQrv02CRMiIXyuO3R4DhRartHbRV4cFZRKKyKGpS8OjLGHeuyot7Kr7NqqhNh8= X-Received: by 2002:a05:6870:d147:b0:143:fa7f:2b29 with SMTP id f7-20020a056870d14700b00143fa7f2b29mr228736oac.116.1671023955813; Wed, 14 Dec 2022 05:19:15 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 14 Dec 2022 15:19:04 +0200 Message-ID: Subject: bazel-zig-cc v1.0.0-rc4: call for testers To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi all, I just cut a v1.0.0-rc4 for testing. Comparing to v0.9 series it does not have new features, but offers substantial performance gains: * all compiler paths are now relative, making it remote-cache friendly. * number of files it needs to pull in to the sandbox is much smaller: 2k for a compile step of x86_64-linux-gnu.2.28, and ~3700 for the linking step. Compared to almost 16k previously. Please test and report back any regressions. I tested Uber's Go Monorepo with it, it seems fine. However, we are very x86_64-linux-gnu centric (both host and target). Please run your tests *especially* if you have a different environment. All bazel-zig-cc contributors should have received an email asking for permission to re-license it to Apache License 2.0. If you contributed to bazel-zig-cc and did not receive that email, please let me know! I am still waiting for a few replies. The sooner we change the license, the sooner bazel-zig-cc can be put under Uber's open-source umbrella. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id 14CE711EEFC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 14 Dec 2022 18:17:37 +0000 (UTC) Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1671041851; bh=BMp6CboYmE/Exg83TwZU/aQC/jh5oe7x5ndAVB68ZK8=; h=To:Cc:References:Subject:From:In-Reply-To; b=LHpTnQUc+qTS2hPpEmrHVdLMCMX7oQMXtbLA/NQNlBDdZ1foh60kwwE2YWW2YZgOH QJIqx1eVlSPKduDugTPQfVIu97VpLVnUOSVTLjy6/BkkmGa5GOztUF4XG2uSxQ+QOA rEt34hnFzyRCWb+ICpexFsOZMLbZ497Iz7CcJr4M= Date: Wed, 14 Dec 2022 18:17:30 +0000 Mime-Version: 1.0 To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: =?UTF-8?Q?Motiejus_Jak=c5=a1tys?= References: Subject: Re: bazel-zig-cc v1.0.0-rc4: call for testers Content-Language: en-US From: Fabian Hahn In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Motiejus, I've successfully tested v1.0.0-rc4 on both linux_amd64 and windows_amd64 as both hosts and targets with my project. Performance looks very good and I couldn't spot any regressions. Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 4CB9411EF38 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 01:00:18 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 01:00:18 +0000 Subject: [PATCH bazel-zig-cc 0/1] Adds supports_dynamic_linker feature MIME-Version: 1.0 Message-ID: <167123881817.10048.795028335685500161-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I noticed that the default cc toolchain outputs .so files next to the .a, and provides a "dynamic_library" output group. With bazel-zig-cc, an attempt to use the "dynamic_library" output group fails with > failed: Toolchain does not support dynamic linking Maybe I'm missing something, but adding support seems as simple as enabling the "supports_dynamic_linker" flag. Jeremy Volkman (1): Adds supports_dynamic_linker feature toolchain/zig_toolchain.bzl | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 7DDEA11EFC3 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 01:00:18 +0000 (UTC) From: ~jvolkman Date: Fri, 16 Dec 2022 16:44:57 -0800 Subject: [PATCH bazel-zig-cc 1/1] Adds supports_dynamic_linker feature Message-ID: <167123881817.10048.795028335685500161-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167123881817.10048.795028335685500161-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Jeremy Volkman With this feature, cc_library generates a .so as well as a .a and the "dynamic_library" output group is enabled. --- toolchain/zig_toolchain.bzl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index f76aa80..2578973 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -129,9 +129,15 @@ def _zig_cc_toolchain_config_impl(ctx): flag_sets = dynamic_library_flag_sets, ) + supports_dynamic_linker = feature( + name = "supports_dynamic_linker", + enabled = True, + ) + features = [ compile_and_link_flags, default_linker_flags, + supports_dynamic_linker, ] + _compilation_mode_features(ctx) return cc_common.create_cc_toolchain_config_info( -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=B4GNcGx65AMDP24hxZuXybpuduDUZjyLoGhAR8fLS3o=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1671239906; v=1; b=AZSd92xt/wJIUIuQYCQh+zb4JwHRY7Yo9MFIQ6lbUnbT7OJ8XS2hSBytcnHhy44BEEkLiIlz aZhe6SNyMWolSsX5HQAN6qQbBsUXZWA0tApokfTR6PTP4FxEx0LTsMg8002iZL9q/2p2mR2Z0P3 H+LmTEyDS74tuIwl6+0si28sE3BExfcOzPRxmmtM2ksu/xJMfXOdECIFlnq4RlVMyE+DfuQsLNd wES+c1WgITlCcwuZf5T7rm+Kzdfly/ZsXSnHnS0333kD1J6O0Qo+R2IOsIFVMXksCP0vpZprCoJ /H/vzcpQfFVxbH4UY/WpIjMWT6CSUrA6MmPca4ebRFR8w== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id EEDB511EF38; Sat, 17 Dec 2022 01:18:26 +0000 (UTC) MIME-Version: 1.0 Date: Sat, 17 Dec 2022 01:18:26 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <167123881817.10048.795028335685500161-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 18m7s [Adds supports_dynamic_linker feature][0] from [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37589 [1]: mailto:jeremy@jvolkman.com =E2=9C=93 #906609 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/906609 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 3490811EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 19:28:06 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 19:28:05 +0000 Subject: [PATCH bazel-zig-cc 0/2] Use -mcpu=apple_m1 when targeting macos + aarch64 MIME-Version: 1.0 Message-ID: <167130528597.14686.15641291907532780059-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I ran into a build failure using bazel-zig-cc to build BoringSSL - Google's OpenSSL fork that ships with Bazel rules. BoringSSL assumes some features present on an M1 mac and fails if they're not present [1]. When using -target aarch64-macos.11-none, zig sets the cpu model to "generic", as far as I can tell, which lacks a bunch of features - including SHA2 and AES that BoringSSL is expecting. I think we can assume that macos + aarch64 means at least an M1 ship, so instead we can use the -mcpu=3Dapple_m1 flag which adds these features and more [3]. I also renamed _target_darwin to _target_macos to align with the Bazel os name. I think darwin technically lies under iOS and Apple's other mobile OSs as well. 1: https://github.com/google/boringssl/blob/97dd962a20b1d19c9e569cf8756fbcfc48ff= 7c73/crypto/cpu_aarch64_apple.c#L56 2: https://github.com/ziglang/zig/blob/90477e5c10c9c263a3c0038e1ae7b814d2c5397e/= lib/std/target/aarch64.zig#L2031 3: https://github.com/ziglang/zig/blob/90477e5c10c9c263a3c0038e1ae7b814d2c5397e/= lib/std/target/aarch64.zig#L1507 Jeremy Volkman (2): Rename _target_darwin to _target_macos Use -mcpu=3Dapple_m1 when targeting macos + aarch64 toolchain/private/defs.bzl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 4D5B511EF5B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 19:28:06 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 10:19:28 -0800 Subject: [PATCH bazel-zig-cc 1/2] Rename _target_darwin to _target_macos Message-ID: <167130528597.14686.15641291907532780059-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167130528597.14686.15641291907532780059-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Jeremy Volkman This aligns with bazel's @platforms//os:macos --- toolchain/private/defs.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 96830ca..8387ce6 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -39,14 +39,14 @@ def zig_tool_path(os): def target_structs(): ret = [] for zigcpu, gocpu in (("x86_64", "amd64"), ("aarch64", "arm64")): - ret.append(_target_darwin(gocpu, zigcpu)) + ret.append(_target_macos(gocpu, zigcpu)) ret.append(_target_windows(gocpu, zigcpu)) ret.append(_target_linux_musl(gocpu, zigcpu)) for glibc in _GLIBCS: ret.append(_target_linux_gnu(gocpu, zigcpu, glibc)) return ret -def _target_darwin(gocpu, zigcpu): +def _target_macos(gocpu, zigcpu): min_os = "11" return struct( gotarget = "darwin_{}".format(gocpu), -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 67C2811EF0D for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 19:28:06 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 10:26:04 -0800 Subject: [PATCH bazel-zig-cc 2/2] Use -mcpu=apple_m1 when targeting macos + aarch64 Message-ID: <167130528597.14686.15641291907532780059-2@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167130528597.14686.15641291907532780059-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 From: Jeremy Volkman --- toolchain/private/defs.bzl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 8387ce6..8571621 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -48,6 +48,11 @@ def target_structs(): def _target_macos(gocpu, zigcpu): min_os = "11" + copts = [] + + if zigcpu == "aarch64": + copts = ["-mcpu=apple_m1"] + return struct( gotarget = "darwin_{}".format(gocpu), zigtarget = "{}-macos-none".format(zigcpu), @@ -59,7 +64,7 @@ def _target_macos(gocpu, zigcpu): "libc/include/any-macos-any", ] + _INCLUDE_TAIL, dynamic_library_linkopts = ["-Wl,-undefined=dynamic_lookup"], - copts = [], + copts = copts, libc = "darwin", bazel_target_cpu = "darwin", constraint_values = [ -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=4+EoGXdTYKSFBPZqzlT3wwpXHnnEGxav8ELNjt9LerM=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1671306380; v=1; b=E/O0ssHT/MtvNxttPg0W2VQvOxVHWaGvpydQUsQv83D0vi84H2HSqEUBPvKrmGLEdviGjQWx x1M1RsYxuv9v+8fNwYPEI3CFnVOALYSlkdZUamKmCwMZhiHyrmHXsJ4Y1bnWag4jYl7yQADDNkI q1pWJ3L/WRtUvWVWULRLrlNPxAaVrTHJ8+w1DoEumtdT1Y1YwOSigQ37t22vJyPoi5Wy1H82jh2 ZMuYp79X0YW3B7T5AK4C/Hky93cWa+Z91mhvj/BYsdRdmZANg0IwE8wvFtJvR608w/TIF9LsSTi CRW5R6R7x97QYRiY4T1W0yEmNzSTSzZnN2jWN49xVgS4g== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 1E98611EF0D; Sat, 17 Dec 2022 19:46:20 +0000 (UTC) MIME-Version: 1.0 Date: Sat, 17 Dec 2022 19:46:20 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <167130528597.14686.15641291907532780059-2@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 18m11s [Use -mcpu=3Dapple_m1 when targeting macos + aarch64][0] from [~jvolkman][1= ] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37601 [1]: mailto:jeremy@jvolkman.com =E2=9C=93 #906945 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/906945 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id E89F411F103 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 23:56:27 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 23:56:27 +0000 Subject: [PATCH bazel-zig-cc 0/1] Use artifact_name_pattern to specify proper macos and windows artifact names MIME-Version: 1.0 Message-ID: <167132138766.5086.1705176352038753909-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I found that Bazel's cc toolchain system allows specifying artifact name patterns. So we can make shared libraries end with ".dylib" on macos and ".dll" on Windows. This is likely a breaking change for anyone relying on the defaults, but it seems like the proper thing to do, and the built-in toolchains do the same thing. There wasn't an obvious way to pass complex values from the target_structs entries to the zig_cc_toolchain_config rule, so I opted to pass a list of json-encoded strings. One other way I thought of was to break the artifact_name_pattern parameters into "artifact_name_prefixes" and "artifact_name_suffixes" dicts which would fit into an attr.string_dict, but it was adding complexity for not much gain IMO. I based this patch on top of my other two recent patchsets. It might not apply cleanly on top of main, but conflicts should be small. Jeremy Volkman (1): Use artifact_name_pattern to specify proper macos and windows artifact names. README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 7 +++++++ 4 files changed, 38 insertions(+), 11 deletions(-) -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 1EC9111F161 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 23:56:28 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 15:27:21 -0800 Subject: [PATCH bazel-zig-cc 1/1] Use artifact_name_pattern to specify proper macos and windows artifact names. Message-ID: <167132138766.5086.1705176352038753909-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167132138766.5086.1705176352038753909-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Jeremy Volkman On macos, dynamic libraries are generated as "libfoo.dylib". On windows, executables end with ".exe", static libraries end with ".lib", and dynamic libraries end with ".dll". --- README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 7 +++++++ 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c447ae8..3931247 100644 --- a/README.md +++ b/README.md @@ -338,17 +338,6 @@ is currently not implemented. target macos.10 (Catalina), macos.11 (Big Sur) or macos.12 (Monterey). It currently targets the lowest version, without ability to change it. =20 -## Windows only: output file extensions - -For Windows targets Bazel uses Unix extensions for output binaries. Those may -need to be renamed before deploying to the Windows system. Here is a primer: - -| Binary type | Bazel extension | Windows extension | -|----------------|-----------------|-------------------| -| Static library | .a | .lib | -| Shared library | .so | .dll | -| Executable | (no extension) | .exe | - # Known Issues In Upstream =20 This section lists issues that I've stumbled into when using `zig cc`, and is diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 3fa0b93..a935ef5 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -39,6 +39,10 @@ def declare_cc_toolchains(os, zig_sdk_path): for incl in getattr(target_config, "compiler_extra_includes", []): copts =3D copts + ["-include", zig_sdk_path + "/" + incl] =20 + # We can't pass a list of structs to a rule, so we use json encoding. + artifact_name_patterns =3D getattr(target_config, "artifact_name_pat= terns", []) + artifact_name_pattern_strings =3D [json.encode(p) for p in artifact_= name_patterns] + zig_cc_toolchain_config( name =3D zigtarget + "_cc_config", target =3D zigtarget, @@ -53,6 +57,7 @@ def declare_cc_toolchains(os, zig_sdk_path): compiler =3D "clang", abi_version =3D "unknown", abi_libc_version =3D "unknown", + artifact_name_patterns =3D artifact_name_pattern_strings, visibility =3D ["//visibility:private"], ) =20 diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 8571621..9409f5e 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -72,6 +72,13 @@ def _target_macos(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "dynamic_library", + "prefix": "lib", + "extension": ".dylib", + }, + ], ) =20 def _target_windows(gocpu, zigcpu): @@ -92,6 +99,23 @@ def _target_windows(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "static_library", + "prefix": "", + "extension": ".lib", + }, + { + "category_name": "dynamic_library", + "prefix": "", + "extension": ".dll", + }, + { + "category_name": "executable", + "prefix": "", + "extension": ".exe", + }, + ], ) =20 def _target_linux_gnu(gocpu, zigcpu, glibc_version): @@ -126,6 +150,7 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): ], libc_constraint =3D "@zig_sdk//libc:{}".format(glibc_suffix), tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) =20 def _target_linux_musl(gocpu, zigcpu): @@ -151,4 +176,5 @@ def _target_linux_musl(gocpu, zigcpu): ], libc_constraint =3D "@zig_sdk//libc:musl", tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index 2578973..974221f 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -1,6 +1,7 @@ load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "artifact_name_pattern", "feature", "feature_set", "flag_group", @@ -140,6 +141,10 @@ def _zig_cc_toolchain_config_impl(ctx): supports_dynamic_linker, ] + _compilation_mode_features(ctx) =20 + artifact_name_patterns =3D [ + artifact_name_pattern(**json.decode(p)) for p in ctx.attr.artifact_n= ame_patterns + ] + return cc_common.create_cc_toolchain_config_info( ctx =3D ctx, features =3D features, @@ -156,6 +161,7 @@ def _zig_cc_toolchain_config_impl(ctx): for name, path in ctx.attr.tool_paths.items() ], cxx_builtin_include_directories =3D ctx.attr.cxx_builtin_include_dir= ectories, + artifact_name_patterns =3D artifact_name_patterns, ) =20 zig_cc_toolchain_config =3D rule( @@ -174,6 +180,7 @@ zig_cc_toolchain_config =3D rule( "compiler": attr.string(), "abi_version": attr.string(), "abi_libc_version": attr.string(), + "artifact_name_patterns": attr.string_list(), }, provides =3D [CcToolchainConfigInfo], ) --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=lQ/sf/yE9eKxhnwauX7K3Ve92atirTQn6we2cXX7mcA=; c=simple/simple; d=sr.ht; h=Date:To:Cc:From:In-Reply-To:Subject; q=dns/txt; s=srht; t=1671321437; v=1; b=glOY+ahAMS8qZax0hyzlXX+m53d5GExecJWP4AWd7GOQRgY2d70bimtRL8FCmBVIFAA5Ue1+ oDb+DikuQE58h2j4rgBOxeGBxFr1b9Rxvxc7eFnbGElOhODkcflEkc7BhW5V1Q6agyFpVOdUfLs vvCNTnw7BAbh4BafAh3niYNYMQaePxZqiiQHxeCY37Ep3XblAY1xQJobNaHtbhyX6iF8H8Tg4+M tZMNXNSYnZ4eO6vuUf+HpwQ7QDnF8Y9tcVNgVrLP4urhOL2ozErBAjs/DQzzyYD282hPnRUEOU+ /0VvVL9ukWzetNVROsaZ2RXOdeozP4NAs3yzA0sYDaMhw== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 7C92F11F103; Sat, 17 Dec 2022 23:57:17 +0000 (UTC) MIME-Version: 1.0 Date: Sat, 17 Dec 2022 23:57:17 +0000 To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <167132138766.5086.1705176352038753909-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build failed Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 bazel-zig-cc/patches/.build.yml: FAILED in 47s [Use artifact_name_pattern to specify proper macos and windows artifact nam= es][0] from [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37613 [1]: mailto:jeremy@jvolkman.com =E2=9C=97 #907041 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/907041 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id DB6C811F103 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 18 Dec 2022 00:03:47 +0000 (UTC) From: ~jvolkman Date: Sun, 18 Dec 2022 00:03:47 +0000 Subject: [PATCH bazel-zig-cc v2 0/1] Use artifact_name_pattern to specify proper macos and windows artifact names MIME-Version: 1.0 Message-ID: <167132182778.22969.1520355961703744701-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit [This is the second revision which should apply cleanly to the main branch] I found that Bazel's cc toolchain system allows specifying artifact name patterns. So we can make shared libraries end with ".dylib" on macos and ".dll" on Windows. This is likely a breaking change for anyone relying on the defaults, but it seems like the proper thing to do, and the built-in toolchains do the same thing. There wasn't an obvious way to pass complex values from the target_structs entries to the zig_cc_toolchain_config rule, so I opted to pass a list of json-encoded strings. One other way I thought of was to break the artifact_name_pattern parameters into "artifact_name_prefixes" and "artifact_name_suffixes" dicts which would fit into an attr.string_dict, but it was adding complexity for not much gain IMO. Jeremy Volkman (1): Use artifact_name_pattern to specify proper macos and windows artifact names. README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 7 +++++++ 4 files changed, 38 insertions(+), 11 deletions(-) -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 019CA11F161 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 18 Dec 2022 00:03:48 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 15:27:21 -0800 Subject: [PATCH bazel-zig-cc v2 1/1] Use artifact_name_pattern to specify proper macos and windows artifact names. Message-ID: <167132182778.22969.1520355961703744701-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167132182778.22969.1520355961703744701-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Jeremy Volkman On macos, dynamic libraries are generated as "libfoo.dylib". On windows, executables end with ".exe", static libraries end with ".lib", and dynamic libraries end with ".dll". --- README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 7 +++++++ 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c447ae8..3931247 100644 --- a/README.md +++ b/README.md @@ -338,17 +338,6 @@ is currently not implemented. target macos.10 (Catalina), macos.11 (Big Sur) or macos.12 (Monterey). It currently targets the lowest version, without ability to change it. =20 -## Windows only: output file extensions - -For Windows targets Bazel uses Unix extensions for output binaries. Those may -need to be renamed before deploying to the Windows system. Here is a primer: - -| Binary type | Bazel extension | Windows extension | -|----------------|-----------------|-------------------| -| Static library | .a | .lib | -| Shared library | .so | .dll | -| Executable | (no extension) | .exe | - # Known Issues In Upstream =20 This section lists issues that I've stumbled into when using `zig cc`, and is diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 3fa0b93..a935ef5 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -39,6 +39,10 @@ def declare_cc_toolchains(os, zig_sdk_path): for incl in getattr(target_config, "compiler_extra_includes", []): copts =3D copts + ["-include", zig_sdk_path + "/" + incl] =20 + # We can't pass a list of structs to a rule, so we use json encoding. + artifact_name_patterns =3D getattr(target_config, "artifact_name_pat= terns", []) + artifact_name_pattern_strings =3D [json.encode(p) for p in artifact_= name_patterns] + zig_cc_toolchain_config( name =3D zigtarget + "_cc_config", target =3D zigtarget, @@ -53,6 +57,7 @@ def declare_cc_toolchains(os, zig_sdk_path): compiler =3D "clang", abi_version =3D "unknown", abi_libc_version =3D "unknown", + artifact_name_patterns =3D artifact_name_pattern_strings, visibility =3D ["//visibility:private"], ) =20 diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 96830ca..3ff4cd0 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -67,6 +67,13 @@ def _target_darwin(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "dynamic_library", + "prefix": "lib", + "extension": ".dylib", + }, + ], ) =20 def _target_windows(gocpu, zigcpu): @@ -87,6 +94,23 @@ def _target_windows(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "static_library", + "prefix": "", + "extension": ".lib", + }, + { + "category_name": "dynamic_library", + "prefix": "", + "extension": ".dll", + }, + { + "category_name": "executable", + "prefix": "", + "extension": ".exe", + }, + ], ) =20 def _target_linux_gnu(gocpu, zigcpu, glibc_version): @@ -121,6 +145,7 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): ], libc_constraint =3D "@zig_sdk//libc:{}".format(glibc_suffix), tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) =20 def _target_linux_musl(gocpu, zigcpu): @@ -146,4 +171,5 @@ def _target_linux_musl(gocpu, zigcpu): ], libc_constraint =3D "@zig_sdk//libc:musl", tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index f76aa80..7bd31ee 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -1,6 +1,7 @@ load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "artifact_name_pattern", "feature", "feature_set", "flag_group", @@ -134,6 +135,10 @@ def _zig_cc_toolchain_config_impl(ctx): default_linker_flags, ] + _compilation_mode_features(ctx) =20 + artifact_name_patterns =3D [ + artifact_name_pattern(**json.decode(p)) for p in ctx.attr.artifact_n= ame_patterns + ] + return cc_common.create_cc_toolchain_config_info( ctx =3D ctx, features =3D features, @@ -150,6 +155,7 @@ def _zig_cc_toolchain_config_impl(ctx): for name, path in ctx.attr.tool_paths.items() ], cxx_builtin_include_directories =3D ctx.attr.cxx_builtin_include_dir= ectories, + artifact_name_patterns =3D artifact_name_patterns, ) =20 zig_cc_toolchain_config =3D rule( @@ -168,6 +174,7 @@ zig_cc_toolchain_config =3D rule( "compiler": attr.string(), "abi_version": attr.string(), "abi_libc_version": attr.string(), + "artifact_name_patterns": attr.string_list(), }, provides =3D [CcToolchainConfigInfo], ) --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=8rBuJCAjAvEg2EB1R2O+D8aaQ7Nim31RACivz90X7bI=; c=simple/simple; d=sr.ht; h=Date:From:In-Reply-To:Subject:To:Cc; q=dns/txt; s=srht; t=1671321889; v=1; b=qnHQPLW3aaXAmBWztMlUo1O0HWkVPqre6SE0s+JkmAeIsNKG9xxMZ43m5GVHYsf1qw5UPs1N iwEPo+KZE1D5KkY8jHeXrE8J3z9YOofmy+6ikPzP37e3FIfsKR3gpsLzsrhv288A5o7zTYCgT8e Mcm/Cj/oz+linchVvFDN/GMbQ3HIL+ZRtJEoclqk7qDud1uj/Sicf9J3f8s+DarTGF4tj1vbHBx ZEb/OaAxWG6XEKl9+y2YIc8C/EOr/Q0Zejro9OIz8ZbxSQ5qFEbp1uSKJxMQABejLxnEZfwCOIb 4TpbOuKv98L8kA8ZIIyPz6m9FgYCV775ADW2B5kq0vPdw== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 81DF011F103; Sun, 18 Dec 2022 00:04:49 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 18 Dec 2022 00:04:49 +0000 From: "builds.sr.ht" Message-ID: In-Reply-To: <167132182778.22969.1520355961703744701-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build failed To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: FAILED in 1m0s [Use artifact_name_pattern to specify proper macos and windows artifact nam= es][0] v2 from [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37614 [1]: mailto:jeremy@jvolkman.com =E2=9C=97 #907046 FAILED bazel-zig-cc/patches/.build.yml https://builds.sr.= ht/~motiejus/job/907046 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 9353311F0F6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 18 Dec 2022 00:18:23 +0000 (UTC) From: ~jvolkman Date: Sun, 18 Dec 2022 00:18:23 +0000 Subject: [PATCH bazel-zig-cc v3 0/1] Use artifact_name_pattern to specify proper macos and windows artifact names MIME-Version: 1.0 Message-ID: <167132270337.32399.6857496830832816046-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Changelog: # v2: should apply cleanly to the main branch # v3: fix a linter error I found that Bazel's cc toolchain system allows specifying artifact name patterns. So we can make shared libraries end with ".dylib" on macos and ".dll" on Windows. This is likely a breaking change for anyone relying on the defaults, but it seems like the proper thing to do, and the built-in toolchains do the same thing. There wasn't an obvious way to pass complex values from the target_structs entries to the zig_cc_toolchain_config rule, so I opted to pass a list of json-encoded strings. One other way I thought of was to break the artifact_name_pattern parameters into "artifact_name_prefixes" and "artifact_name_suffixes" dicts which would fit into an attr.string_dict, but it was adding complexity for not much gain IMO. Jeremy Volkman (1): Use artifact_name_pattern to specify proper macos and windows artifact names. README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 8 ++++++++ 4 files changed, 39 insertions(+), 11 deletions(-) -- 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id B1BCD11F103 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 18 Dec 2022 00:18:23 +0000 (UTC) From: ~jvolkman Date: Sat, 17 Dec 2022 15:27:21 -0800 Subject: [PATCH bazel-zig-cc v3 1/1] Use artifact_name_pattern to specify proper macos and windows artifact names. Message-ID: <167132270337.32399.6857496830832816046-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~jvolkman In-Reply-To: <167132270337.32399.6857496830832816046-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 From: Jeremy Volkman On macos, dynamic libraries are generated as "libfoo.dylib". On windows, executables end with ".exe", static libraries end with ".lib", and dynamic libraries end with ".dll". --- README.md | 11 ----------- toolchain/private/cc_toolchains.bzl | 5 +++++ toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ toolchain/zig_toolchain.bzl | 8 ++++++++ 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c447ae8..3931247 100644 --- a/README.md +++ b/README.md @@ -338,17 +338,6 @@ is currently not implemented. target macos.10 (Catalina), macos.11 (Big Sur) or macos.12 (Monterey). It currently targets the lowest version, without ability to change it. =20 -## Windows only: output file extensions - -For Windows targets Bazel uses Unix extensions for output binaries. Those may -need to be renamed before deploying to the Windows system. Here is a primer: - -| Binary type | Bazel extension | Windows extension | -|----------------|-----------------|-------------------| -| Static library | .a | .lib | -| Shared library | .so | .dll | -| Executable | (no extension) | .exe | - # Known Issues In Upstream =20 This section lists issues that I've stumbled into when using `zig cc`, and is diff --git a/toolchain/private/cc_toolchains.bzl b/toolchain/private/cc_toolc= hains.bzl index 3fa0b93..a935ef5 100644 --- a/toolchain/private/cc_toolchains.bzl +++ b/toolchain/private/cc_toolchains.bzl @@ -39,6 +39,10 @@ def declare_cc_toolchains(os, zig_sdk_path): for incl in getattr(target_config, "compiler_extra_includes", []): copts =3D copts + ["-include", zig_sdk_path + "/" + incl] =20 + # We can't pass a list of structs to a rule, so we use json encoding. + artifact_name_patterns =3D getattr(target_config, "artifact_name_pat= terns", []) + artifact_name_pattern_strings =3D [json.encode(p) for p in artifact_= name_patterns] + zig_cc_toolchain_config( name =3D zigtarget + "_cc_config", target =3D zigtarget, @@ -53,6 +57,7 @@ def declare_cc_toolchains(os, zig_sdk_path): compiler =3D "clang", abi_version =3D "unknown", abi_libc_version =3D "unknown", + artifact_name_patterns =3D artifact_name_pattern_strings, visibility =3D ["//visibility:private"], ) =20 diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 96830ca..3ff4cd0 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -67,6 +67,13 @@ def _target_darwin(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "dynamic_library", + "prefix": "lib", + "extension": ".dylib", + }, + ], ) =20 def _target_windows(gocpu, zigcpu): @@ -87,6 +94,23 @@ def _target_windows(gocpu, zigcpu): "@platforms//cpu:{}".format(zigcpu), ], tool_paths =3D {"ld": "ld64.lld"}, + artifact_name_patterns =3D [ + { + "category_name": "static_library", + "prefix": "", + "extension": ".lib", + }, + { + "category_name": "dynamic_library", + "prefix": "", + "extension": ".dll", + }, + { + "category_name": "executable", + "prefix": "", + "extension": ".exe", + }, + ], ) =20 def _target_linux_gnu(gocpu, zigcpu, glibc_version): @@ -121,6 +145,7 @@ def _target_linux_gnu(gocpu, zigcpu, glibc_version): ], libc_constraint =3D "@zig_sdk//libc:{}".format(glibc_suffix), tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) =20 def _target_linux_musl(gocpu, zigcpu): @@ -146,4 +171,5 @@ def _target_linux_musl(gocpu, zigcpu): ], libc_constraint =3D "@zig_sdk//libc:musl", tool_paths =3D {"ld": "ld.lld"}, + artifact_name_patterns =3D [], ) diff --git a/toolchain/zig_toolchain.bzl b/toolchain/zig_toolchain.bzl index f76aa80..bebd1da 100644 --- a/toolchain/zig_toolchain.bzl +++ b/toolchain/zig_toolchain.bzl @@ -1,6 +1,7 @@ load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "artifact_name_pattern", "feature", "feature_set", "flag_group", @@ -134,6 +135,11 @@ def _zig_cc_toolchain_config_impl(ctx): default_linker_flags, ] + _compilation_mode_features(ctx) =20 + artifact_name_patterns =3D [ + artifact_name_pattern(**json.decode(p)) + for p in ctx.attr.artifact_name_patterns + ] + return cc_common.create_cc_toolchain_config_info( ctx =3D ctx, features =3D features, @@ -150,6 +156,7 @@ def _zig_cc_toolchain_config_impl(ctx): for name, path in ctx.attr.tool_paths.items() ], cxx_builtin_include_directories =3D ctx.attr.cxx_builtin_include_dir= ectories, + artifact_name_patterns =3D artifact_name_patterns, ) =20 zig_cc_toolchain_config =3D rule( @@ -168,6 +175,7 @@ zig_cc_toolchain_config =3D rule( "compiler": attr.string(), "abi_version": attr.string(), "abi_libc_version": attr.string(), + "artifact_name_patterns": attr.string_list(), }, provides =3D [CcToolchainConfigInfo], ) --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=24fbNqgKGb5+hnCSSGK5euIUNyLWMMmzDHdiEAKm20Y=; c=simple/simple; d=sr.ht; h=Date:Subject:To:Cc:From:In-Reply-To; q=dns/txt; s=srht; t=1671323784; v=1; b=p43ZnUo7iXAS2erOyTIrINtLtrbwMzVt+R1IPoQxG6UXBu2+4skXEaWauN10LYsmnNgSWnrL Dj1+aqUNP+kOGxxGz4C7kH4+LubNmXsPwwsCV67igwMrcQsLspxPT8ZbHmfgCQZR4IfJp++Jg2J HsdYP7OQis89yFoohCux2xhXMJT5IYWS7hHs8spCzzi6mwocylXVtarAfFbG9D+iT0aOXxUTYrb k0mhe33Ijg3/goe9rqVfOzQbjYpgLhTXHuDdSCXVdznphuEn6FRsmHYlSS4YiAnZhB6lyiySd7j D/SVJ5Nj18/LppJwdXe8t2GLQsWHAnHbVThhyjXC4RQTg== Received: from localhost (unknown [173.195.146.249]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id B933611F0F6; Sun, 18 Dec 2022 00:36:24 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 18 Dec 2022 00:36:24 +0000 Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <167132270337.32399.6857496830832816046-1@git.sr.ht> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable bazel-zig-cc/patches/.build.yml: SUCCESS in 17m59s [Use artifact_name_pattern to specify proper macos and windows artifact nam= es][0] v3 from [~jvolkman][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37615 [1]: mailto:jeremy@jvolkman.com =E2=9C=93 #907052 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/907052 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) by mail-b.sr.ht (Postfix) with ESMTPS id 7E26911EF68 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sun, 18 Dec 2022 03:33:16 +0000 (UTC) Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-1433ef3b61fso7900385fac.10 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Sat, 17 Dec 2022 19:33:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VQQ5JQQXydXvQrrZM6bgyC/G5bES5UgkO+QOKjvz0Ho=; b=5seBlbZXjIy94Gr8XclRAZ6R2v/Nj4WFjcfp0ZrEaE/hQPEVbpzOLAegTCz1XXnoJH Z+8ZWCAmlrxuwBUDQ5G4sPjmMeRIgEIF869YSVsqRiF3zmp/fbs6FlNCnFkuGf4qsb+N stxiAVEa2rf60FiMwl/4M/IGRduQNvIAKSotixLMqAKrkmmn67tEHF4cbNgSZeg1K7Gi +jQ+Wy+szKQl+Dm0kHow43o/wkGMx6YGIVAcsqlOo9PSjvJunBaHp2AcvIr07QB9tp3V fheQ4xSMIB6W/BNm+Nz+rb6IfG8eLsJD4wHPEQ2bpodm4ASnmhDG5pls6OXyESjOTDV9 kQwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VQQ5JQQXydXvQrrZM6bgyC/G5bES5UgkO+QOKjvz0Ho=; b=sJVZXkEGtJLQB7i9Q9KEqL4uRrP0Xey/2GEjnrbnK1rZlBbKHMvxb9r60nTxUlnJ13 V9E63U3n1vIc0b5L+wYlUrz2uic26sPxeMNOap5WPnQrwqQtB0/XdnZL0AugZvkeUnQv pMZlk6hni5E62ikjuUUMYLA5T+xuqr3d5Z8ySJyz0svbCBAveS3yH8Y82EmkVQYtZi7e OoylzxhADMfwzUpcxBk0qdviZEr8a6IuZKZNyo+XgvSS3ibtLJxSTb5lB7DQWHfse30j lqFzpuTuZvrWyJ7So/W8QvLTeJ2uB/y8M9y7teAVhs8VK1P7w3NN693azGmP22xVF28t l4YA== X-Gm-Message-State: AFqh2kp0PnV6747vhhxqcArKCeNCxc7pxaNTSc5U+bU9VHb8GBAdjBxh 8xmST05gEdzmhWUgoGZX5GTIG/5XL4lzLEFeM/I= X-Google-Smtp-Source: AMrXdXte+V60oaY3T4ine7Xqbr5Q2j2ashSMuQdH9RG66mOT4iN/4Px4KzJrOYZsavMrc/UPABTopoGqIVKu02GE7XI= X-Received: by 2002:a05:6870:d147:b0:143:fa7f:2b29 with SMTP id f7-20020a056870d14700b00143fa7f2b29mr1301172oac.116.1671334395794; Sat, 17 Dec 2022 19:33:15 -0800 (PST) MIME-Version: 1.0 References: <167132270337.32399.6857496830832816046-0@git.sr.ht> <167132270337.32399.6857496830832816046-1@git.sr.ht> In-Reply-To: <167132270337.32399.6857496830832816046-1@git.sr.ht> From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Sun, 18 Dec 2022 05:33:04 +0200 Message-ID: Subject: Re: [PATCH bazel-zig-cc v3 1/1] Use artifact_name_pattern to specify proper macos and windows artifact names. To: "~jvolkman" Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" On Sun, Dec 18, 2022 at 2:18 AM ~jvolkman wrote: > > From: Jeremy Volkman > > On macos, dynamic libraries are generated as "libfoo.dylib". > > On windows, executables end with ".exe", static libraries end with ".lib", > and dynamic libraries end with ".dll". > --- > README.md | 11 ----------- > toolchain/private/cc_toolchains.bzl | 5 +++++ > toolchain/private/defs.bzl | 26 ++++++++++++++++++++++++++ > toolchain/zig_toolchain.bzl | 8 ++++++++ > 4 files changed, 39 insertions(+), 11 deletions(-) Thanks! Applied all 4 patches verbatim. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id D675011EF44; Fri, 23 Dec 2022 11:04:31 +0000 (UTC) From: ~motiejus Date: Fri, 23 Dec 2022 11:04:31 +0000 MIME-Version: 1.0 Subject: [PATCH bazel-zig-cc 0/1] zig launcher: replace shell wrappers with a binary Message-ID: <167179347159.25324.12223141818448163553-0@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable TLDR: I am looking to replace the two (unix and windows) shell scripts with a single program with unit tests. Motivations and more discussion in the commit message. If there are any concerns with it, it is a great time to raise them. Fabian, I did my best to test this "on windows" without actually having a windows host. Please let me know if it works for you. Hopefully I don't break the windows wrapper ever again! Motiejus Jak=C5=A1tys (1): zig launcher: replace shell wrappers with a binary .build.yml | 9 +- ci/launcher | 13 + ci/test | 25 +- toolchain/defs.bzl | 128 +++------ toolchain/launcher.zig | 531 +++++++++++++++++++++++++++++++++++++ toolchain/private/defs.bzl | 2 +- 6 files changed, 613 insertions(+), 95 deletions(-) create mode 100755 ci/launcher create mode 100644 toolchain/launcher.zig --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=none Received: from git.sr.ht (unknown [173.195.146.142]) by mail-b.sr.ht (Postfix) with ESMTPSA id 0259E11EF68; Fri, 23 Dec 2022 11:04:32 +0000 (UTC) From: ~motiejus Date: Tue, 20 Dec 2022 17:00:50 +0200 Subject: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary MIME-Version: 1.0 Message-ID: <167179347159.25324.12223141818448163553-1@git.sr.ht> X-Mailer: git.sr.ht Reply-to: ~motiejus In-Reply-To: <167179347159.25324.12223141818448163553-0@git.sr.ht> To: ~motiejus/bazel-zig-cc@lists.sr.ht, fabian@hahn.graphics Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Motiejus Jak=C5=A1tys Until now we needed to maintain two versions of the zig launcher: one for Windows and one for everything else. This was problematic for two reasons: 1. I do not know powershell and thus keep breaking the Windows wrapper all the time (see git history of Fabian fixing stuff that I broke). 2. This makes bazel-zig-cc dependent on the system shell, making it not really hermetic. So the recently added `--experimental_use_hermetic_linux_sandbox` does not work with bazel-zig-cc, unless we bind-mount a bunch of stuff: `/usr`, `/bin`, `/lib`, `/usr/lib:/lib`, `/usr/lib64:/lib64` and `/proc`. Switching to a Zig-based wrapper solves both issues, and we can do this: bazel build "$@" \ --experimental_use_hermetic_linux_sandbox \ --sandbox_add_mount_pair=3D/proc \ <...> Zig itself still depends on `/proc` for `/proc/self/exe`, so we need to keep that. I will look into reducing even that dependency separately. Not all is nice and shiny though: this commit replaces ~80 LOC worth of shell scripts wrappers with a singe ~250 LOC zig program, which is arguably harder to understand. However, it is easier to change, at least for me, because it's a single file with unit tests! Most importantly, the gnarly code (which resolves paths and sets environment variables) is cross-platform. --- .build.yml | 9 +- ci/launcher | 13 + ci/test | 25 +- toolchain/defs.bzl | 128 +++------ toolchain/launcher.zig | 531 +++++++++++++++++++++++++++++++++++++ toolchain/private/defs.bzl | 2 +- 6 files changed, 613 insertions(+), 95 deletions(-) create mode 100755 ci/launcher create mode 100644 toolchain/launcher.zig diff --git a/.build.yml b/.build.yml index 664b847..e12a558 100644 --- a/.build.yml +++ b/.build.yml @@ -31,6 +31,13 @@ tasks: - list_toolchains_platforms: | cd bazel-zig-cc; . .envrc ./ci/list_toolchains_platforms + - test_launcher: | + cd bazel-zig-cc; . .envrc + ./ci/launcher --color=3Dyes --curses=3Dyes - test: | cd bazel-zig-cc; . .envrc - ./ci/test --color=3Dyes --curses=3Dyes + export BAZEL_ZIG_CC_CACHE_PREFIX=3D/tmp/bazel-zig-cc-2 + ./ci/test \ + --color=3Dyes --curses=3Dyes \ + --repo_env BAZEL_ZIG_CC_CACHE_PREFIX=3D$BAZEL_ZIG_CC_CACHE_PREFIX \ + --sandbox_writable_path "$BAZEL_ZIG_CC_CACHE_PREFIX" diff --git a/ci/launcher b/ci/launcher new file mode 100755 index 0000000..2c57c8f --- /dev/null +++ b/ci/launcher @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -xeuo pipefail + +# until bazel-zig-cc gets a zig toolchain, run launcher's unit tests here. +bazel run "$@" @zig_sdk//:zig -- test toolchain/launcher.zig + +# ReleaseSafe because of https://github.com/ziglang/zig/issues/14036 +bazel run "$@" @zig_sdk//:zig -- test \ + -OReleaseSafe \ + -target x86_64-windows-gnu \ + --test-cmd wine64-stable \ + --test-cmd-bin \ + toolchain/launcher.zig diff --git a/ci/test b/ci/test index e3f4cf5..4cbc3ca 100755 --- a/ci/test +++ b/ci/test @@ -1,16 +1,29 @@ #!/usr/bin/env bash -set -euo pipefail +set -xeuo pipefail + +BAZEL_ZIG_CC_CACHE_PREFIX=3D${BAZEL_ZIG_CC_CACHE_PREFIX:-/tmp/bazel-zig-cc} +mkdir -p "${BAZEL_ZIG_CC_CACHE_PREFIX}" =20 bazel test "$@" ... =20 -# /tmp/bazel-zig-cc should be empty for the test below to be valid. -# This test ensures that github.com/ziglang/zig/issues/13050 does not -# regress -find /tmp/bazel-zig-cc -name mutex_destructor.o -execdir file '{}' \; | \ +bazel clean; bazel shutdown + +# smoke-test a very hermetic setup with a single target. Re-building all of +# them takes a long time, so using only one. If we ever decide to build all +# targets, we will need to exclude Go, since go dynamically links to glibc on +# linux. +bazel build "$@" \ + --experimental_use_hermetic_linux_sandbox \ + --sandbox_add_mount_pair=3D/proc \ + //test/c:which_libc_linux_amd64_gnu.2.19 + +# $BAZEL_ZIG_CC_CACHE_PREFIX should be empty for the test below to be valid. +# Ensure that github.com/ziglang/zig/issues/13050 does not regress +find "$BAZEL_ZIG_CC_CACHE_PREFIX" -name mutex_destructor.o -execdir file '{}= ' \; | \ sort | uniq -c | sort -rn > /tmp/got_cache =20 diff -u ci/testdata/want_cache /tmp/got_cache || { >&2 echo "ERROR: unexpected artifacts." - >&2 echo "Was /tmp/bazel-zig-cc empty before the test?" + >&2 echo "Was $BAZEL_ZIG_CC_CACHE_PREFIX empty before the test?" exit 1 } diff --git a/toolchain/defs.bzl b/toolchain/defs.bzl index dfd1ef8..483d9fa 100644 --- a/toolchain/defs.bzl +++ b/toolchain/defs.bzl @@ -1,3 +1,4 @@ +load("@bazel_skylib//lib:paths.bzl", "paths") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "read_user_netrc", "us= e_netrc") load("@bazel-zig-cc//toolchain/private:defs.bzl", "target_structs", "zig_too= l_path") @@ -79,83 +80,8 @@ def toolchains( _ZIG_TOOLS =3D [ "c++", "ar", - "build-exe", - "build-lib", - "build-obj", ] =20 -_ZIG_TOOL_WRAPPER_WINDOWS_CACHE =3D """@echo off -if exist "external\\zig_sdk\\lib\\*" goto :have_external_zig_sdk_lib -set ZIG_LIB_DIR=3D%~dp0\\..\\..\\lib -set ZIG_EXE=3D%~dp0\\..\\..\\zig.exe -goto :set_zig_lib_dir -:have_external_zig_sdk_lib -set ZIG_LIB_DIR=3Dexternal\\zig_sdk\\lib -set ZIG_EXE=3Dexternal\\zig_sdk\\zig.exe -:set_zig_lib_dir -set ZIG_LOCAL_CACHE_DIR=3D{cache_prefix}\\bazel-zig-cc -set ZIG_GLOBAL_CACHE_DIR=3D%ZIG_LOCAL_CACHE_DIR% -"%ZIG_EXE%" "{zig_tool}" {maybe_target} %* -""" - -_ZIG_TOOL_WRAPPER_CACHE =3D """#!/bin/sh -set -e -if [ -d external/zig_sdk/lib ]; then - ZIG_LIB_DIR=3Dexternal/zig_sdk/lib - ZIG_EXE=3Dexternal/zig_sdk/zig -else - ZIG_LIB_DIR=3D"$(dirname "$0")/../../lib" - ZIG_EXE=3D"$(dirname "$0")/../../zig" -fi -export ZIG_LIB_DIR -export ZIG_LOCAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" -export ZIG_GLOBAL_CACHE_DIR=3D"{cache_prefix}/bazel-zig-cc" -{maybe_gohack} -exec "$ZIG_EXE" "{zig_tool}" {maybe_target} "$@" -""" - -# The hackery below will be deleted after Go 1.20 is released (in particular, -# if/after https://go-review.googlesource.com/c/go/+/436884 ) -# Arg-messing snippet from -# https://web.archive.org/web/20100129154217/http://www.seanius.net/blog/200= 9/03/saving-and-restoring-positional-params -_ZIG_TOOL_GOHACK =3D """ -quote(){ echo "$1" | sed -e "s,','\\\\'',g"; } -for arg in "$@"; do saved=3D"${saved:+$saved }'$(quote "$arg")'"; done -while [ "$#" -gt 6 ]; do shift; done -if [ "$*" =3D "-Wl,--no-gc-sections -x c - -o /dev/null" ]; then - # This command probes if `--no-gc-sections` is accepted by the linker. - # Since it is executed in /tmp, the ZIG_LIB_DIR is absolute, - # glibc stubs and libc++ cannot be shared with other invocations (which use - # a relative ZIG_LIB_DIR). - exit 0; -fi -eval set -- "$saved" -""" - -def _zig_tool_wrapper(zig_tool, is_windows, cache_prefix, zigtarget): - if zig_tool in ["c++", "build-exe", "build-lib", "build-obj"]: - maybe_target =3D "-target {}".format(zigtarget) - else: - maybe_target =3D "" - - if not cache_prefix: - if is_windows: - cache_prefix =3D "C:\\Temp\\bazel-zig-cc" - else: - cache_prefix =3D "/tmp/bazel-zig-cc" - - kwargs =3D dict( - zig_tool =3D zig_tool, - cache_prefix =3D cache_prefix, - maybe_gohack =3D _ZIG_TOOL_GOHACK if (zig_tool =3D=3D "c++" and not = is_windows) else "", - maybe_target =3D maybe_target, - ) - - if is_windows: - return _ZIG_TOOL_WRAPPER_WINDOWS_CACHE.format(**kwargs) - else: - return _ZIG_TOOL_WRAPPER_CACHE.format(**kwargs) - def _quote(s): return "'" + s.replace("'", "'\\''") + "'" =20 @@ -217,22 +143,50 @@ def _zig_repository_impl(repository_ctx): sha256 =3D zig_sha256, ) =20 + cache_prefix =3D repository_ctx.os.environ.get("BAZEL_ZIG_CC_CACHE_PREFI= X", "") + if cache_prefix =3D=3D "": + if os =3D=3D "windows": + cache_prefix =3D "C:\\Temp\\bazel-zig-cc" + else: + cache_prefix =3D "/tmp/bazel-zig-cc" + + repository_ctx.template( + "tools/launcher.zig", + Label("//toolchain:launcher.zig"), + executable =3D False, + substitutions =3D { + "{BAZEL_ZIG_CC_CACHE_PREFIX}": cache_prefix, + }, + ) + + ret =3D repository_ctx.execute( + [ + paths.join("..", "zig"), + "build-exe", + "-OReleaseSafe", + "launcher.zig", + ] + (["-static"] if os =3D=3D "linux" else []), + working_directory =3D "tools", + environment =3D { + "ZIG_LOCAL_CACHE_DIR": cache_prefix, + "ZIG_GLOBAL_CACHE_DIR": cache_prefix, + }, + ) + if ret.return_code !=3D 0: + fail("compilation failed:\nreturn_code=3D{}\nstderr=3D{}\nstdout=3D{= }".format( + ret.return_code, + ret.stdout, + ret.stderr, + )) + + exe =3D ".exe" if os =3D=3D "windows" else "" for target_config in target_structs(): for zig_tool in _ZIG_TOOLS + target_config.tool_paths.values(): - zig_tool_wrapper =3D _zig_tool_wrapper( - zig_tool, - os =3D=3D "windows", - repository_ctx.os.environ.get("BAZEL_ZIG_CC_CACHE_PREFIX", "= "), + tool_path =3D zig_tool_path(os).format( + zig_tool =3D zig_tool, zigtarget =3D target_config.zigtarget, ) - - repository_ctx.file( - zig_tool_path(os).format( - zig_tool =3D zig_tool, - zigtarget =3D target_config.zigtarget, - ), - zig_tool_wrapper, - ) + repository_ctx.symlink("tools/launcher{}".format(exe), tool_path) =20 repository_ctx.file( "glibc-hacks/fcntl.map", diff --git a/toolchain/launcher.zig b/toolchain/launcher.zig new file mode 100644 index 0000000..0cf86e8 --- /dev/null +++ b/toolchain/launcher.zig @@ -0,0 +1,531 @@ +// A wrapper for `zig` subcommands. +// +// In simple cases it is usually enough to: +// +// zig c++ -target <...> +// +// However, there are some caveats: +// +// * Sometimes toolchains (looking at you, Go, see an example in +// https://github.com/golang/go/pull/55966) skip CFLAGS to the underlying +// compiler. Doing that may carry a huge cost, because zig may need to spend +// ~30s compiling libc++ for an innocent feature test. Having an executable = per +// target platform (like GCC does things, e.g. aarch64-linux-gnu-) is +// what most toolchains are designed to work with. So we need a wrapper per +// zig sub-command per target. As of writing, the layout is: +// tools/ +// =E2=94=9C=E2=94=80=E2=94=80 x86_64-linux-gnu.2.34 +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 ar +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 c++ +// =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 ld.lld +// =E2=94=9C=E2=94=80=E2=94=80 x86_64-linux-musl +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 ar +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 c++ +// =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 ld.lld +// =E2=94=9C=E2=94=80=E2=94=80 x86_64-macos-none +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 ar +// =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 c++ +// =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 ld64.lld +// ... +// * ZIG_LIB_DIR controls the output of `zig c++ -MF -MD <...>`. Bazel uses +// command to understand which input files were used to the compilation. If = any +// of the files are not in `external/<...>/`, Bazel will understand and +// complain that the compiler is using undeclared directories on the host fi= le +// system. We do not declare prerequisites using absolute paths, because that +// busts Bazel's remote cache. +// * BAZEL_ZIG_CC_CACHE_PREFIX is configurable per toolchain instance, and +// ZIG_GLOBAL_CACHE_DIR and ZIG_LOCAL_CACHE_DIR must be set to its value for +// all `zig` invocations. +// +// Originally this was a Bash script, then a POSIX shell script, then two +// scripts (one with pre-defined BAZEL_ZIG_CC_CACHE_PREFIX, one without). Th= en +// Windows came along with two PowerShell scripts (ports of the POSIX shell +// scripts), which I kept breaking. Then Bazel 6 came with +// `--experimental_use_hermetic_linux_sandbox`, which hermetizes the sandbox= to +// the extreme: the sandbox has nothing that is not declared. /bin/sh and its +// dependencies (/lib/x86_64-linux-gnu/libc.so.6 on my system) are obviously +// not declared. So one can either declare those dependencies, bundle a shell +// to execute the wrapper, or port the shell logic to a cross-platform progr= am +// that compiles to a static binary. By a chance we happen to already ship a +// toolchain of a language that could compile such program. And behold, the +// program is below. + +const builtin =3D @import("builtin"); +const std =3D @import("std"); +const fs =3D std.fs; +const mem =3D std.mem; +const process =3D std.process; +const ChildProcess =3D std.ChildProcess; +const ArrayList =3D std.ArrayList; +const ArrayListUnmanaged =3D std.ArrayListUnmanaged; +const Allocator =3D std.mem.Allocator; +const sep =3D fs.path.sep_str; + +const EXE =3D switch (builtin.target.os.tag) { + .windows =3D> ".exe", + else =3D> "", +}; + +const CACHE_DIR =3D "{BAZEL_ZIG_CC_CACHE_PREFIX}"; + +const usage_cpp =3D + \\Usage: <...>/tools//{[zig_tool]s}{[exe]s} ... + \\ + \\Wraps the "zig" multi-call binary. It determines the target platform f= rom + \\the directory where it was called. Then sets ZIG_LIB_DIR, + \\ZIG_GLOBAL_CACHE_DIR, ZIG_LOCAL_CACHE_DIR and then calls: + \\ + \\ zig c++ -target ... +; + +const usage_other =3D + \\Usage: <...>/tools//{[zig_tool]s}{[exe]s} ... + \\ + \\Wraps the "zig" multi-call binary. It sets ZIG_LIB_DIR, + \\ZIG_GLOBAL_CACHE_DIR, ZIG_LOCAL_CACHE_DIR, and then calls: + \\ + \\ zig {[zig_tool]s} ... +; + +const Action =3D enum { + early_ok, + early_err, + exec, +}; + +const ExecParams =3D struct { + args: ArrayListUnmanaged([]const u8), + env: process.EnvMap, +}; + +const ParseResults =3D union(Action) { + early_ok, + early_err: []const u8, + exec: ExecParams, +}; + +pub fn main() u8 { + var allocator =3D if (builtin.link_libc) + std.heap.c_allocator + else blk: { + var gpa =3D std.heap.GeneralPurposeAllocator(.{}){}; + break :blk gpa.allocator(); + }; + var arena_allocator =3D std.heap.ArenaAllocator.init(allocator); + defer arena_allocator.deinit(); + const arena =3D arena_allocator.allocator(); + + var argv_it =3D process.argsWithAllocator(arena) catch |err| { + std.debug.print("error parsing args: {s}\n", .{@errorName(err)}); + return 1; + }; + + const action =3D parseArgs(arena, fs.cwd(), &argv_it) catch |err| { + std.debug.print("error: {s}\n", .{@errorName(err)}); + return 1; + }; + + switch (action) { + .early_ok =3D> return 0, + .early_err =3D> |msg| { + std.io.getStdErr().writeAll(msg) catch {}; + return 1; + }, + .exec =3D> |params| { + if (builtin.os.tag =3D=3D .windows) { + return spawnWindows(arena, params); + } else { + return execUnix(arena, params); + } + }, + } +} + +fn spawnWindows(arena: Allocator, params: ExecParams) u8 { + var proc =3D ChildProcess.init(params.args.items, arena); + proc.env_map =3D ¶ms.env; + const ret =3D proc.spawnAndWait() catch |err| { + std.debug.print( + "error spawning {s}: {s}\n", + .{ params.args.items[0], @errorName(err) }, + ); + return 1; + }; + + switch (ret) { + .Exited =3D> |code| return code, + else =3D> |other| { + std.debug.print("abnormal exit: {any}\n", .{other}); + return 1; + }, + } +} + +fn execUnix(arena: Allocator, params: ExecParams) u8 { + const err =3D process.execve(arena, params.args.items, ¶ms.env); + std.debug.print( + "error execing {s}: {s}\n", + .{ params.args.items[0], @errorName(err) }, + ); + return 1; +} + +// argv_it is an object that has such method: +// fn next(self: *Self) ?[]const u8 +// in non-testing code it is *process.ArgIterator. +// Leaks memory: the name of the first argument is arena not by chance. +fn parseArgs( + arena: Allocator, + cwd: fs.Dir, + argv_it: anytype, +) error{OutOfMemory}!ParseResults { + const arg0 =3D argv_it.next() orelse + return fatal(arena, "error: argv[0] cannot be null", .{}); + + const zig_tool =3D blk: { + const b =3D fs.path.basename(arg0); + if (builtin.target.os.tag =3D=3D .windows and + std.ascii.eqlIgnoreCase(".exe", b[b.len - 4 ..])) + break :blk b[0 .. b.len - 4]; + + break :blk b; + }; + const maybe_target =3D getTarget(arg0) catch |err| switch (err) { + error.BadParent =3D> { + const fmt_args =3D .{ .zig_tool =3D zig_tool, .exe =3D EXE }; + if (mem.eql(u8, zig_tool, "c++")) { + return fatal(arena, usage_cpp, fmt_args); + } else return fatal(arena, usage_other, fmt_args); + }, + else =3D> |e| return e, + }; + + const root =3D blk: { + var dir =3D cwd.openDir( + "external" ++ sep ++ "zig_sdk" ++ sep ++ "lib", + .{ .access_sub_paths =3D false, .no_follow =3D true }, + ); + + if (dir) |*dir_exists| { + dir_exists.close(); + break :blk "external" ++ sep ++ "zig_sdk"; + } else |_| {} + + // directory does not exist or there was an error opening it + const here =3D fs.path.dirname(arg0) orelse "."; + break :blk try fs.path.join(arena, &[_][]const u8{ here, "..", ".." = }); + }; + + const zig_lib_dir =3D try fs.path.join(arena, &[_][]const u8{ root, "lib= " }); + const zig_exe =3D try fs.path.join( + arena, + &[_][]const u8{ root, "zig" ++ EXE }, + ); + + var env =3D process.getEnvMap(arena) catch |err| { + return fatal( + arena, + "error getting process environment: {s}", + .{@errorName(err)}, + ); + }; + try env.put("ZIG_LIB_DIR", zig_lib_dir); + try env.put("ZIG_LOCAL_CACHE_DIR", CACHE_DIR); + try env.put("ZIG_GLOBAL_CACHE_DIR", CACHE_DIR); + + // args is the path to the zig binary and args to it. + var args =3D ArrayListUnmanaged([]const u8){}; + try args.appendSlice(arena, &[_][]const u8{ zig_exe, zig_tool }); + if (maybe_target) |target| + try args.appendSlice(arena, &[_][]const u8{ "-target", target }); + + while (argv_it.next()) |arg| + try args.append(arena, arg); + + if (mem.eql(u8, zig_tool, "c++") and shouldReturnEarly(args.items)) + return .early_ok; + + return ParseResults{ + .exec =3D .{ + .args =3D args, + .env =3D env, + }, + }; +} + +fn fatal( + arena: Allocator, + comptime fmt: []const u8, + args: anytype, +) error{OutOfMemory}!ParseResults { + const msg =3D try std.fmt.allocPrint(arena, fmt ++ "\n", args); + return ParseResults{ .early_err =3D msg }; +} + +// Golang probing for a particular linker flag causes many unneeded stubs to= be +// built, e.g. glibc, musl, libc++. The hackery can probably be deleted after +// Go 1.20 is released. In particular, +// https://go-review.googlesource.com/c/go/+/436884 +fn shouldReturnEarly(args: []const []const u8) bool { + const prelude =3D &[_][]const u8{ + "-Wl,--no-gc-sections", + "-x", + "c", + "-", + "-o", + "/dev/null", + }; + if (args.len < prelude.len) + return false; + for (prelude) |arg, i| + if (!mem.eql(u8, arg, args[args.len - prelude.len + i])) + return false; + return true; +} + +fn getTarget(self_exe: []const u8) error{BadParent}!?[]const u8 { + const here =3D fs.path.dirname(self_exe) orelse return error.BadParent; + const triple =3D fs.path.basename(here); + + // Validating the triple now will help users catch errors even if they + // don't yet need the target. yes yes the validation will miss things + // strings `is.it.x86_64?-stallinux,macos-`; we are trying to aid users + // that run things from the wrong directory, not trying to punish the on= es + // having fun. + { + var it =3D mem.split(u8, triple, "-"); + if (it.next()) |arch| { + if (mem.indexOf(u8, "aarch64,x86_64", arch) =3D=3D null) + return error.BadParent; + } else return error.BadParent; + + if (it.next()) |got_os| { + if (mem.indexOf(u8, "linux,macos,windows", got_os) =3D=3D null) + return error.BadParent; + } else return error.BadParent; + + // ABI triple is too much of a moving target + if (it.next() =3D=3D null) return error.BadParent; + + // but the target needs to have 3 dashes. + if (it.next() !=3D null) return error.BadParent; + } + + if (mem.eql(u8, "c++" ++ EXE, fs.path.basename(self_exe))) { + return triple; + } else return null; +} + +const testing =3D std.testing; + +fn split(comptime str: []const u8) []const []const u8 { + var arr: [str.len][]const u8 =3D undefined; + var i: usize =3D 0; + var it =3D mem.split(u8, str, " "); + while (it.next()) |arg| : (i +=3D 1) + arr[i] =3D arg; + return arr[0..i]; +} + +test "launcher:shouldReturnEarly" { + const pos =3D .{ + "-Wl,--no-gc-sections -x c - -o /dev/null", + "foo.c -o main -Wl,--no-gc-sections -x c - -o /dev/null", + }; + const neg =3D .{ + "cc -Wl,--no-gc-sections -x c - -o /dev/null x", + "-Wl,--no-gc-sections -x c - -o", + "incorrect-value -x c - -o /dev/null", + }; + + inline for (pos) |tt| + try testing.expect(shouldReturnEarly(split(tt))); + + inline for (neg) |tt| + try testing.expect(!shouldReturnEarly(split(tt))); +} + +pub const TestArgIterator =3D struct { + index: usize =3D 0, + argv: []const [:0]const u8, + + pub fn next(self: *TestArgIterator) ?[:0]const u8 { + if (self.index =3D=3D self.argv.len) return null; + + defer self.index +=3D 1; + return self.argv[self.index]; + } + + pub fn skip(self: *TestArgIterator) bool { + if (self.index =3D=3D self.len) return false; + + self.index +=3D 1; + return true; + } +}; + +fn compareExec( + res: ParseResults, + want_args: []const [:0]const u8, + want_env_zig_lib_dir: []const u8, +) !void { + try testing.expectEqual(want_args.len, res.exec.args.items.len); + for (want_args) |want_arg, i| { + try testing.expectEqualStrings( + want_arg, + res.exec.args.items[i], + ); + } + try testing.expectEqualStrings( + want_env_zig_lib_dir, + res.exec.env.get("ZIG_LIB_DIR").?, + ); +} + +test "launcher:parseArgs" { + // not using testing.allocator, because parseArgs is designed to be used + // with an arena. + var gpa =3D std.heap.GeneralPurposeAllocator(.{}){}; + var allocator =3D gpa.allocator(); + + const tests =3D [_]struct { + args: []const [:0]const u8, + precreate_dir: ?[]const u8 =3D null, + want_result: union(Action) { + early_ok, + early_err: []const u8, + exec: struct { + args: []const [:0]const u8, + env_zig_lib_dir: []const u8, + }, + }, + }{ + .{ + .args =3D &[_][:0]const u8{"ar" ++ EXE}, + .want_result =3D .{ + .early_err =3D std.fmt.comptimePrint(usage_other ++ "\n", .{ + .zig_tool =3D "ar", + .exe =3D EXE, + }), + }, + }, + .{ + .args =3D &[_][:0]const u8{"c++" ++ EXE}, + .want_result =3D .{ + .early_err =3D std.fmt.comptimePrint(usage_cpp ++ "\n", .{ + .zig_tool =3D "c++", + .exe =3D EXE, + }), + }, + }, + .{ + .args =3D &[_][:0]const u8{ + "external" ++ sep ++ "zig_sdk" ++ "tools" ++ sep ++ + "x86_64-linux-musl" ++ sep ++ "c++" ++ EXE, + "-Wl,--no-gc-sections", + "-x", + "c", + "-", + "-o", + "/dev/null", + }, + .want_result =3D .early_ok, + }, + .{ + .args =3D &[_][:0]const u8{ + "tools" ++ sep ++ "x86_64-linux-musl" ++ sep ++ "c++" ++ EXE, + "main.c", + "-o", + "/dev/null", + }, + .want_result =3D .{ + .exec =3D .{ + .args =3D &[_][:0]const u8{ + "tools" ++ sep ++ "x86_64-linux-musl" ++ sep ++ + ".." ++ sep ++ ".." ++ sep ++ "zig" ++ EXE, + "c++", + "-target", + "x86_64-linux-musl", + "main.c", + "-o", + "/dev/null", + }, + .env_zig_lib_dir =3D "tools" ++ sep ++ "x86_64-linux-mus= l" ++ + sep ++ ".." ++ sep ++ ".." ++ sep ++ "lib", + }, + }, + }, + .{ + .args =3D &[_][:0]const u8{ + "tools" ++ sep ++ "x86_64-linux-musl" ++ sep ++ "ar" ++ EXE, + "-rcs", + "all.a", + "main.o", + "foo.o", + }, + .want_result =3D .{ + .exec =3D .{ + .args =3D &[_][:0]const u8{ + "tools" ++ sep ++ "x86_64-linux-musl" ++ sep ++ ".."= ++ + sep ++ ".." ++ sep ++ "zig" ++ EXE, + "ar", + "-rcs", + "all.a", + "main.o", + "foo.o", + }, + .env_zig_lib_dir =3D "tools" ++ sep ++ "x86_64-linux-mus= l" ++ + sep ++ ".." ++ sep ++ ".." ++ sep ++ "lib", + }, + }, + }, + .{ + .args =3D &[_][:0]const u8{ + "external_zig_sdk" ++ sep ++ "tools" ++ sep ++ + "x86_64-linux-gnu.2.28" ++ sep ++ "c++" ++ EXE, + "main.c", + "-o", + "/dev/null", + }, + .precreate_dir =3D "external" ++ sep ++ "zig_sdk" ++ sep ++ "lib= ", + .want_result =3D .{ + .exec =3D .{ + .args =3D &[_][:0]const u8{ + "external" ++ sep ++ "zig_sdk" ++ sep ++ "zig" ++ EX= E, + "c++", + "-target", + "x86_64-linux-gnu.2.28", + "main.c", + "-o", + "/dev/null", + }, + .env_zig_lib_dir =3D "external" ++ sep ++ "zig_sdk" ++ + sep ++ "lib", + }, + }, + }, + }; + + for (tests) |tt| { + var tmp =3D testing.tmpDir(.{}); + defer tmp.cleanup(); + + if (tt.precreate_dir) |dir| + try tmp.dir.makePath(dir); + + var res =3D try parseArgs(allocator, tmp.dir, &TestArgIterator{ + .argv =3D tt.args, + }); + + switch (tt.want_result) { + .early_ok =3D> try testing.expectEqual(res, .early_ok), + .early_err =3D> |want_msg| try testing.expectEqualStrings( + want_msg, + res.early_err, + ), + .exec =3D> |want| { + try compareExec(res, want.args, want.env_zig_lib_dir); + }, + } + } +} diff --git a/toolchain/private/defs.bzl b/toolchain/private/defs.bzl index 9409f5e..635dde9 100644 --- a/toolchain/private/defs.bzl +++ b/toolchain/private/defs.bzl @@ -32,7 +32,7 @@ LIBCS =3D ["musl"] + ["gnu.{}".format(glibc) for glibc in _= GLIBCS] =20 def zig_tool_path(os): if os =3D=3D "windows": - return _ZIG_TOOL_PATH + ".bat" + return _ZIG_TOOL_PATH + ".exe" else: return _ZIG_TOOL_PATH =20 --=20 2.34.5 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 DKIM-Signature: a=rsa-sha256; bh=MCi9WbpoJ4f9XVbwrKOVO3MbBdlb8SYntje2gmBylJY=; c=simple/simple; d=sr.ht; h=Date:Cc:From:In-Reply-To:Subject:To; q=dns/txt; s=srht; t=1671794655; v=1; b=Z/DVc/S/JZ5kDYQNhdVx20vIRegt2UVXp9LHqIdKk1ek+9G689IjEaH+lOKj8RnwFvJL1xyZ Qj3wNohhFc3EMDFh2/rpthJh8UA658h1n5UcRHa/C4lWMB9hCHKW7XwmM/58mdU1z+HHJuea5o2 6KaD4atEBf0deKTdvukQkEkc5lu0ZgMlT/OIbPEuCG/uBKvmTcY9BsKg4Q3wQHx8H31pA/+C4ew zFtedFVHc0x75PTuJ+alItXiTLKhRbUeeDlKyXkaQw6M8slpinj5M+w9AftxlkByRn1qR5SwHlx 8a1NMt3snRSPPKgcajW8C4xFz39RctEA3pQkuPSR/3v7A== Received: from localhost (unknown [173.195.146.244]) by mail-b.sr.ht (Postfix) with UTF8SMTPSA id 4733711EEC6; Fri, 23 Dec 2022 11:24:15 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 23 Dec 2022 11:24:15 +0000 Cc: ~motiejus/bazel-zig-cc@lists.sr.ht From: "builds.sr.ht" Message-ID: In-Reply-To: <167179347159.25324.12223141818448163553-1@git.sr.ht> Subject: [bazel-zig-cc/patches/.build.yml] build success To: "~motiejus" Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 bazel-zig-cc/patches/.build.yml: SUCCESS in 19m41s [zig launcher: replace shell wrappers with a binary][0] from [~motiejus][1] [0]: https://lists.sr.ht/~motiejus/bazel-zig-cc/patches/37721 [1]: mailto:motiejus@jakstys.lt =E2=9C=93 #910438 SUCCESS bazel-zig-cc/patches/.build.yml https://builds.sr= .ht/~motiejus/job/910438 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=deepjudge.ai header.i=@deepjudge.ai Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) by mail-b.sr.ht (Postfix) with ESMTPS id 2BF5A11EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 30 Dec 2022 18:55:11 +0000 (UTC) Received: by mail-lj1-f175.google.com with SMTP id s22so22803484ljp.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 30 Dec 2022 10:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deepjudge.ai; s=google; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SKfm5xAly6Wk5FrjV8xWZn6E9RXjg7/mbH2I7j03ZZc=; b=D/OLaMrf8vELXp6vmTaDggT8qQhpoGuXQwjiJjegJfKR3QTuvMzTWSJGpWBsC8ZaEg 1pu32u9tcUr9Jb3+hdWhIjy+R96yxVeq4RtTXJ81JQRcGiuMqLjQbLMtnJ3cVFEoD8hB kDUKprPeDLZ23sTSRVvvL6KJPO3wdYwk08lnQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SKfm5xAly6Wk5FrjV8xWZn6E9RXjg7/mbH2I7j03ZZc=; b=d9YTuRyYixyQjaAw3uMRNpBcjbQ6yJ5KOHQE5TArho2d+LyqoJ7fKD8Z0crOrbUzRR 5tYezJk1GZ32SQIA40vwd7EvB5VBuhVgo3V9ZeLYJJeubujb7142gW8nLWuvnx6jCx3U b8UnMQozOWTdpizOtr4z0RcTAU94HhwpfqRXipe+/WeCtdkqh56f48ArpdU1gUeXHl4X 38dabs8Jq2GjuURonGZi1rUVHbK76BVw0h0MZ5Q9nKMU1Q10s8TyVhxmq7vvD8Agk6xg YDvG8kDms3dlIJjNU5y3yFTWG9215Miq3yOt8VFYWg/mI7rHWj/Y7Hiie6RTTpDtdwtw 8S+w== X-Gm-Message-State: AFqh2kpQ4epCf6OirIj3oLrq+tImpJld354xkP+DFUyKI0WRIdLCa3Mw ET4PdyegyNmNZgieqI5qimhtdJSxhwnrr7Y+Y5aJYXt4PZpFeFZp+5s= X-Google-Smtp-Source: AMrXdXsBskO4fyQXyYFokAjiSHxvZk9zwMlx6z5XbYI9YSStfzG+UKsqXAVrzCw/d4WEA7LWxm4AtO1z34EH7k/5Wp8= X-Received: by 2002:a05:651c:1077:b0:279:df97:e895 with SMTP id y23-20020a05651c107700b00279df97e895mr1388586ljm.226.1672426509679; Fri, 30 Dec 2022 10:55:09 -0800 (PST) MIME-Version: 1.0 From: Philippe Voinov Date: Fri, 30 Dec 2022 19:54:59 +0100 Message-ID: Subject: Re: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: "~motiejus" Content-Type: text/plain; charset="UTF-8" I ran into problems with missing shell utilities (dirname and sed) when using bazel-zig-cc with rules_rust. rustc seems to unset PATH when calling tools like the linker, which causes problems with the zig tool wrapper scripts. I guess this patch would solve the issues that I'm seeing? From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) by mail-b.sr.ht (Postfix) with ESMTPS id 4377111EF31 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 30 Dec 2022 19:08:07 +0000 (UTC) Received: by mail-oi1-f173.google.com with SMTP id j130so14457908oif.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Fri, 30 Dec 2022 11:08:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XWYAcB2nhXupEMMFX4i72OixK2OQRANNd6NEl0AOX+Y=; b=LcWUFKd19DeMxUWAOp6CW1Z+j7473+uCxUNnY91OgpuC8vwL1FMYCN2jwGUjnMeudU 9m0XbB6XvjFMykX4OO0Daq3iDFQp3w1NPQnkLWGzZYIL2VRL/4rha7PAzq4RBPgoOlLP lLB62fK/dA5EojEzmpMyM1nHntFOJbziHkrWEBb8maGvUm3nNzs9txq09E6an5B658C+ /UpL0pyoWgdtri1vwZZS79Wo94csUSr0MO1HL0COzhrOkAm1bQd9FyOcGt8HVDizb8Ax xw8JulmdHTA2gCRze894jJV1FXam8JEi9XUL4uraL1aKHehB0050bZG82hG7803Z38EC fQkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XWYAcB2nhXupEMMFX4i72OixK2OQRANNd6NEl0AOX+Y=; b=2Gdymd4ZxZku7mQN3/p0oHm3tPaAHV+whUgmvBdw9ENOISfKya9S47QXTzcLKMhr/Z ju+04qG6g3UM1BjMIMLiQl22OANiL9Ae7W3rspWcV+ptSpLT7Fgj7q/Lf/mehc/7agLH Q+Bn9Gq/OJ4yqV1sgkPgc67IoXDi4pXA2Fdi+F6FN3sSYJpsf68lYEr7GFo79+XMo57B STt13pgG5+GXQNjMb/S4LRHTqfEg5CBYprWjze7Xm0jN3GmH51NMjfPvV4kOLuRkZxZY 6o1gSds1g7+LcAr7vD00FmpR/sa87a/CWYrDoC1kDJVmkbcpu6BNio513pBkW/C+sCwj +uxw== X-Gm-Message-State: AFqh2kqcPfvps5ATQfp4dTyWUyytvxH1fFBZzqS0+HwQrvu3jPyeK5Mo F7bvbBQkEf46mXWbBhFB40vKyerCK0lkQdDzYY8= X-Google-Smtp-Source: AMrXdXtU0ipM//F9jKYZpaT4SEPRGH1Flj6ejICI0vl9vz+jac8aao7JEUjcn2+Sy1PiWVeUwskU3Y/R0rmDsVgDd9o= X-Received: by 2002:a05:6808:2885:b0:35b:dac6:cc84 with SMTP id eu5-20020a056808288500b0035bdac6cc84mr1745942oib.116.1672427286299; Fri, 30 Dec 2022 11:08:06 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Fri, 30 Dec 2022 21:07:55 +0200 Message-ID: Subject: Re: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary To: Philippe Voinov Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, "~motiejus" Content-Type: text/plain; charset="UTF-8" On Fri, Dec 30, 2022 at 8:55 PM Philippe Voinov wrote: > > I ran into problems with missing shell utilities (dirname and sed) > when using bazel-zig-cc with rules_rust. rustc seems to unset PATH > when calling tools like the linker, which causes problems with the zig > tool wrapper scripts. I guess this patch would solve the issues that > I'm seeing? Hi Philippe, It has a high chance to work, but you never know until you try. Feel free to test the patch yourself (or the remote branch motiejus_launcher_zig[1]) and please report back. I am hesitant to merge it as-is without Fabian's ack whether it works on Windows though. [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/motiejus_launcher_zig From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id B1A7D11EFBC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 2 Jan 2023 21:53:54 +0000 (UTC) Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1672696431; bh=eOA61wVHDLksK5hazy+Rc+92DG49TO7UW474//DmaBI=; h=To:Cc:References:Subject:From:In-Reply-To; b=hJ1QyamFGw3nf6UUzQEoIrlAc3P+b8bppR4fOWNAp5+JUIYL4XXx1QmYrVtfoTgzX 0e2YZSsnfZ6kxVl15mL+/VuZlNhPE5KSZ6YIqP+sDDWltCnLJJEH/CNt33OhcNe48o VLai9jvtiEVut0KTID0+/1LzEtTHjQ1kYxUu5dUQ= Date: Mon, 2 Jan 2023 21:53:48 +0000 Mime-Version: 1.0 To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: ~motiejus References: <167179347159.25324.12223141818448163553-1@git.sr.ht> Subject: Re: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary Content-Language: en-US From: Fabian Hahn In-Reply-To: <167179347159.25324.12223141818448163553-1@git.sr.ht> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Motiejus, Apologies for the delay in responding, I was traveling over the Christmas and new year break and just got back home. I've tested your patch on Windows and there are currently two issues with it, one is trivial to fix and the other one I'm not sure about: First, cache_prefix in toolchain/defs.bzl needs to have its backslashes double escaped: once for bazel, and once for zig itself, otherwise the zig compiler will complain about invalid escape characters. So it should be "C:\\\\Temp\\\\bazel-zig-cc" Second, zig further fails to compile launcher.zig with the following error: launcher.zig:70:73: error: expected ';' after declaration     \\Usage: <...>/tools//{[zig_tool]s}{[exe]s} ...                                                                         ^~~~ launcher.zig:71:3: note: invalid byte: ' '     \\   ^ The reason for this is that Git on Windows inserts carriage return characters before newlines when checking out local files so they show up fine in Windows text editors where \r\n is the default for line breaks. This then breaks the zig parser's support for multiline constants as detailed in https://github.com/ziglang/zig/issues/9257 which is marked as closed even though it doesn't look resolved to me at all. Converting newlines is the default behavior for Git unless you explicitly disable it by setting core.autocrlf in your Git config. While that would be a workaround, I would find this an uncommon thing to do and an odd thing to require of Windows users, which is something also pointed out in the above issue. I did confirm that either of the following two hacks to launcher.zig do make your patch work on Windows: 1. Replace usage_cpp and usage_other by regular strings without multiline constant syntax. 2. Setting core.autocrlf to false in Git and recloning the repository. 3. Running dos2unix on launcher.zig before compiling it. None of these are ideal, so I'm not quite sure how to go about solving this. What do you think? Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) by mail-b.sr.ht (Postfix) with ESMTPS id 82C7E11EFBC for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 2 Jan 2023 22:34:26 +0000 (UTC) Received: by mail-ot1-f45.google.com with SMTP id m7-20020a9d73c7000000b00683e2f36c18so13153779otk.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 02 Jan 2023 14:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YEv3oJ7FtfUki/5yS+k9UTcY+XBhauUSMD9KeWCuTVs=; b=TKH3kCfOiBLN+6lfyblD07YHSY7j0xI/q3eBYMk6MJxy1d7WgJi90OIes1+S48/ncN Twg22oiPJUHXznmGYIfZzKSDEV1yHsdTBofLblue2FyQ+yhpmYSKCTbGp2deXP902jCd nfqtzQ2gPXR0DI8BvYzf+Wvdyuk8lKMK333WAemvO/ceKVRkS2f19k88OMc7x26qcIPp zfkWXMRv1UiQ0GGjnUn+e2N4jKD7sdLcsPF8Dm0pCk81MOZDh49NNZVoDadm6Xw5jyUc oiEv05ATB0J8qNeU+GPCEOA2U64LZ7e7n+4xS/vWC9UFBAYcikUH11EL+3ofzQ11wNuH 8N1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YEv3oJ7FtfUki/5yS+k9UTcY+XBhauUSMD9KeWCuTVs=; b=e4rwA4AFDbfSgOWdaosXLdNP2g+1b8Udfj4IV24suPdwW1dEeLdLhDjN5yMWfPzTox 4vj1YzjMqIAaRauqhF3IvzXtuHMXmYPB6Oxl2w4jRzJqxu1y4anz8LKTnfqw6KEdF87q /WRDEsngSMsSx4Q/XTFD7XbbpqNriYRKLyr83cRVFpiIH6wiY9INO/ZBvO5CJwBYYG7D 3b0OB0cR4k9CzBXDhUeiz87IhlfdJMIHGxbteb5+sxw6MRAWlux4hQ4Sh7m8zyo24rE5 T59pFtIT/qaP9OEjkaIcEnbUN3WN0bDI28qhoIxv7xxDS9FKIl+bQ6v6ahL/3OeIMO2p CDIg== X-Gm-Message-State: AFqh2kpi85JRMmzaWw1nBrJLKIQ1FexXWNRoTHFk9Pt2z6GMJ7Oups/6 AC5iOXVLSoGuugDdKpaWuN9BI4IFwRGv3kH2d0E= X-Google-Smtp-Source: AMrXdXuikI3anogpEpEmdCbJbmoeFbvLB3TevJUgj12X/NBpbdSDu94XSuiq9NuBpGUwSHfUZ23WGPRNpOjycSRwCTc= X-Received: by 2002:a05:6830:567:b0:661:dd09:fcc4 with SMTP id f7-20020a056830056700b00661dd09fcc4mr2360534otc.60.1672698864797; Mon, 02 Jan 2023 14:34:24 -0800 (PST) MIME-Version: 1.0 References: <167179347159.25324.12223141818448163553-1@git.sr.ht> In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 3 Jan 2023 00:34:13 +0200 Message-ID: Subject: Re: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary To: Fabian Hahn Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, "~motiejus" Content-Type: text/plain; charset="UTF-8" On Mon, Jan 2, 2023 at 11:53 PM Fabian Hahn wrote: > > Hi Motiejus, > > Apologies for the delay in responding, I was traveling over the > Christmas and new year break and just got back home. Happy new year! :) > I've tested your patch on Windows and there are currently two issues > with it, one is trivial to fix and the other one I'm not sure about: > > First, cache_prefix in toolchain/defs.bzl needs to <...> > be "C:\\\\Temp\\\\bazel-zig-cc" Fixed, thanks. > Second, zig further fails to compile launcher.zig with the following error: > > launcher.zig:70:73: error: expected ';' after declaration > > \\Usage: <...>/tools//{[zig_tool]s}{[exe]s} ... > <...> > 1. Replace usage_cpp and usage_other by regular strings without > multiline constant syntax. This. > None of these are ideal, so I'm not quite sure how to go about solving > this. What do you think? I am OK with using ugly strings with ++ until https://github.com/ziglang/zig/issues/9257 is fixed one way or another. Can you do a final test on https://git.sr.ht/~motiejus/bazel-zig-cc/commit/motiejus_launcher_zig before I merge it? Thanks, Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=hahn.graphics header.i=@hahn.graphics Received: from mail.hahn.graphics (poliwhirl.hahn.graphics [139.162.183.182]) by mail-b.sr.ht (Postfix) with ESMTPS id D672011EED7 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 3 Jan 2023 08:43:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hahn.graphics; s=mail; t=1672735389; bh=2iL93w52CB/FTkYi7s1VtI4kgojNZXlvRaiafHFAhiQ=; h=From:To:Cc:Subject:In-Reply-To:References; b=pNVRFxw42ymR5gTFYgl1MpqSWBCJaGcyOmEbbfXIEtzgiwomOZduLveMxoQA5jBFn bzMYMf0/Gfu0MUvdt/XlmoB8A4I7F8EAVpYNlIsIGLR8wOgU6BV0lePz8hBWmewCec uU4lr8XqhHuWNg820IzUt5kgQMx+jp6TOYAZaDGE= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Tue, 03 Jan 2023 08:43:02 +0000 From: fabian@hahn.graphics To: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht, ~motiejus Subject: Re: [PATCH bazel-zig-cc 1/1] zig launcher: replace shell wrappers with a binary In-Reply-To: References: <167179347159.25324.12223141818448163553-1@git.sr.ht> Message-ID: X-Sender: fabian@hahn.graphics On 2023-01-02 22:34, Motiejus Jakštys wrote: > I am OK with using ugly strings with ++ until > https://github.com/ziglang/zig/issues/9257 is fixed one way or > another. Can you do a final test on > https://git.sr.ht/~motiejus/bazel-zig-cc/commit/motiejus_launcher_zig > before I merge it? Sounds good, thanks for making the change. I've tested your latest branch and Windows host support is working fine :) Best, Fabian From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=avilabs-is.20210112.gappssmtp.com header.i=@avilabs-is.20210112.gappssmtp.com Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by mail-b.sr.ht (Postfix) with ESMTPS id 6CC1A11EF61 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 9 Jan 2023 10:59:26 +0000 (UTC) Received: by mail-ed1-f54.google.com with SMTP id i9so11943880edj.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 09 Jan 2023 02:59:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=avilabs-is.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=wiO/vRQsIvbU7BYL+3sg/r15a0jG1SiXTC1zvb/GmUg=; b=VsAytavVhwOlNShKfzv02O3lK0oX02MQvQz1fgx5bzNOEiM0Zw1SYU3uSFp8PKvzrt HhRU7xxbOe+v7w2hV82NumJ7bivyb4u5OaQOf2hxxyAu/INfAAcndulbGHtx/iXnjSK0 0QMRnnmdn19yUTFqrd93pAcV9gqu3nLL8rqywy9lqF4HuOvSXsM6Dg1exL1qLB48tinB dCsDsnQ5PCk/tomv7WfsjvaZJh726wdeYRz3j2bszebWHgjUQoyfP4P3R+NlYlZSBK7Q ASSmiXUiB6qxpSfzGAp2tn5qqpWPHBkBdsGa5mPfmcczxjJx0d3hLT3vCQQxG+UhMV3t zLDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wiO/vRQsIvbU7BYL+3sg/r15a0jG1SiXTC1zvb/GmUg=; b=yG42sbLb13v5ukIb7APiTXVaof1TDMw1AA7xcE9ODa0+OnxaIH4ElSD3+PP06UebHs XkJUOM3camI2uqfNwBQk3SCQrSXXMEvGrKfKpCMLkPdxW+r5ZZ+fTxHwJDUwuqgs8Mwg Ic3A8qDnvlIfdOVVioLPqOOSrVfUSh7mUIkpZgj6323gl4dX2EUi4coHExB+e748MiJ2 AtlGL3lOlG155ljzTf4dDqmoXrNdcfUcUaihA+rOOAPJoUyREIgRZRKwDzli2c7o7DBn z3iIVjPE/equF2bAk4MMidVVCP0Ed8mCzvX1dawXUjdjq36vDzSm2yonZ4TcW5s/f8Xp WuhA== X-Gm-Message-State: AFqh2kpD9+EEeQtwVV0VX/xv0fgPaoDVEijQtPuXdBJUqqQP/Ke+vu7e BMXqC9bLtz8ACRJ7vmEV5+JhsACwovjh3Paz6BSC3LprIsLQfNGt1m0= X-Google-Smtp-Source: AMrXdXuZ/GQWTSkeEcqkeUiPR7niaGSYFMaJAxSsxtnIUKOqlJrp1Oq7XYR0IyWnSwNMpRcbs2qxivY2GzZ5Z60KKMY= X-Received: by 2002:a05:6402:4c4:b0:496:839b:351f with SMTP id n4-20020a05640204c400b00496839b351fmr1306911edw.287.1673261964948; Mon, 09 Jan 2023 02:59:24 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?RGFuw61lbCBQdXJraMO6cw==?= Date: Mon, 9 Jan 2023 10:59:14 +0000 Message-ID: Subject: Re: bazel-zig-cc v1.0.0-rc4: call for testers To: ~motiejus/bazel-zig-cc@lists.sr.ht Cc: Fabian Hahn Content-Type: text/plain; charset="UTF-8" I tested this with our repository but it fails to compile Rust code due to the following error: ``` error: /home/danielp/.cache/bazel/_bazel_danielp/f060a56172a8e8c557483bbe1399c8d9/execroot/monorepo/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/cargo__pin-project-internal-1.0.12/libpin_project_internal-932791180.so: cannot allocate memory in static TLS block --> external/cargo__axum-0.5.9/src/routing/method_routing.rs:20:5 | 20 | use tower_http::map_response_body::MapResponseBodyLayer; | ^^^^^^^^^^ ``` I tested this using the HEAD of the Zig toolchain and the default Zig version using the latest release of rules_rust. I'm not sure if this is an issue with Zig, Rust, rules_rust or the Zig toolchain and don't have the capacity to do a deep dive at the moment. From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.171]) by mail-b.sr.ht (Postfix) with ESMTPS id 2171011EE64 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 9 Jan 2023 12:10:32 +0000 (UTC) Received: by mail-oi1-f171.google.com with SMTP id r130so6899008oih.2 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 09 Jan 2023 04:10:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=eX6AsbvvO56a6DTz/iqP5zl+424Ez637Al7XfYFbF5s=; b=EHSbmQ4MKCWl21TfWtjUzyhOIbegataFY+GNitS9LAFxqccK5+UsBs7gTuA6Mq7lKq GijeFJN9dLeb15CZaoO6gEXunDQD/NrPCDk5GLCSx9cOtqbOVMzkfuKYxWFzgStnU/ek UFX2gDTAOWG2PLn+rvQkq6+mc4kWcAOkl1Rq5CZlNIZpgQgEILaVfpDwlTUyd8kRRdYi Sh4VvZnp2W55eXdeB8EB67YJa+NPXdslDXwL6KFHqQf5viMhsFFCYflWWFadrb6gFVno mCQil7F8AQGJMO0Q28110fYXuNgeiVlPRspamtY6rUMPebQSmxtnSCWArM2BNrfRE5BF Pn+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eX6AsbvvO56a6DTz/iqP5zl+424Ez637Al7XfYFbF5s=; b=ooy4Sg3Fd1UbFmkhculn5O1uNmekLz3cdxpxuoso4mjJRiPRz4afo06DvVb8rVBQg9 um8h5ugWHkrZJTIICLTG+5oR3/Q6VCBFVBgSF8YGHzNzU+8vnsS6lCLAQ1fHLNmT6/hB Uzl2aue1PpHW2uo+svbQtgmXSP/fEavTEK/7VbJVaBsVpNbNqA0poqGKg4NNwhQAApB5 7AUOG45ZYc1VGVhWMZ23/s6H2Sn2w/J4S0fapmPgpktQHerBwT29Q0kMG9uy2Bvg3IBl FhWAP/wGmLDB7TCRaDKxdDUYTgbP0mubbd2P6hLQhpLJKsrswC2EbvIDRczTb2QlfgnU qo0w== X-Gm-Message-State: AFqh2kos9whboE9lEwoAOyGSvWSt6vP0wonRpO0nYN67eBNJwmgNrrqz 1ECYN19BTHARFopYbU76qcA150iLRkX2EeEVZOIXOyQ6eLaHuQ== X-Google-Smtp-Source: AMrXdXtirHZFFMJg1W+C4d5rl4P6m0gNou81Hr5u9nd2Ayaz+JQEpWaQQe9esXsCh17ncRN0faj08o/Y7cHK1A/HUqk= X-Received: by 2002:a05:6808:8c3:b0:35b:740:7598 with SMTP id k3-20020a05680808c300b0035b07407598mr3270960oij.216.1673266231218; Mon, 09 Jan 2023 04:10:31 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 9 Jan 2023 14:10:20 +0200 Message-ID: Subject: Re: bazel-zig-cc v1.0.0-rc4: call for testers To: =?UTF-8?B?RGFuw61lbCBQdXJraMO6cw==?= Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 9, 2023 at 12:59 PM Dan=C3=ADel Purkh=C3=BAs wrote: > > I tested this with our repository but it fails to compile Rust code > due to the following error: > > ``` > error: /home/danielp/.cache/bazel/_bazel_danielp/f060a56172a8e8c557483bbe= 1399c8d9/execroot/monorepo/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/carg= o__pin-project-internal-1.0.12/libpin_project_internal-932791180.so: > cannot allocate memory in static TLS block > --> external/cargo__axum-0.5.9/src/routing/method_routing.rs:20:5 > | > 20 | use tower_http::map_response_body::MapResponseBodyLayer; > | ^^^^^^^^^^ > > ``` > > I tested this using the HEAD of the Zig toolchain and the default Zig > version using the latest release of rules_rust. > I'm not sure if this is an issue with Zig, Rust, rules_rust or the Zig > toolchain and don't have the capacity to do > a deep dive at the moment. Hi Dan=C3=ADel, Having spent a few minutes searching for a similar issue, https://github.com/rust-cross/cargo-zigbuild/issues/27#issuecomment-1094177= 369 may be a good start. I am not planning to work on adding Rust-specific support to bazel-zig-cc, but will accept patches that make support *better* for Rust. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) by mail-b.sr.ht (Postfix) with ESMTPS id B6D2311EF5B for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 24 Jan 2023 09:12:15 +0000 (UTC) Received: by mail-oi1-f177.google.com with SMTP id p133so12713748oig.8 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 24 Jan 2023 01:12:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pirDsVdLJZtJJTnvtmK6QCkfNIPZaeF2xWVl50xvN1Q=; b=5y8MsL2MPc5sTpRtSIlkgnSrkX3G+47FKsAHPRzaVbWu+c/cc+3ZqYbq4vT/fyz5VA H0jHnFTj4ytvHAX+bJBZOxAoX6xJsr9iiXHHRC8F+J0b34Z/FQ5PMNDc7wxe2Iv+OlUW hYAjO5pPoBMzNJXUAGgD4p+md8mEbUEBUZKTWvXvDYbV1iLXMo8D7HvqWvS4AcSxpFPz taar6aDzy2GsbATJsz0/MbIBmIhi3ln3CzXChe36Yit5WY/nKaPW9sjrZZuk9LS6rvAB ffQMvkCxHppcpf+32C5EACWmf1g3A3qj0kI+SbSQaTH7BRlcdNzyPq1ofw4uLbsiTXlJ X8gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pirDsVdLJZtJJTnvtmK6QCkfNIPZaeF2xWVl50xvN1Q=; b=gIdYJNFL/qVVIElJa5IaC2a2X2IpXREirrkJhFgH28XgwCNlZybc8E/uSp4yXWF1gx pkHEFvzGNi+InzA3vUPlfgBbPsCH3eYNwKoJYxYN39CrkuElpz4BhENOrDsw5szn199M uz65FRMoyocTzLwlm5AxKMcG2C9gjkon1XE0NDyK8hs4caXXgSti1auuM3h9fWyXIKJg 5UhsVU4Ulkp+Fxj0D+X/wjKa+zjwdrLkLmZyhcALs4n6Q/6pSSfjzrHES/sNRwodktaI 6pP7ZOb3yzTn1NrHdpF2+S4FT/LolJVNn8aAnmU+vq/SmxyqibHZtkWSNfXQdIjgQZ75 ZKRQ== X-Gm-Message-State: AFqh2kpqio7abc7ea/9cSUIVNB56iF7fZF0sToWeH/OZ6gXW90DGygRe pTxzTjWseH8WwP67CpaZGfeGN8t1JqA0wxX/JZABNMuybAfwQask X-Google-Smtp-Source: AMrXdXvOo38z8zJaeMPG1n9kq4ZJdGctq2rPkcWCyUipqGRJG9yZTbsGJMclKgeemTV4Eee5T14X1QnhKRR9Ievv3ic= X-Received: by 2002:a05:6808:1396:b0:36c:3082:f21f with SMTP id c22-20020a056808139600b0036c3082f21fmr1293665oiw.116.1674551534859; Tue, 24 Jan 2023 01:12:14 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 24 Jan 2023 11:12:03 +0200 Message-ID: Subject: bazel-zig-cc v1.0.0 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, I just released bazel-zig-cc v1.0. It has been compiling Uber's Go Monorepo since Jan 4 of this year, so we feel it's good enough for v1. Changes since v1.0.0-rc4: - add `res_search` workaround for ziglang/zig#9485[1], equivalent to `fcntl= 64`. - replace the shell-based wrapper scripts with one written in zig. This enables --experimental_use_hermetic_linux_sandbox, leaving only /proc/self/exe required outside of the toolchain (I will probably fix even this eventually). - Apple M1 improvements by Jeremy Volkman. This is probably the last release of bazel-zig-cc in sourcehut. In very short order bazel-zig-cc will become an official Uber's project and move to github. I will send a separate announcement when that happens (and maybe a blog post somewhere). Thanks everyone involved in working with us towards v1.0; here are our contributors: Motiejus Jak=C5=A1tys Ken Micklas Laurynas Lubys Fabian Hahn Jeremy Volkman Adam Bouhenguel Luis Holanda Mantas Jonaitis Piotr Sikora Motiejus [1]: https://github.com/ziglang/zig/issues/9485 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=gmail.com header.i=@gmail.com Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by mail-b.sr.ht (Postfix) with ESMTPS id BA87E11EF33 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 31 Jan 2023 18:30:33 +0000 (UTC) Received: by mail-wm1-f52.google.com with SMTP id j32-20020a05600c1c2000b003dc4fd6e61dso6295706wms.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 31 Jan 2023 10:30:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:message-id:subject:date:mime-version:from :content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=n12HA2hV21eFT3bpEeIz2d10w7v0CipRR2jUa02tUdE=; b=iCc4+90qqkNRna/kCzqObfppv+ElKz3Qchv68ZrirWNsRtC7Zbb8Obt8crREfDR2p8 kdyujunCjfopwBonDHjK8MBm35bdJmmd6jsJ+d0KM18Pz7IweV/qX+hh9cacRgh6lTNm WUyecoZ7t2a/wewB86nC+47hWGXq3rQUgSUAGp6Wytfe+CTCtJmsJ/l25YYtT5kjTJT0 t78xT9R91GuOF3FHyxTSI5xpnFhGY4jbXOdYCAO9GAAl3dMB6YMhCLR5wfPR4reh922O crgM5Tg9QK5ryG6x4xHCYD0MZWgDt+TasJw3WXLHMEcAOQxUljvURBOPe39vu5V7RuvB sJCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:message-id:subject:date:mime-version:from :content-transfer-encoding:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=n12HA2hV21eFT3bpEeIz2d10w7v0CipRR2jUa02tUdE=; b=JKUltrn4s3MwuRg4MwK1m3QVbu65yMPXAho/0x/beT+dvdkosYnXl3meELHxzw170W kw5GQkc6FhSpwEXJijLj+5eA3k2RRA8VoVdagauDW13wQydJ9fZ0AzTmNdqb64+MbIWR twktQK4lgpSBd5hDqnnBGfUGARo4MPsFcf8oUpO2sarr+K0aByG3yU5TRN2uEqqKlC8E L0/Vx4Cq4UAdaBnnk9zzsjHbG7sI+iKal28MngHqzkHHUdquHhE13vZ3h77PqL4ur/Pf av6zjWGPeK8/Eumg7xbL0wNlCSwaJEQdQtKjEego5gxdm0Gm1bM7JUdLJlcHgd2bkVLp L1bQ== X-Gm-Message-State: AO0yUKUQbJ5XZyYrAxW4wTfHYW+RgVK8sD4t0+GT/xblG7Y1ohR6x5Ws HHizatbnrXdjJ8BKtfAP81H9Ek04Q1M= X-Google-Smtp-Source: AK7set9HHZ8jlVWGbInO+6dsL0SeC45/Tw9jT2n4UK8yDRAjPgBH7t5Cr/DG1XmGwCBygjNDQ+lodw== X-Received: by 2002:a7b:c416:0:b0:3dc:5950:b358 with SMTP id k22-20020a7bc416000000b003dc5950b358mr9086394wmi.14.1675189832389; Tue, 31 Jan 2023 10:30:32 -0800 (PST) Received: from smtpclient.apple (cpc73674-dals20-2-0-cust516.20-2.cable.virginm.net. [82.39.238.5]) by smtp.gmail.com with ESMTPSA id l16-20020a7bc350000000b003d9aa76dc6asm23192438wmj.0.2023.01.31.10.30.31 for <~motiejus/bazel-zig-cc@lists.sr.ht> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 31 Jan 2023 10:30:32 -0800 (PST) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable From: Simon Mavi Stewart Mime-Version: 1.0 (1.0) Date: Tue, 31 Jan 2023 18:30:21 +0000 Subject: Setting sysroots Message-Id: To: ~motiejus/bazel-zig-cc@lists.sr.ht X-Mailer: iPhone Mail (20D47) Hi, Is there any recommended way of passing a sysroot to use to the zig-cc toolc= hains that are created? And also to pass additional linker flags? I'm trying to use bazel-zig-cc to compile code using Rust, and some of the d= ependencies need to link against `libiconv`. For macOS compiles, I know that= I need to supply my own sysroot, and that needs to contain not just the lib= raries, but also the frameworks that are linked against. Being able to speci= fy additional linker flags would help with that a lot. Kind regards, Simon Sent from my iPhone= From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f42.google.com (mail-oa1-f42.google.com [209.85.160.42]) by mail-b.sr.ht (Postfix) with ESMTPS id 80EE111EEF6 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Feb 2023 06:42:09 +0000 (UTC) Received: by mail-oa1-f42.google.com with SMTP id 586e51a60fabf-1631b928691so22324331fac.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 31 Jan 2023 22:42:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=utQqHvcPaIgRS3drT1L6mOTb/DE6v2Z5Z4nvezVHXo8=; b=QNj8Fgbg64imNlrUAZOU+4Ysi9t8ZQ++3BdhjAKtpwgQMS6L9VVkVxXG2OAUZJt1fb tjvL3O4r2h3qJcDf86c2D4V1ke6tK2oZ23GuHYteyEmJ4vd/5iD7k7eAkeh6wOESqrs8 IOg0cxKvtmpUOF1HvG7R/w/gSF6mzcDpSDzTQ3J9xORh7xiWca1YqCFHw4oj7haq/5lU LA7vbBS0Lzc5bhl2UDbbqb71GJodejcPcDRimap2he7O0DT7tIBKEUnB/l9Vsh5uv9M4 zQZFa5lnzsKU63Jtw/JW6/6AUPOGgD3Lg/RnzIx0yOc7KLu7AtGpeaHHQl6KuZpJ9AJx QQ2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=utQqHvcPaIgRS3drT1L6mOTb/DE6v2Z5Z4nvezVHXo8=; b=zX9rrE9EwCb96vXqEMDpfSNM8cTHEiTMvV5AGGMH/k3OqNsgpZcnzswL30DlfjSw/A ulDN6BS29a+Jqg8vmTfqVQMA/c30RHgjvAOOvr54QhQyWjZO5lajHCHmOXsWT5O7PUAB YUERu6DQndcuMd422CEr1Zn6toYQ0KNSylWnur8yrknGDf6i43wlE1dzUuk/+bdrEaFj fizV5/f0BTe2Bm6KiqQi+UNDKK6IPI/S809+qQI5ZFYBzaDcj0PzQYlft96a2IDwaa9a q0lbF3D9iIddmNXJ9AknLz4PKxsWzjyea0EvjX3cefOAYrK78NPXwP9BRw2b1f6jF+dc 611A== X-Gm-Message-State: AO0yUKU1ZuTfa3PbEglkvvv1OFNPedCt1liK4CERhF1dy5vO/cNYZsXH z8FTOe7XUJBiPOtxzqBEnP9JyOdd32g8UH8QMf0= X-Google-Smtp-Source: AK7set/IkiK0iQuBnALkIDIzes66XmYL73mGXcw76xghv+LidxYFnTwOLGdqZmeqmjmQxhk5P5fe7eAOp2ZapzQYaUw= X-Received: by 2002:a05:6870:391e:b0:154:210:aad8 with SMTP id b30-20020a056870391e00b001540210aad8mr79503oap.116.1675233728702; Tue, 31 Jan 2023 22:42:08 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Tue, 31 Jan 2023 22:41:57 -0800 Message-ID: Subject: Re: Setting sysroots To: Simon Mavi Stewart Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 31, 2023 at 10:30 AM Simon Mavi Stewart wrote: > > Hi, > > Is there any recommended way of passing a sysroot to use to the zig-cc to= olchains that are created? And also to pass additional linker flags? Hi, Yes. See this snippet in the README: version =3D "<...>", url_formats =3D [ "https://example.org/zig/zig-{host_platform}-{version}.{_ext}", ], host_platform_sha256 =3D { ... }, Does that explain it? > I'm trying to use bazel-zig-cc to compile code using Rust, and some of th= e dependencies need to link against `libiconv`. For macOS compiles, I know = that I need to supply my own sysroot, and that needs to contain not just th= e libraries, but also the frameworks that are linked against. Being able to= specify additional linker flags would help with that a lot. Linking to libraries outside the sandbox is highly, highly discouraged. Normally you would build libiconv with bazel (cc_library et al) and statically (recommended; you can also link dynamically, but that has its own caveats) link to it in your application. As far as *.tbd files of MacOS are concerned (do I correctly understand that this is what you mean by sysroot?), this is currently unsupported, and, honestly, I have very little idea how to implement it. But I will review/accept patches that do it. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) by mail-b.sr.ht (Postfix) with ESMTPS id 352CC11EF87 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 1 Mar 2023 07:01:22 +0000 (UTC) Received: by mail-ot1-f45.google.com with SMTP id l13-20020a0568301d6d00b0068f24f576c5so7004174oti.11 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 28 Feb 2023 23:01:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=341AQbBr8EeqGhQIedaqTUph1hVhMvfQgTdnHn9B2sQ=; b=qIrCEoiOrms7UfacVUNeb5bFOh388I4VD9vC/hOBJWEOC6Y8GqIAT8Js3GiwoxHqUU kE+/DoZBVxo+rL+M0uNtOv2geejLDYrsYIzb25ys0/eJtW+yRHvpZARKlhBvknSfNCI9 0tUbaBaVoqG95JUnXpdjETBA/zFPOjopHNiqAznaqlpQkk4FmL3JSLATibrJk0LcNccf kZ9AU9dEqdQbFlSszOZPME7LUUEwSeHBqoqnPS2C4g/W2+QDG8CLojbC5gIttybb/xFj i68lTVL+Xi3zDVU+wZcby8Ch2zvMiQx5ovRuGS5vN4mJgF4xSJY6W1LyrftZIqE0QKGY T91A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=341AQbBr8EeqGhQIedaqTUph1hVhMvfQgTdnHn9B2sQ=; b=KoUhs0a6HASgYeIH5vXlY9P96d+/QNO2rJvEC2lp0PHAx9piVB7JeE+Q2G2DtmatZ6 5nOjkIz/hAOLondRBXeZ7qdbcADZ0iy81QzV3GZDNMyXqQ/ZAnQ/LNSB3jNCCdYKpfSL 0RXr6uqrnUGzbFITOL+MNysmLV6IwSU5DD4Uav/e5i834KH+QEkVxp/Sgyzz+TrH5lBz 2GpMHyAC+0Cse2qPmJ+P1SHRv3yS3BGGwNH99NRKVtRluq3iVB6IPfbhj64VpI5Wc6i9 va6ZpYnQcuxwik4IZcSv9y3rBwO5q/iHv6gK9dflwxR1i1s1kesWYnRLMfAysv9cV8mn Bhag== X-Gm-Message-State: AO0yUKW5L08q4Jyo3R+pEKSB4INn+7k4RsFugLhcItfOWCiVIRdvbdUo fhkauylW42Zh6Av7ve7Cn6sLFzV9+Q7Trv++VQ4= X-Google-Smtp-Source: AK7set8trQVnOcKp8mO+HaBVv5WCjMLHqqvMDzWfi+93k40aEAwux29LJBy04iy7erouElLMIp4o2dILuCn5Eb5RUo0= X-Received: by 2002:a9d:600a:0:b0:68b:d3e8:575f with SMTP id h10-20020a9d600a000000b0068bd3e8575fmr1909069otj.5.1677654081410; Tue, 28 Feb 2023 23:01:21 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 1 Mar 2023 09:01:10 +0200 Message-ID: Subject: Re: bazel-zig-cc v1.0.0 To: Jeremy Volkman Cc: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 1, 2023 at 1:31=E2=80=AFAM Jeremy Volkman = wrote: > > Hi Motiejus, > Has that move to GitHub happened yet? Should we still send patches to thi= s list? > Hi Jeremy, We are still working on it, there have been some bumps on the way. Worry not, it will be announced. Until that happens, please keep contributing to sourcehut/this mailing list. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) by mail-b.sr.ht (Postfix) with ESMTPS id 3424511EF96 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 6 Mar 2023 09:41:52 +0000 (UTC) Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-176b90e14a9so3082643fac.9 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Mon, 06 Mar 2023 01:41:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; t=1678095711; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KHLWt4SFcy5d3KGmDzqpKrFQGir4fMGvuU4gHfpcVDQ=; b=dPcQmUvpPUvBc0j66qVkBCIRRVyrscB5L/KPrL4xoeJuCSriXpWHQBdTbv8o+DDIif glPcbOM10mSTuMWzjFA/+qxv2euUxkMF12IQzdilw+FPg96hF627qYQPwslHymLUf4qB 9K89tQrAsmw/ovJ2gs70nv49X5FO9/vSooyXl4WY7J3Gx1VWPZ5gZWNgB/k6tHFckG4v 3wc/WNenxlKUUjV4z+IJYUYJTWNgA4lD0wqKHrap1GhUbN2MHGaFoMPMclRcL9lrXeDc FymEx/zQHxtoXYR4roffK7xvLjCmonkQ6nopGNbcS9fR8hweatrxayb6CsRnd5QXXEVh sezw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678095711; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KHLWt4SFcy5d3KGmDzqpKrFQGir4fMGvuU4gHfpcVDQ=; b=bHllgOiXQ7QNb/Q2plRC1rMOzPk+LWRVT0YgGYHb1kA0qBFK9o2O1oUpU+9617R1As F3pZAQ6hM5ShDaQLbpzhGHvIdrxSyVlWL2GDaY0/Oy+AtsiUB/ejMDPyO/vrZP1T8vnJ wD5k/HjARvHCVS8FjuVynYbaNKoI8jIC3X+DxNZ+T+1P/KJVApnX8ExZktOcA6ZwSS6B W1ec0NsQIWpBmTNgqYxD8Dn3Hfto+liDkD7K1+NBsxy63Yq3mEN6ymjckfPb6PuXJojI QUMhYfN+ih1Lg7B2+gPJDpcKqo4PedcGvEYu2PBiB3hlx/kPBmd7tXp66JjQ1QI+zF85 rrGQ== X-Gm-Message-State: AO0yUKVOA3yV6SPNdYFas2qkyV4JI2jCflWZAsh50lYX7WmULP/Nncb5 vVJ7faIti9lv2J1NiMqOiQ6Hs6CvmUyVBvb/N21Vz6kmXhI= X-Google-Smtp-Source: AK7set8t8jRvCk/nLe+DUPUHvVQsD2vWjU4awePbjuoatEvjtjHG8xu0MBpJdOatCBhzGCyWjvh2f6WH4rbD+UJd7WM= X-Received: by 2002:a05:6870:3a12:b0:16e:9d0:2211 with SMTP id du18-20020a0568703a1200b0016e09d02211mr3480199oab.11.1678095711441; Mon, 06 Mar 2023 01:41:51 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Mon, 6 Mar 2023 11:41:40 +0200 Message-ID: Subject: bazel-zig-cc v1.0.1: relicense to Apache v2 To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi folks, I just cut bazel-zig-cc v1.0.1: - partially relicensed[1] to Apache v2. - download zig sdk from mirror.bazel.build by default instead of dl.jakstys.lt. Thanks for no longer using the server from my closet -- turns out Google is generous enough to mirror such files[3]. You can now safely omit the "version", "url_formats" and "host_platform_sha256" -- we intend to keep upgrading bazel-zig-cc to a reasonalby new Zig version, forever mirrored to mirror.bazel.build. - upgraded Zig to 0.11.0-dev.1796+c9e02d3e6. This Zig fails the linker step on unsupported linker flags[4], which will make autoconf/automake/cmake invocations with zig cc more robust (it used to emit a linker warning if it found an unsupported linker flag, sometimes with unexpected consequences). We created a #zig channel in Bazel Slack. Bazel says the invitation link[2] will be active for 14 days. Just find us on #zig in bazel.slack.com if you want to chat. All following contributions to bazel-zig-cc will be accepted only under Apache 2.0 license; this was the last required step before moving the repository to github/uber. The move took longer than I though it would, but rest assured, it is happening. Before the move, let's keep using this mailing list and Slack for comms. After the move, the this mailing list will be replaced by github issues/PRs, Slack will stay. Motiejus [1]: https://git.sr.ht/~motiejus/bazel-zig-cc/commit/dfdb1f26805c1ccf6d1113276d40c8ce4c1fa17e [2]: https://join.slack.com/share/enQtNDkwMTIxOTk0NTk1NS01OGUyNjM4ODQ2MDI1NjdiNmYyOTMxMGNiOWRiMDU2YmY0MmYwNWU1ZjI5NzNmMjMzZGExNDJkZGE0NzI5N2I3 [3]: https://github.com/bazelbuild/bazel/issues/17635 [4]: https://github.com/ziglang/zig/pull/11906 From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=edgelesscompute.onmicrosoft.com header.i=@edgelesscompute.onmicrosoft.com Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2097.outbound.protection.outlook.com [40.107.7.97]) by mail-b.sr.ht (Postfix) with ESMTPS id F133511F008 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 7 Mar 2023 16:15:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YFyoDL4c9ZGF1XLga63UMYYIqSIKUKYzRvAEJwGsRZsSHCD+8ZX1gbidlGvNRMPFuAGZAo2uFzAiAdy4qcgVuWyNAKU/lJ2e+RF4f3/IPt7ciA+MwD71ywMMBMVKrxtvQeN9KxGqeU7XHI6Es6n/ji7rRCV8RyLWDQYTlSwsGSZ1cJGgkduCtgGrNw4J69APFV1uCdIytuwE4pZSguSb8izZGndSgfcE/hecZf+YGYWZ7sFbZ88fDHzjrR06XFrW+vYKur3ShGhuFbUYqotYagKqrHftVZXIMNL2w/wLW3Ha513JyyU2ljta7+LOzAXt9erSFkal+7gphXFj5h+nTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kc32X+Y0WyUOgZl4j7AgAFhn/Pu5ywsL1ZGM9wQO6C4=; b=fD164Kgsw0HYAXnHsFx15Ml7/UrDaNh1xkWkFDWUAsBgFeXK8O41hKmALDYpvvbkYFB97VPDui0S9uugrHN1yZ9bn0XG4yCYumOp19LsTG9CpD0/EFmjLsntO422qtHTLl3FLtxeI308m47Xa8Tc2nx0WJICjk588rMfP3SQyg7gsWXsZXN/zs/ynElsVyS8sgUmg6U5r5w6+i4naaF9YnepJjU/b0bJEgNcFoT/geeBXklU9fzWfJddzFoZcvcpGib7cyQkNGi829hHxiPpeBZ04X5IqTYmSuD4wUxfb8knhfaBPpUUSaMvqj4HUADKOiMQUARd4NTeDxZqDisAHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=edgeless.systems; dmarc=pass action=none header.from=edgeless.systems; dkim=pass header.d=edgeless.systems; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=edgelesscompute.onmicrosoft.com; s=selector1-edgelesscompute-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kc32X+Y0WyUOgZl4j7AgAFhn/Pu5ywsL1ZGM9wQO6C4=; b=UR+6TzHq5DyTQZlVyDepW9TUnjyO7JfRCgtrJ3EHZ+/ntSJxq7oLqsgCCkEFpRH20H7YzZ1lqRqAlmeYcPQ+0vheMxNiCB0FTGTF+BtbuqxgcKkOi/rzNjFX875FvaOrU0QyOALb6g5okorIVBCxSHCTz4ywt9wUxcl1XlkoJWM= Received: from AM6PR02MB4470.eurprd02.prod.outlook.com (2603:10a6:20b:60::26) by AS2PR02MB9692.eurprd02.prod.outlook.com (2603:10a6:20b:5e8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.27; Tue, 7 Mar 2023 16:15:09 +0000 Received: from AM6PR02MB4470.eurprd02.prod.outlook.com ([fe80::77cb:f64d:66e1:45fe]) by AM6PR02MB4470.eurprd02.prod.outlook.com ([fe80::77cb:f64d:66e1:45fe%4]) with mapi id 15.20.6156.028; Tue, 7 Mar 2023 16:15:09 +0000 From: Malte Poll To: "~motiejus/bazel-zig-cc@lists.sr.ht" <~motiejus/bazel-zig-cc@lists.sr.ht> Subject: bazel-zig-cc embeds bazel cache path in go binary Thread-Topic: bazel-zig-cc embeds bazel cache path in go binary Thread-Index: AQHZUQyCt72lM2cHQEOQ7xqzbgSQqq7vfVcN Date: Tue, 7 Mar 2023 16:15:08 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM6PR02MB4470:EE_|AS2PR02MB9692:EE_ x-ms-office365-filtering-correlation-id: a6e36297-a00c-464c-c0e4-08db1f271f26 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ISz03HwFPOTDBB5O8gfF2GjpDkCaoJ4PpzRhTFaTkupaENU8Q88C6k5hUlKSJaK8f/E/lI0TjYifSCUxRv9OB+EqgMaADIr/W4aeSrlL0HzUovY4jkj6qp6dprdM0XHMUpOmUTZvt7APYoPJ7NKywZBAU7Z6Yl1jsxJNzMRTnIdaaHkgOz9lLc85+9Jb5LL/dKSktE+MEME6Dgat80upf5iZeZTrW+DqLXVCUn4SPVvzUOcJjZBanLwViKoyxlJvqH/ukqgDWRvIWXadCCAbqx5HXoDeIpUPCNkypztx86mpeyoBbP7IzhJd72ikyYF0txLUfIR8LRO00LWLdjM5qoH2eAi0oxs/iXxxrEZLThU7z/lWMTL9FUouQT9UMwqVnNFrRk9LEXaEfnMo4QGHFtBvntnxEzsvABP8a1jODRKvf7zmOyp8PgUCaO1tXl9t+dP9qfzclo+kxQ031Y0X3RGo4bvBzS+qb9L7iaeG2Wj3BceiItUwM+lcFV8L5X9BsQH0kI3CqhUuydlcWqBMzSPQGP/f/XceZHqZj37juhIO8JTFYyi3ghqbnsOC5UhVbgPIZC8vFIWDG93HGFqzeuOqM5uFP17JrIo/TAEWlKFqHURjQBldoQo29GM2TRo1NWO0GqNFol/qmfTzlU5KKZXtx0tE5InFS0XzupNYSSXtuYXKTpA6n1Zie5S9x8NzLOYK4kJSRdNZugiOrnCSn9u9efopbkFNPNCxMhD6VNE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR02MB4470.eurprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(346002)(39840400004)(376002)(136003)(396003)(451199018)(8936002)(66556008)(5660300002)(52536014)(66446008)(91956017)(66946007)(66476007)(2906002)(8676002)(64756008)(76116006)(316002)(478600001)(71200400001)(7696005)(6506007)(41300700001)(26005)(86362001)(33656002)(99936003)(122000001)(38070700005)(55016003)(186003)(38100700002)(2940100002)(9686003)(46492015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?koi8-r?Q?0M9jpOLG1j60GnuKUfgLhF3p8V6n22wwZgOWHmgTjOodK2O5SE0qEOYPMvIVHl?= =?koi8-r?Q?WSqUXFOeFAxRmrPse+AxeTYRPKDo6V5pyoIASh4KXLQA1obS7uGWLNFTicd9V+?= =?koi8-r?Q?t78lO7l7OkgngeFIMsmaegczTCVPKwMDPoh7P3ccuJB3qKKGkDYgj7nmr3+SPy?= =?koi8-r?Q?vrMa7+7IWYjXjeSsjisLbrTibGW0cWPKv4RP77zOW0whdC9KHlZ8PRUi/faFVD?= =?koi8-r?Q?nfs7YEA0cbb0rCgpnHa4KYHdP3ItjUSo4JNpkD51oENQWdRyfYlkD+anvaoxwr?= =?koi8-r?Q?kTPL3YDdqyjFWHvoABW1TubTx3Ukc06dvcrEheq5W9AWWsuwxiB+uGQnFRdTlZ?= =?koi8-r?Q?STYA+0i0EHNZzlnUFBfaul2xBiDMj1qrxobu6UhxXXiFPMeYT0j4YL/2D4vQOE?= =?koi8-r?Q?cuv5tc5xeJXvM0W6bFBbmgASLT9RLclZJUPD2Ejef6aI/7MidcuFJ4o7H3tjy1?= =?koi8-r?Q?6CiSGgDR072OrwmHKdrV7luusNnNJiqRAJNdMBLnmbLpXwzeKoMc66xeP6RcFG?= =?koi8-r?Q?bf0SqtnfYL2fEcqmNm7bQoedm8j5XnplsdNTdRM1FM0NCrC0gJPmgboP9zI8jB?= =?koi8-r?Q?QOfOStKA8rKvSmDyl8ResDzLccDzSyKAimMKcSNiSrgq6E2E6WEpqWNDAMgH9x?= =?koi8-r?Q?ggBg+RrexWFXxjjsHVryA01Mf/EMSCm8XZs30zR4PN0OqtxdTrT29K9T7rSSgv?= =?koi8-r?Q?i5ozelFh4qTtrTMbMW7uuSojXZbDrye5McUtoWYxzCQygrN/I2+9O44p8C8DWG?= =?koi8-r?Q?FluUajqtjQHEqf0wCQ2NI0nbNaIoV0REwQ7HP7226WO8t5d/JtfJEIV/1cqOHF?= =?koi8-r?Q?aDHI3X6kTeN0F78QN8tRN2D1/y45vtTsM21vN5kVtodsq7XKPOYUnuoAabUuza?= =?koi8-r?Q?RLvQs8nhbps+Nf06jNjGdHeqaiS7mg1taV7+R+7ZnOxe/UsN8RzYHp9Z0GOUO3?= =?koi8-r?Q?itmpIwSIlSlgdrCaTPI7LWhzd2k0XpAsU8OjN9GGB2ZYy9Po1YLpbl0FEFYqYR?= =?koi8-r?Q?5h0q3KVfkBu8w8FC8gKWCFXakYh/vY2CtINwenYuK7nfrbilHuJp3BDK6pJvWU?= =?koi8-r?Q?C1IuXx6jm2hHDP+9/i7hRoEAp6jVxpmKWt5AGGT75qNrgHBJW0TMs4ZIZbZMAU?= =?koi8-r?Q?Q4Pci/OP0vXP/TIeL7OYpGYPs6m/1eb4k3EZZZZybYF+mLRntfsUG0pc7fUwj8?= =?koi8-r?Q?hDEJcBTHX2vuwTbCHX4Nz0X6yVYJcCZ/6wOnqyAHpIc52qdnW322kpQhALXI4E?= =?koi8-r?Q?At2uVI+lZ1CxSe3qQ8UyIEDIYB+J1oiL2iJltG2Km4uhyI+pGUYUcL5GmNkbLH?= =?koi8-r?Q?W/hslADCNCsdQJVRCm3AVyEXrAqteAgDAkVxweHTV8UpEwGrZUnMAcRz+8s4kT?= =?koi8-r?Q?KiHBy95XJYzvCqH3iM3/tGBSNQR1kVPm7NQnDIbkbL7qQJAyeX/myKQtQS9nii?= =?koi8-r?Q?t2ygmOF1mghHsPEKU1gh3KiH8/1YJwYf3Q2GADKrvjSOWuxtemtBR61kU9MSWa?= =?koi8-r?Q?QdgPt4OFOZu6QrGa5+6+SZ8C1xhwBidZ/n5+iN6S2pSchVBNim?= Content-Type: multipart/mixed; boundary="_002_AM6PR02MB44704BD42717C2D472D0CEB6B5B79AM6PR02MB4470eurp_" MIME-Version: 1.0 X-OriginatorOrg: edgeless.systems X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR02MB4470.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6e36297-a00c-464c-c0e4-08db1f271f26 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2023 16:15:08.9407 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: adb650a8-5da3-4b15-b4b0-3daf65ff7626 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WcbKeuQVhy3hOFEsKPySBOKtIhGY3yj6clxXG4yZ9bIH3ISmIn73HJmTMfCdrgw2I2JeMmFuVWM26Zyt8dKS9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR02MB9692 --_002_AM6PR02MB44704BD42717C2D472D0CEB6B5B79AM6PR02MB4470eurp_ Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =0A= Hello,=0A= =0A= I was checking if bazel-zig-cc produces reproducible go binaries if used as= a compiler for cgo.=0A= As a test, I compiled the same binary on the same commit on two different s= ystems (Ubuntu, Fedora) and in two different paths at different times.=0A= =0A= The binaries are not reproducible. At least some differences seem to be com= ing from bazel-zig-cc:=0A= =0A= The paths to pthread.h and signal.h on my build system are embedded in the = resulting binary. See below for an instance of this behavior.=0A= Do you think this can be prevented to make the resulting binary more hermet= ic / reproducible?=0A= =0A= - [15809be] /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a9b5= 6bc/sandbox/processwrapper-sandbox/44/execroot/__main__/external/zig_sdk/to= ols/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/pthread.h=0A= =81 - [1580a8e] gcc_libinit.c=0A= =81 - [1580a9c] pthread_create failed: %s=0A= =81 - [1580ab6] gcc_linux_amd64.c=0A= =81 - [1580ac8] /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a= 9b56bc/sandbox/processwrapper-sandbox/44/execroot/__main__/external/zig_sdk= /tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/pthread.h= =0A= =81 - [1580b98] /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a= 9b56bc/sandbox/processwrapper-sandbox/44/execroot/__main__/external/zig_sdk= /tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/signal.h= =0A= =81 - [1580c67] malloc failed: %s=0A= =81 - [1580c79] bad stack bounds: lo=3D%p hi=3D%p\n=0A= =81 - [1580c98] pthread_create failed: %s=0A= =81 - [1580cb2] gcc_util.c=0A= =81 - [1580cbd] runtime/cgo: out of memory in thread_start\n=0A= =81 + [15809be] gcc_libinit.c=0A= =81 + [15809cc] /home/malte/.cache/bazel/_bazel_malte/bb1175a64d2f0f71785= aea697a0484ea/sandbox/linux-sandbox/224/execroot/__main__/external/zig_sdk/= tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/pthread.h= =0A= =81 + [1580a9b] pthread_create failed: %s=0A= =81 + [1580ab5] gcc_linux_amd64.c=0A= =81 + [1580ac7] malloc failed: %s=0A= =81 + [1580ad9] /home/malte/.cache/bazel/_bazel_malte/bb1175a64d2f0f71785= aea697a0484ea/sandbox/linux-sandbox/224/execroot/__main__/external/zig_sdk/= tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/pthread.h= =0A= =81 + [1580ba8] bad stack bounds: lo=3D%p hi=3D%p\n=0A= =81 + [1580bc7] /home/malte/.cache/bazel/_bazel_malte/bb1175a64d2f0f71785= aea697a0484ea/sandbox/linux-sandbox/224/execroot/__main__/external/zig_sdk/= tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/signal.h= =0A= =81 + [1580c95] pthread_create failed: %s=0A= =81 + [1580caf] gcc_util.c=0A= =81 + [1580cba] runtime/cgo: out of memory in thread_start\n=0A= =0A= Attached is the full output of diffoscope.=0A= =0A= Kind regards,=0A= Malte Poll=0A= =0A= =0A= --_002_AM6PR02MB44704BD42717C2D472D0CEB6B5B79AM6PR02MB4470eurp_ Content-Type: text/plain; name="diffoscope.txt" Content-Description: diffoscope.txt Content-Disposition: attachment; filename="diffoscope.txt"; size=13002; creation-date="Tue, 07 Mar 2023 16:05:00 GMT"; modification-date="Tue, 07 Mar 2023 16:13:14 GMT" Content-Transfer-Encoding: base64 LS0tIGJvb3RzdHJhcHBlci1mZWRvcmEKKysrIGJvb3RzdHJhcHBlci11YnVudHUK4pSc4pSA4pSA IHJlYWRlbGYgLS13aWRlIC0tc2VjdGlvbnMge30K4pSCIEBAIC0xMCwxNSArMTAsMTUgQEAK4pSC ICAgIFsgNV0gLmdudS52ZXJzaW9uICAgICAgVkVSU1lNICAgICAgICAgIDAwMDAwMDAwMDA5NjIx NTggNzYyMTU4IDA5ZDdkOCAwMiAgIEEgIDQgICAwICAyCuKUgiAgICBbIDZdIC5nbnUudmVyc2lv bl9yICAgIFZFUk5FRUQgICAgICAgICAwMDAwMDAwMDAwOWZmOTMwIDdmZjkzMCAwMDAwYjAgMDAg ICBBICA5ICAgMiAgNArilIIgICAgWyA3XSAuZ251Lmhhc2ggICAgICAgICBHTlVfSEFTSCAgICAg ICAgMDAwMDAwMDAwMDlmZjllMCA3ZmY5ZTAgMjA5YTIwIDAwICAgQSAgNCAgIDAgIDgK4pSCICAg IFsgOF0gLmhhc2ggICAgICAgICAgICAgSEFTSCAgICAgICAgICAgIDAwMDAwMDAwMDBjMDk0MDAg YTA5NDAwIDI3NWY2OCAwNCAgIEEgIDQgICAwICA0CuKUgiAgICBbIDldIC5keW5zdHIgICAgICAg ICAgIFNUUlRBQiAgICAgICAgICAwMDAwMDAwMDAwZTdmMzY4IGM3ZjM2OCBkZTc2ZTQgMDAgICBB ICAwICAgMCAgMQrilIIgICAgWzEwXSAucmVsYS5keW4gICAgICAgICBSRUxBICAgICAgICAgICAg MDAwMDAwMDAwMWM2NmE1MCAxYTY2YTUwIDAwMDA0OCAxOCAgIEEgIDQgICAwICA4CuKUgiAgICBb MTFdIC5yZWxhLnBsdCAgICAgICAgIFJFTEEgICAgICAgICAgICAwMDAwMDAwMDAxYzY2YTk4IDFh NjZhOTggMDAwNzA4IDE4ICBBSSAgNCAgMjUgIDgK4pSCIC0gIFsxMl0gLnJvZGF0YSAgICAgICAg ICAgUFJPR0JJVFMgICAgICAgIDAwMDAwMDAwMDFjNjcxYTAgMWE2NzFhMCAxNTgwY2Y4IDAwIEFN UyAgMCAgIDAgMzIK4pSCICsgIFsxMl0gLnJvZGF0YSAgICAgICAgICAgUFJPR0JJVFMgICAgICAg IDAwMDAwMDAwMDFjNjcxYTAgMWE2NzFhMCAxNTgwY2YwIDAwIEFNUyAgMCAgIDAgMzIK4pSCICAg IFsxM10gLnR5cGVsaW5rICAgICAgICAgUFJPR0JJVFMgICAgICAgIDAwMDAwMDAwMDMxZTdlYTAg MmZlN2VhMCAwMmQwZWMgMDAgICBBICAwICAgMCAzMgrilIIgICAgWzE0XSAuaXRhYmxpbmsgICAg ICAgICBQUk9HQklUUyAgICAgICAgMDAwMDAwMDAwMzIxNGZhMCAzMDE0ZmEwIDAxMWUwMCAwMCAg IEEgIDAgICAwIDMyCuKUgiAgICBbMTVdIC5nb3BjbG50YWIgICAgICAgIFBST0dCSVRTICAgICAg ICAwMDAwMDAwMDAzMjI2ZGEwIDMwMjZkYTAgMWVhNTQ1OCAwMCAgIEEgIDAgICAwIDMyCuKUgiAg ICBbMTZdIC5laF9mcmFtZV9oZHIgICAgIFBST0dCSVRTICAgICAgICAwMDAwMDAwMDA1MGNjMWY4 IDRlY2MxZjggMDAwMjg0IDAwICAgQSAgMCAgIDAgIDQK4pSCICAgIFsxN10gLmVoX2ZyYW1lICAg ICAgICAgUFJPR0JJVFMgICAgICAgIDAwMDAwMDAwMDUwY2M0ODAgNGVjYzQ4MCAwMDBhMTQgMDAg ICBBICAwICAgMCAgOArilIIgICAgWzE4XSAudGV4dCAgICAgICAgICAgICBQUk9HQklUUyAgICAg ICAgMDAwMDAwMDAwNTBjZGVhMCA0ZWNjZWEwIDM0NGM5YzIgMDAgIEFYICAwICAgMCAzMgrilIIg ICAgWzE5XSAuaW5pdCAgICAgICAgICAgICBQUk9HQklUUyAgICAgICAgMDAwMDAwMDAwODUxYTg2 NCA4MzE5ODY0IDAwMDAxNyAwMCAgQVggIDAgICAwICA0CuKUnOKUgOKUgCByZWFkZWxmIC0td2lk ZSAtLXN5bWJvbHMge30K4pSCIEBAIC05NTMwOCwxNSArOTUzMDgsMTUgQEAK4pSCICAgOTUzMDQ6 IDAwMDAwMDAwMDFkNDJhYWQgICAgMzMgT0JKRUNUICBHTE9CQUwgREVGQVVMVCAgIDEyIHR5cGU6 LkUra0JnZ00xCuKUgiAgIDk1MzA1OiAwMDAwMDAwMDA1NGE5OWEwICAgMzk0IEZVTkMgICAgR0xP QkFMIERFRkFVTFQgICAxOCBnaXRodWIuY29tL2dvZ28vcHJvdG9idWYvcHJvdG8ubWFrZVN0ZERv dWJsZVZhbHVlTWFyc2hhbGVyLmZ1bmMxCuKUgiAgIDk1MzA2OiAwMDAwMDAwMDA3M2Q5YTQwICAz OTE5IEZVTkMgICAgR0xPQkFMIERFRkFVTFQgICAxOCBnaXRodWIuY29tL2F3cy9hd3Mtc2RrLWdv LXYyL3NlcnZpY2UvZWMyLigqYXdzRWMycXVlcnlfc2VyaWFsaXplT3BDcmVhdGVTdWJuZXRDaWRy UmVzZXJ2YXRpb24pLkhhbmRsZVNlcmlhbGl6ZQrilIIgICA5NTMwNzogMDAwMDAwMDAwODBiNmE2 MCAgIDEyNyBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAgMTggZ2l0aHViLmNvbS9hd3MvYXdzLXNk ay1nby9zZXJ2aWNlL2lhbS4oKkRlbGV0ZUluc3RhbmNlUHJvZmlsZUlucHV0KS5Hb1N0cmluZwri lIIgICA5NTMwODogMDAwMDAwMDAwNTRhOTdlMCAgIDQyOSBGVU5DICAgIEdMT0JBTCBERUZBVUxU ICAgMTggZ2l0aHViLmNvbS9nb2dvL3Byb3RvYnVmL3Byb3RvLm1ha2VTdGREb3VibGVWYWx1ZU1h cnNoYWxlci5mdW5jMgrilIIgICA5NTMwOTogMDAwMDAwMDAwODE3Y2Y4MCAgICA0OCBGVU5DICAg IEdMT0JBTCBERUZBVUxUICAgMTggZ2l0aHViLmNvbS9BenVyZS9henVyZS1zZGstZm9yLWdvL3Nl cnZpY2VzL2tleXZhdWx0L3Y3LjEva2V5dmF1bHQuKCpDZXJ0aWZpY2F0ZUlzc3Vlckxpc3RSZXN1 bHQpLklzSFRUUFN0YXR1cwrilIIgICA5NTMxMDogMDAwMDAwMDAwMzA1NTdjMCAgICAzMiBPQkpF Q1QgIEdMT0JBTCBERUZBVUxUICAgMTIgZ286aXRhYi4qY2xvdWQuZ29vZ2xlLmNvbS9nby9jb21w dXRlL2FwaXYxL2NvbXB1dGVwYi5BZ2dyZWdhdGVkTGlzdFVybE1hcHNSZXF1ZXN0LGdvb2dsZS5n b2xhbmcub3JnL3Byb3RvYnVmL3JlZmxlY3QvcHJvdG9yZWZsZWN0LlByb3RvTWVzc2FnZQrilIIg LSA5NTMxMTogMDAwMDAwMDAwMzFlN2U5MCAgICAgOCBPQkpFQ1QgIEdMT0JBTCBERUZBVUxUICAg MTIgX2Nnb195aWVsZArilIIgKyA5NTMxMTogMDAwMDAwMDAwMzFlN2U4OCAgICAgOCBPQkpFQ1Qg IEdMT0JBTCBERUZBVUxUICAgMTIgX2Nnb195aWVsZArilIIgICA5NTMxMjogMDAwMDAwMDAwMWNh ZjRhNiAgICAxOCBPQkpFQ1QgIEdMT0JBTCBERUZBVUxUICAgMTIgdHlwZTouZnJGMkxFZ0sK4pSC ICAgOTUzMTM6IDAwMDAwMDAwMDU0ZDEyNDAgICAgOTkgRlVOQyAgICBHTE9CQUwgREVGQVVMVCAg IDE4IGs4cy5pby9hcGltYWNoaW5lcnkvcGtnL2FwaS9yZXNvdXJjZS5pbmZEZWNBbW91bnQuTWFy c2hhbFRleHQK4pSCICAgOTUzMTQ6IDAwMDAwMDAwMDU2MWZlMjAgICA3NjMgRlVOQyAgICBHTE9C QUwgREVGQVVMVCAgIDE4IGdvbGFuZy5vcmcveC9uZXQvaHR0cDIvaHBhY2suaHVmZm1hbkRlY29k ZQrilIIgICA5NTMxNTogMDAwMDAwMDAwNTk0Y2EyMCAgICAyNiBGVU5DICAgIEdMT0JBTCBERUZB VUxUICAgMTggZ29sYW5nLm9yZy94L3N5cy91bml4LigqVGltZXZhbCkuTmFubwrilIIgICA5NTMx NjogMDAwMDAwMDAwNjI3NTA4MCAgIDM3OSBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAgMTggZW5j b2RpbmcveG1sLmlzTmFtZVN0cmluZwrilIIgICA5NTMxNzogMDAwMDAwMDAwMjA0ZDk4MCAgICA4 MCBPQkpFQ1QgIEdMT0JBTCBERUZBVUxUICAgMTIgdHlwZTpZdXZRMG8wYQrilIIgICA5NTMxODog MDAwMDAwMDAwMWQ0ZDY2YSAgICAzNCBPQkpFQ1QgIEdMT0JBTCBERUZBVUxUICAgMTIgdHlwZTou eS9sNHhuUW0K4pSc4pSA4pSAIHN0cmluZ3MgLS1hbGwgLS1ieXRlcz04IHt9CuKUgiBAQCAtNDAz OTM2LDIyICs0MDM5MzYsMjIgQEAK4pSCICAkKDA3PkZNVV1lbQrilIIgICEmLjY8QkhNVVxkCuKU giAgIScuNDtDSVFWXWUK4pSCICAgIiQoKiwwMjQ2egrilIIgIAkJCQkJCQkwCuKUgiAgZ2NjX2Zh dGFsZi5jCuKUgiAgcnVudGltZS9jZ286IArilIIgLS9yb290Ly5jYWNoZS9iYXplbC9fYmF6ZWxf cm9vdC8zNzg1NzhlNGY0MzMxMzJiMmNiMjA5NDU4YTliNTZiYy9zYW5kYm94L3Byb2Nlc3N3cmFw cGVyLXNhbmRib3gvNDQvZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94 ODZfNjQtbGludXgtZ251LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJj L3B0aHJlYWQuaArilIIgIGdjY19saWJpbml0LmMK4pSCICsvaG9tZS9tYWx0ZS8uY2FjaGUvYmF6 ZWwvX2JhemVsX21hbHRlL2JiMTE3NWE2NGQyZjBmNzE3ODVhZWE2OTdhMDQ4NGVhL3NhbmRib3gv bGludXgtc2FuZGJveC8yMjQvZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29s cy94ODZfNjQtbGludXgtZ251LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWds aWJjL3B0aHJlYWQuaArilIIgIHB0aHJlYWRfY3JlYXRlIGZhaWxlZDogJXMK4pSCICBnY2NfbGlu dXhfYW1kNjQuYwrilIIgLS9yb290Ly5jYWNoZS9iYXplbC9fYmF6ZWxfcm9vdC8zNzg1NzhlNGY0 MzMxMzJiMmNiMjA5NDU4YTliNTZiYy9zYW5kYm94L3Byb2Nlc3N3cmFwcGVyLXNhbmRib3gvNDQv ZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94ODZfNjQtbGludXgtZ251 LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJjL3B0aHJlYWQuaArilIIg LS9yb290Ly5jYWNoZS9iYXplbC9fYmF6ZWxfcm9vdC8zNzg1NzhlNGY0MzMxMzJiMmNiMjA5NDU4 YTliNTZiYy9zYW5kYm94L3Byb2Nlc3N3cmFwcGVyLXNhbmRib3gvNDQvZXhlY3Jvb3QvX19tYWlu X18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94ODZfNjQtbGludXgtZ251LjIuMzQvLi4vLi4vbGli L2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJjL3NpZ25hbC5oCuKUgiAgbWFsbG9jIGZhaWxlZDog JXMK4pSCICsvaG9tZS9tYWx0ZS8uY2FjaGUvYmF6ZWwvX2JhemVsX21hbHRlL2JiMTE3NWE2NGQy ZjBmNzE3ODVhZWE2OTdhMDQ4NGVhL3NhbmRib3gvbGludXgtc2FuZGJveC8yMjQvZXhlY3Jvb3Qv X19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94ODZfNjQtbGludXgtZ251LjIuMzQvLi4v Li4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJjL3B0aHJlYWQuaArilIIgIGJhZCBzdGFj ayBib3VuZHM6IGxvPSVwIGhpPSVwCuKUgiArL2hvbWUvbWFsdGUvLmNhY2hlL2JhemVsL19iYXpl bF9tYWx0ZS9iYjExNzVhNjRkMmYwZjcxNzg1YWVhNjk3YTA0ODRlYS9zYW5kYm94L2xpbnV4LXNh bmRib3gvMjI0L2V4ZWNyb290L19fbWFpbl9fL2V4dGVybmFsL3ppZ19zZGsvdG9vbHMveDg2XzY0 LWxpbnV4LWdudS4yLjM0Ly4uLy4uL2xpYi9saWJjL2luY2x1ZGUvZ2VuZXJpYy1nbGliYy9zaWdu YWwuaArilIIgIHB0aHJlYWRfY3JlYXRlIGZhaWxlZDogJXMK4pSCICBnY2NfdXRpbC5jCuKUgiAg cnVudGltZS9jZ286IG91dCBvZiBtZW1vcnkgaW4gdGhyZWFkX3N0YXJ0CuKUgiAgaW50ZXJuYWwv Y3B1LkluaXRpYWxpemUK4pSCICBpbnRlcm5hbC9jcHUucHJvY2Vzc09wdGlvbnMK4pSCICBpbnRl cm5hbC9jcHUuaW5kZXhCeXRlCuKUgiAgaW50ZXJuYWwvY3B1LmRvaW5pdArilJzilIDilIAgcmVh ZGVsZiAtLXdpZGUgLS1kZWNvbXByZXNzIC0tc3RyaW5nLWR1bXA9LnJvZGF0YSB7fQrilIIgQEAg LTExNTQ2NzcsMTUgKzExNTQ2NzcsMTUgQEAK4pSCICAgICAgICAgICAgICB277+9KSzvv70777+9 Tl5WXlvvv73vv71eRjnvv71LeCvvv73vv71YXk1r77+9Ru+/ve+/ve+/vScK4pSCICAgIFsxM2Uw YWVlXSAgO++/ve+/vV5G77+977+977+977+977+9Oe+/vSd177+9LV5fJ++/vV5XXkHvv73vv71e UFksRV5I77+977+9Xkbvv71yXllw77+9Se+/vW7vv73vv73vv70i77+977+977+9Xlzvv70277+9 Je+/vXnvv71sXu+/vQrilIIgICAgWzEzZTBiMmNdICBG77+9PO+/vV5fbEAr77+9O++/vSxfQ15V 77+9Xl1o77+9d17vv71A77+9dnfvv71d77+9ak5eXWDvv73vv73vv71N77+977+9b++/vT9eUe+/ vX1mXlDvv71AXk3vv71eXSbvv71eSVUxde+/vUcK4pSCICAgIFsxM2UwYjZiXSAgIu+/ve+/ve+/ ve+/vV5JI++/ve+/vS9H77+9Xlnvv714Pe+/vVxuCuKUgiAgICAgICAgICAgICAgZ3Pvv73vv71e WO+/ve+/vV5B77+9I++/ve+/vS1eWF4gYu+/ve+/vUMu77+977+977+977+977+977+9Ku+/ve+/ ve+/ve+/vV5X77+977+977+9XUrvv73vv73vv73vv73vv71z77+977+9YO+/vUDvv73vv71I77+9 77+977+9al5O77+9NE3vv73vv71d77+9Ne+/ve+/vV5MXkheRu+/vUDvv70p77+9be+/vW/vv70x 77+9Xkvvv73vv73vv73vv70777+9XlBgXlx5ce+/ve+/vTXvv73vv73vv709PyXvv73vv70uXl/v v73vv718XlxeWy16RV5E77+977+9XlDvv71eS++/vW7vv73vv71eQV5F77+9WzB7Xkd877+977+9 Xkzvv718Xkfvv70i77+977+977+977+9Me+/ve+/vUpW77+9cFdD77+977+9RkHvv71YXlTvv73v v711L++/vSfvv71977+977+9Xu+/vXNJ77+977+9VXTvv71eTUbvv73vv73vv71eUu+/vWp077+9 77+977+9QSJe77+977+977+977+9WV5a77+977+9Xlbvv71+cCQ277+977+977+977+977+977+9 77+9TSlBXG4K4pSCICAgICAgICAgICAgICBsKu+/vTQkWu+/vV5S77+9PVLvv71K77+977+977+9 Ju+/ve+/vUdOXknvv71nXl0K4pSCICAgIFsxM2UwYzg3XSAgJ15T77+9UO+/ve+/vV5PXF5QXkhe TV5HRO+/ve+/ve+/vV5T77+9WWIi77+9XlXvv71m77+977+9b1/vv71h77+9Ke+/vXvvv73vv71e TV5U77+977+9TiJe77+9R++/vTtW77+977+977+9Qe+/vTpwJO+/vVc077+977+9XkXvv71eXlrv v73vv73vv71k77+9Xlgo77+977+977+9Qu+/vV5NaGZX77+977+977+9Ou+/vXMuee+/ve+/ve+/ vVNeXl/vv73vv71eTe+/ve+/ve+/vV5F77+9CuKUgiAtICBbMTNlMGNmOF0gIEbvv70v77+977+9 77+9XltD77+977+977+9XUxAaO+/vSrvv71xXlDvv71wWu+/vWpA77+977+977+9cmgz77+9Xkle Te+/ve+/ve+/vTws77+977+9Xl4p77+9aF5PXlheUl5U77+977+9fu+/vdyp77+9Kkbvv71D77+9 77+9Xe+/vWF177+9Xk0mSu+/vV5BPe+/vV5M77+977+9NSXvv73vv70077+9Q++/ve+/vUdeRu+/ vVpJL++/ve+/ve+/vVxeRmU977+977+9cFfGil5e77+9fD5p77+9V++/ve+/ve+/ve+/ve+/vUte XVtV77+977+977+977+9VO+/vVp5Xkbvv71eVe+/ve+/ve+/ve+/vV5Z77+9Jl5E77+9Xlzvv71q 77+9Ju+/vWteXe+/ve+/vWDvv73vv73vv73vv71O77+9Xk5eWu+/vXReUe+/ve+/vV5PXkcyxqFC 77+977+977+9JUvvv73vv73vv71eRW5aVk1eVu+/ve+/ve+/vXs477+9Xu+/ve+/vW3vv71OXklU Xk7vv706XlpaU++/ve+/vXRcbgrilIIgKyAgWzEzZTBjZjhdICBG77+9L++/ve+/ve+/vV5bQ++/ ve+/ve+/vV1MQGjvv70q77+9cV5Q77+9cFrvv71qQO+/ve+/ve+/vXJoM++/vV5JXk3vv73vv73v v708LO+/ve+/vV5eKe+/vWheT15YXlJeVO+/ve+/vX7vv73cqe+/vSpG77+9Q++/ve+/vV3vv71h de+/vV5NJkrvv71eQT3vv71eTO+/ve+/vTUl77+977+9NO+/vV5VXu+/ve+/ve+/ve+/vU9aSS/v v73vv73vv71cXkZlPe+/ve+/vXBXxopeXu+/vXw+ae+/vVfvv73vv73vv73vv73vv71LXl1bVe+/ ve+/ve+/ve+/vVTvv71aeV5G77+9XlXvv73vv73vv73vv71eWe+/vSZeRO+/vV5c77+9au+/vSbv v71rXl3vv73vv71g77+977+977+977+9Tu+/vV5OXlrvv710XlHvv73vv71eT15HMsahQu+/ve+/ ve+/vSVL77+977+977+9XkVuWlZNXlbvv73vv73vv717OO+/vV7vv73vv71t77+9Tl5JVF5O77+9 Ol5aWlPvv73vv710XG4K4pSCICAgICAgICAgICAgICBXUO+/vV5GZmV777+9XlZeS++/ve+/vUDv v73vv71aWe+/vXDvv71+77+977+9OFhcbgrilIIgICAgICAgICAgICAgIFReQ++/vSNx77+977+9 b15NNu+/vV5d77+977+9LmN577+977+977+9XlXvv73vv71taS/vv73vv70o77+9Xl0tRe+/ve+/ ve+/vVc+TO+/vWxeRHws77+977+977+9MTZ6UlXvv73vv70xW15J77+977+977+977+977+977+9 JO+/ve+/ve+/vXleVXDvv71777+9aWvvv73vv71bQl5Z77+9XlQrR15X77+9Xknvv73vv71eVu+/ vTfvv73vv71eQ3NXXG4K4pSCICAgICAgICAgICAgICAxzrHvv70q77+9Ke+/vSNeU3c7RHzvv71e TF5X77+977+977+9fO+/ve+/ve+/ve+/vXjvv73vv73vv73vv71eRO+/ve+/vUJeV3Dvv73vv71J Qu+/vcedIWLvv73vv71N77+9XkY7I0nvv73vv700TmU177+9XO+/ve+/vTnvv71benctNyFCIV9e V++/vSReR++/vV5Y77+9Uu+/vVfvv73vv73vv71V77+9IO+/ve+/vXdk77+9cD7vv71z77+9Xe+/ vTo7d++/ve+/ve+/vTBeR++/vTwi77+977+977+9UO+/vVVwMl5Yfu+/vTdeXV5CaV5Na34k77+9 77+9Ze+/vVIt77+977+977+9X++/vXTvv71L77+977+9XklWXk/emO+/vTReWO+/ve+/vUBgYe+/ vW5QXkHvv73vv73vv73vv73vv71K77+977+9ce+/ve+/ve+/ve+/vSFPNXrvv73vv73vv73vv73v v709Xlx577+977+9Vn3vv71e77+977+977+977+977+9XlDvv73vv71X77+977+977+977+9R++/ ve+/ve+/vV5ZdGTvv73vv73vv71o77+977+9XlPvv73vv713fV5I77+977+977+9ckvvv71NbF5X ee+/ve+/vVxeTO+/ve+/vXNNKO+/ve+/vXZeVO+/ve+/vV5S77+977+9c++/ve+/vV5FCuKUgiAg ICBbMTNlMGY2Zl0gIE/vv715XO+/vV5bX++/ve+/ve+/vT3vv71B77+9fGdg77+9Pnbvv73vv73v v73vv71eXO+/vXgp77+977+9Ku+/vV5S77+9SDNcaynvv73vv71pUTPvv71eVO+/vV7vv71T77+9 Lu+/vX3vv71V77+9Xu+/vULvv70oTQrilIIgICAgWzEzZTBmYjNdICA/N2rvv73vv73vv73vv712 77+977+977+9Je+/ve+/vV5O77+977+9SV5Hb++/ve+/vUVeRCvvv71eQ++/ve+/vXzvv71eWu+/ vWnvv73vv71cbgrilIIgICAgICAgICAgICAgIGzvv719NV5DXl1s77+977+977+9XldeTe+/ve+/ vV9eWSteVdC677+9NHQjK++/ve+/ve+/ve+/vXEkXlnvv73vv73vv73vv73vv73vv73vv73vv71H IHLvv73vv73vv71eQu+/vTDvv73vv71Z77+9KkhC77+9NO+/vTLvv70977+977+9bUNtOO+/ve+/ vXHvv73vv73vv71eQk4hS1ZKau+/ve+/vVTvv73vv71F77+9CuKUgiAgICBbMTNlMTAzY10gIFvv v71eX1zvv71E77+977+977+9XG4K4pSCIEBAIC0xMjM0NDI3LDE5ICsxMjM0NDI3LDE5IEBACuKU giAgICBbMTU4MDk0MF0gIDdeXl5CCuKUgiAgICBbMTU4MDk1NF0gIEFeXl5CCuKUgiAgICBbMTU4 MDk2OF0gIEteXl5CCuKUgiAgICBbMTU4MDk3Y10gIEteXl5CCuKUgiAgICBbMTU4MDk5MF0gIE5e Xl5CCuKUgiAgICBbMTU4MDlhMV0gIGdjY19mYXRhbGYuYwrilIIgICAgWzE1ODA5YWVdICBydW50 aW1lL2NnbzogCuKUgiAtICBbMTU4MDliZV0gIC9yb290Ly5jYWNoZS9iYXplbC9fYmF6ZWxfcm9v dC8zNzg1NzhlNGY0MzMxMzJiMmNiMjA5NDU4YTliNTZiYy9zYW5kYm94L3Byb2Nlc3N3cmFwcGVy LXNhbmRib3gvNDQvZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94ODZf NjQtbGludXgtZ251LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJjL3B0 aHJlYWQuaArilIIgLSAgWzE1ODBhOGVdICBnY2NfbGliaW5pdC5jCuKUgiAtICBbMTU4MGE5Y10g IHB0aHJlYWRfY3JlYXRlIGZhaWxlZDogJXMK4pSCIC0gIFsxNTgwYWI2XSAgZ2NjX2xpbnV4X2Ft ZDY0LmMK4pSCIC0gIFsxNTgwYWM4XSAgL3Jvb3QvLmNhY2hlL2JhemVsL19iYXplbF9yb290LzM3 ODU3OGU0ZjQzMzEzMmIyY2IyMDk0NThhOWI1NmJjL3NhbmRib3gvcHJvY2Vzc3dyYXBwZXItc2Fu ZGJveC80NC9leGVjcm9vdC9fX21haW5fXy9leHRlcm5hbC96aWdfc2RrL3Rvb2xzL3g4Nl82NC1s aW51eC1nbnUuMi4zNC8uLi8uLi9saWIvbGliYy9pbmNsdWRlL2dlbmVyaWMtZ2xpYmMvcHRocmVh ZC5oCuKUgiAtICBbMTU4MGI5OF0gIC9yb290Ly5jYWNoZS9iYXplbC9fYmF6ZWxfcm9vdC8zNzg1 NzhlNGY0MzMxMzJiMmNiMjA5NDU4YTliNTZiYy9zYW5kYm94L3Byb2Nlc3N3cmFwcGVyLXNhbmRi b3gvNDQvZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemlnX3Nkay90b29scy94ODZfNjQtbGlu dXgtZ251LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9nZW5lcmljLWdsaWJjL3NpZ25hbC5o CuKUgiAtICBbMTU4MGM2N10gIG1hbGxvYyBmYWlsZWQ6ICVzCuKUgiAtICBbMTU4MGM3OV0gIGJh ZCBzdGFjayBib3VuZHM6IGxvPSVwIGhpPSVwXG4K4pSCIC0gIFsxNTgwYzk4XSAgcHRocmVhZF9j cmVhdGUgZmFpbGVkOiAlcwrilIIgLSAgWzE1ODBjYjJdICBnY2NfdXRpbC5jCuKUgiAtICBbMTU4 MGNiZF0gIHJ1bnRpbWUvY2dvOiBvdXQgb2YgbWVtb3J5IGluIHRocmVhZF9zdGFydFxuCuKUgiAr ICBbMTU4MDliZV0gIGdjY19saWJpbml0LmMK4pSCICsgIFsxNTgwOWNjXSAgL2hvbWUvbWFsdGUv LmNhY2hlL2JhemVsL19iYXplbF9tYWx0ZS9iYjExNzVhNjRkMmYwZjcxNzg1YWVhNjk3YTA0ODRl YS9zYW5kYm94L2xpbnV4LXNhbmRib3gvMjI0L2V4ZWNyb290L19fbWFpbl9fL2V4dGVybmFsL3pp Z19zZGsvdG9vbHMveDg2XzY0LWxpbnV4LWdudS4yLjM0Ly4uLy4uL2xpYi9saWJjL2luY2x1ZGUv Z2VuZXJpYy1nbGliYy9wdGhyZWFkLmgK4pSCICsgIFsxNTgwYTliXSAgcHRocmVhZF9jcmVhdGUg ZmFpbGVkOiAlcwrilIIgKyAgWzE1ODBhYjVdICBnY2NfbGludXhfYW1kNjQuYwrilIIgKyAgWzE1 ODBhYzddICBtYWxsb2MgZmFpbGVkOiAlcwrilIIgKyAgWzE1ODBhZDldICAvaG9tZS9tYWx0ZS8u Y2FjaGUvYmF6ZWwvX2JhemVsX21hbHRlL2JiMTE3NWE2NGQyZjBmNzE3ODVhZWE2OTdhMDQ4NGVh L3NhbmRib3gvbGludXgtc2FuZGJveC8yMjQvZXhlY3Jvb3QvX19tYWluX18vZXh0ZXJuYWwvemln X3Nkay90b29scy94ODZfNjQtbGludXgtZ251LjIuMzQvLi4vLi4vbGliL2xpYmMvaW5jbHVkZS9n ZW5lcmljLWdsaWJjL3B0aHJlYWQuaArilIIgKyAgWzE1ODBiYThdICBiYWQgc3RhY2sgYm91bmRz OiBsbz0lcCBoaT0lcFxuCuKUgiArICBbMTU4MGJjN10gIC9ob21lL21hbHRlLy5jYWNoZS9iYXpl bC9fYmF6ZWxfbWFsdGUvYmIxMTc1YTY0ZDJmMGY3MTc4NWFlYTY5N2EwNDg0ZWEvc2FuZGJveC9s aW51eC1zYW5kYm94LzIyNC9leGVjcm9vdC9fX21haW5fXy9leHRlcm5hbC96aWdfc2RrL3Rvb2xz L3g4Nl82NC1saW51eC1nbnUuMi4zNC8uLi8uLi9saWIvbGliYy9pbmNsdWRlL2dlbmVyaWMtZ2xp YmMvc2lnbmFsLmgK4pSCICsgIFsxNTgwYzk1XSAgcHRocmVhZF9jcmVhdGUgZmFpbGVkOiAlcwri lIIgKyAgWzE1ODBjYWZdICBnY2NfdXRpbC5jCuKUgiArICBbMTU4MGNiYV0gIHJ1bnRpbWUvY2dv OiBvdXQgb2YgbWVtb3J5IGluIHRocmVhZF9zdGFydFxuCuKUnOKUgOKUgCBvYmpkdW1wIC0tbGlu ZS1udW1iZXJzIC0tZGlzYXNzZW1ibGUgLS1kZW1hbmdsZSAtLXJlbG9jIC0tbm8tc2hvdy1yYXct aW5zbiAtLXNlY3Rpb249LnRleHQge30K4pSCIEBAIC00MTk0Mjk2LDggKzQxOTQyOTYsOCBAQAri lIIgIAl0ZXN0ICAgJXIxMiwlcjEyCuKUgiAgCWpuZSAgICA1ZmIyMWFhIDxrOHMuaW8vYXBpL3N0 b3JhZ2UvdjFiZXRhMS4oKlN0b3JhZ2VDbGFzcykuU2V0R2VuZXJhdGVOYW1lQEBCYXNlKzB4NmE+ CuKUgiAgCW1vdiAgICAlcmJ4LDB4MTgoJXJzcCkK4pSCICAJbW92ICAgICVyY3gsMHgzOCglcmF4 KQrilIIgIAljbXBsICAgJDB4MCwweDI3YWQ3ZTUoJXJpcCkgICAgICAgIArilIIgIAlqbmUgICAg NWZiMjE3MyA8azhzLmlvL2FwaS9zdG9yYWdlL3YxYmV0YTEuKCpTdG9yYWdlQ2xhc3MpLlNldEdl bmVyYXRlTmFtZUBAQmFzZSsweDMzPgrilIIgIAltb3YgICAgJXJieCwweDMwKCVyYXgpCuKUgiAt WyBUb28gbXVjaCBpbnB1dCBmb3IgZGlmZiAoU0hBMjU2OiA0NTJmMWE4YzE0NWZkYmRlNmJmZmYy ZGRjYjUzMWJhMzAyMDUwZGYyZmVhOTdhNDdkNWY4NDMzNjRkMTk5NDM5KSBdCuKUgiArWyBUb28g bXVjaCBpbnB1dCBmb3IgZGlmZiAoU0hBMjU2OiAxMzg2YjJlNDkyNTYxM2Y5ZWEwMDNlOTY1MzVi MTFhMDEzZDJkMWJhZTcyYTU1NWUxZmRjY2ZhMmYxNWE1ODhhKSBdCuKUnOKUgOKUgCByZWFkZWxm IC0td2lkZSAtLWRlY29tcHJlc3MgLS1oZXgtZHVtcD0uZGF0YSB7fQrilIIgQEAgLTE2MywxNSAr MTYzLDE1IEBACuKUgiAgICAweDA4NTFkYzYwIDIwMzY3MjA4IDAwMDAwMDAwIDY4NDZhNTAyIDAw MDAwMDAwICA2ci4uLi4uaEYuLi4uLi4K4pSCICAgIDB4MDg1MWRjNzAgNzAzM2E1MDIgMDAwMDAw MDAgZTBmNjUyMDggMDAwMDAwMDAgcDMuLi4uLi4uLlIuLi4uLgrilIIgICAgMHgwODUxZGM4MCBh MGY2NTIwOCAwMDAwMDAwMCA5MDkxNTEwOCAwMDAwMDAwMCAuLlIuLi4uLi4uUS4uLi4uCuKUgiAg ICAweDA4NTFkYzkwIGMwYTA1MTA4IDAwMDAwMDAwIDAwOWM1MTA4IDAwMDAwMDAwIC4uUS4uLi4u Li5RLi4uLi4K4pSCICAgIDB4MDg1MWRjYTAgNjg0NmE1MDIgMDAwMDAwMDAgZjBhMjUxMDggMDAw MDAwMDAgaEYuLi4uLi4uLlEuLi4uLgrilIIgICAgMHgwODUxZGNiMCAzMGE1NTEwOCAwMDAwMDAw MCAxMGE3NTEwOCAwMDAwMDAwMCAwLlEuLi4uLi4uUS4uLi4uCuKUgiAgICAweDA4NTFkY2MwIDYw MWM1MzA4IDAwMDAwMDAwIDAwNGE1MTA4IDAwMDAwMDAwIGAuUy4uLi4uLkpRLi4uLi4K4pSCIC0g IDB4MDg1MWRjZDAgZjA0YTUxMDggMDAwMDAwMDAgOTA3ZTFlMDMgMDAwMDAwMDAgLkpRLi4uLi4u fi4uLi4uLgrilIIgKyAgMHgwODUxZGNkMCBmMDRhNTEwOCAwMDAwMDAwMCA4ODdlMWUwMyAwMDAw MDAwMCAuSlEuLi4uLi5+Li4uLi4uCuKUgiAgICAweDA4NTFkY2UwIDIwNTA1NTA4IDAwMDAwMDAw IGEwMTg1MzA4IDAwMDAwMDAwICBQVS4uLi4uLi5TLi4uLi4K4pSCICAgIDB4MDg1MWRjZjAgZTAx ODUzMDggMDAwMDAwMDAgZTAxNzUzMDggMDAwMDAwMDAgLi5TLi4uLi4uLlMuLi4uLgrilIIgICAg MHgwODUxZGQwMCA2MDE4NTMwOCAwMDAwMDAwMCAyMDE5NTMwOCAwMDAwMDAwMCBgLlMuLi4uLiAu Uy4uLi4uCuKUgiAgICAweDA4NTFkZDEwIDIwMTg1MzA4IDAwMDAwMDAwIDg4NTBhNTAyIDAwMDAw MDAwICAuUy4uLi4uLlAuLi4uLi4K4pSCICAgIDB4MDg1MWRkMjAgNjg1MWE1MDIgMDAwMDAwMDAg OTg1MGE1MDIgMDAwMDAwMDAgaFEuLi4uLi4uUC4uLi4uLgrilIIgICAgMHgwODUxZGQzMCA3MDUx YTUwMiAwMDAwMDAwMCBhMDUwYTUwMiAwMDAwMDAwMCBwUS4uLi4uLi5QLi4uLi4uCuKUgiAgICAw eDA4NTFkZDQwIGMwNTFhNTAyIDAwMDAwMDAwIDQwZTQ3NTA4IDAwMDAwMDAwIC5RLi4uLi4uQC51 Li4uLi4K --_002_AM6PR02MB44704BD42717C2D472D0CEB6B5B79AM6PR02MB4470eurp_-- From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by mail-b.sr.ht (Postfix) with ESMTPS id D268211EE06 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Mar 2023 04:55:55 +0000 (UTC) Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-176d1a112bfso8752780fac.5 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Tue, 07 Mar 2023 20:55:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; t=1678251355; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9OWNyKG0S693D/TEf4qFWuPngIzLU6DKh5d9/x/dRMY=; b=hiOVHjkZW3TBRG68rVQbPC7jNk/imh0iNTxYZ0TqolGEejfwsv/WXyrOkbXCN578ND C3rpFVlF6c2pc9lextzNtJxoBeJ1c+uvSLdhvP6gEnrkk3VTrh8iYag7q0HySFDuDM3h bySWt0+JvvKKhKbwlIyDOAD6id+d0PRaf+HUWGVv5sl/97VScCckKs1k7RKeq5mNF82L OW5QUEy3+MqHGzkOcHZF5V7Q7i+7udyprEI+p4HopskKWTIGtzgV13eSBvh478WwX+M3 7CK8Ur1G+jiYlo2BqL9Fp/w0HNngic+hA+dRKjex9B8pC9nP8mfDPk+v/P15jm877HlD NMmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678251355; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9OWNyKG0S693D/TEf4qFWuPngIzLU6DKh5d9/x/dRMY=; b=zCUX0f3S7iBRK6wuvhei7PwbMCKQL1Lu2ui/zMC+bfiWYPvZi1jUtEHsVrKD30E0pG bTDj96Eumr5heA1ROn6+oZ/wfyWmUtbjeRSbgDg4vRmR6ZTy0pMkR3FjVTx8G4YszFSW hiUp1VzkLviBo5Im7wDu/j2P96NYu/Capb8DTtKQ9j54QK5cps2OPLPlUoQLI4zESI5Y SoWcBnhEoo2WxjabR/R+2DbNLcUDU+Yvl8En2kEZr13OiUeEHgR8ZieJart1m9Q2PIAe slqVtXu5mbx32rEGoKJjqNhsnvCyg0a+nCST+Soth/FYJ5TLQw28p08uByHlU7CNdXSp T0LA== X-Gm-Message-State: AO0yUKXrrP1V1aj9s3EDZsZRkhibFUuoLdVM6otyfqNwg4s5+g8V+KgQ Nsk7nYZ3ewuNk/sVeDZ1XpYdk/1oarEyQFGs3HL0m1U/qIQ= X-Google-Smtp-Source: AK7set/7QmoDwktRotABksnlu72yg9mHpeO9E3lP97jqCIRcYlWF3kElgG/pX7uvSH8Vmw1CVIoLwCl0NaOvKGymtrA= X-Received: by 2002:a05:6870:470b:b0:16e:8993:9d7c with SMTP id b11-20020a056870470b00b0016e89939d7cmr10158666oaq.1.1678251354846; Tue, 07 Mar 2023 20:55:54 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 8 Mar 2023 06:55:43 +0200 Message-ID: Subject: Re: bazel-zig-cc embeds bazel cache path in go binary To: Malte Poll Cc: "~motiejus/bazel-zig-cc@lists.sr.ht" <~motiejus/bazel-zig-cc@lists.sr.ht> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 7, 2023 at 6:15=E2=80=AFPM Malte Poll wro= te: > > > Hello, > > I was checking if bazel-zig-cc produces reproducible go binaries if used = as a compiler for cgo. > As a test, I compiled the same binary on the same commit on two different= systems (Ubuntu, Fedora) and in two different paths at different times. > > The binaries are not reproducible. At least some differences seem to be c= oming from bazel-zig-cc: > > The paths to pthread.h and signal.h on my build system are embedded in th= e resulting binary. See below for an instance of this behavior. > Do you think this can be prevented to make the resulting binary more herm= etic / reproducible? Hi Malte, Thanks for the report. I am 99% confident the problem is with Go, because Go compiles CGo files 2 ways: 1. in the Bazel sandbox. 2. in /tmp/work-<...>, outside the sandbox. > - [15809be] /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a9= b56bc/sandbox/processwrapper-sandbox/44/execroot/__main__/external/zig_sdk/= tools/x86_64-linux-gnu.2.34/../../lib/libc/include/generic-glibc/pthread.h When we invoke "zig c++", the ZIG_LIB_DIR needs to be passed to Zig. It needs to be a relative directory, but it can't always do that. This is how it's determined: https://git.sr.ht/~motiejus/bazel-zig-cc/tree/v1.0.1/item/toolchain/launche= r.zig#L190-215 Here are the relevant lines with comments. First, determine the "root" of the zig sdk: const root =3D blk: { var dir =3D cwd.openDir( "external" ++ sep ++ "zig_sdk" ++ sep ++ "lib", .{ .access_sub_paths =3D false, .no_follow =3D true }, ); if (dir) |*dir_exists| { dir_exists.close(); break :blk "external" ++ sep ++ "zig_sdk"; } else |_| {} If "external/zig_sdk/lib" exists, then "root" is exactly that. If it does not exist: // directory does not exist or there was an error opening it const here =3D fs.path.dirname(arg0) orelse "."; break :blk try fs.path.join(arena, &[_][]const u8{ here, "..", ".."= }); }; ... then the zig sdk root will be the full path to the executed file (e.g. /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a9b56bc/sandb= ox/processwrapper-sandbox/44/execroot/__main__/external/zig_sdk/tools/x86_6= 4-linux-gnu.2.34/c++), it's dirname, plus "../../". Then append the "lib" to that path: const zig_lib_dir =3D try fs.path.join(arena, &[_][]const u8{ root, "li= b" }); <...> And then use that path for ZIG_LIB_DIR: try env.put("ZIG_LIB_DIR", zig_lib_dir); So following the logic ZIG_LIB_DIR in your example will be /root/.cache/bazel/_bazel_root/378578e4f433132b2cb209458a9b56bc/sandbox/pro= cesswrapper-sandbox/44/execroot/__main__/external/zig_sdk/tools/x86_64-linu= x-gnu.2.34/../../ ; and this is how Zig will embed that path. Other than changing how Go builds it's CGO binaries, I don't see a good way to work around this. At the point Go is invoking the external linker we are already in $WORK, so we don't have control over that working directory. The horrible part is, of course, changing the working directory at the bottom leaves of the compilation chain. The good part about this design is that Bazel does not see non-hermeticity (at this point Bazel lost control). So as far as Bazel is concerned, it's the same dependency hash. The bad part, is, of course, non-reproducible binaries. > <...> > Attached is the full output of diffoscope. Thanks, TIL. Are the paths still there if you strip the binaries (are they stripped? hard to tell, because your diffoscope output does not include all sections)? IIRC filenames are only present in binaries compiled with debug info. But I am not sure if `strip` removes strings from rodata. Please let us know. Motiejus From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=edgelesscompute.onmicrosoft.com header.i=@edgelesscompute.onmicrosoft.com Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2105.outbound.protection.outlook.com [40.107.247.105]) by mail-b.sr.ht (Postfix) with ESMTPS id 51BE711EFFA for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Mar 2023 11:58:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dn1vNkrxngqLKmX3h8dbuJ3mhZQ4k85ctNac4otz3xlB5C0giH4SsPqIBxUppD0Jy4SGTE4HyAkVYHGJXg/21A9wQvwnjegWZsxKOcdjUNYnb7RDgqQk1TVqCEc3BNGCC39gdfctq9XF2tuk8qnxSw7VGuj4XkTD2Jgp4h/GOBOrQv6qSl9z9DiPXw+I3/9GqmOnt8YnAxJ/111/4D9AL2dkJZN2WqTKdYy18qn5Gemc4IV9m93mjWk9hwPTHVwfdZzhIipsZmkbRwZGreg9lgDHlCte/IUx58MlsY3lLX2eXSmxqcT4B2hIMpFzAIwTNYGe10PIOhd7gPKpqT4GSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FTB0McV89iIW8bxpSgjRpV/XTRfoa4YP68Z9tGj8XTY=; b=Bd+F6WxAxpreCUqlxCyWb/r5vVg6sLCJYR8+8oOrQUqNb05o4bL+kA70klExyBlBYYCt8m/A+x8SUTE17w19zGeMI5+FsTaSvoOhhR1SyYW7YzyA7OzQjwf32seFs7BNG8eww9/Gn+Y7jUqAv45BsXAPKC8GHBZkn6ezqHv/XARiGKGSC8mAEZlWxtBem1vE+aPLhC0pMSnlowcfTsv1GeNTLLvZhu82gqhLNd6+5n35UNeSztlwsTGgw/dl00aK6mWLJRY4gNu+jT/tot8HgQ4MuK6NI7uWT2jPC71VN9ypEFCrmWoNUpYMM/DeQ0dWwUp7ert2Z4B9r1kC2RKUaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=edgeless.systems; dmarc=pass action=none header.from=edgeless.systems; dkim=pass header.d=edgeless.systems; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=edgelesscompute.onmicrosoft.com; s=selector1-edgelesscompute-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FTB0McV89iIW8bxpSgjRpV/XTRfoa4YP68Z9tGj8XTY=; b=IK1Tuf2RXVBt3DhdmNTeQAQL8fHVmwyA97WKu3RQnFBqSlVCtGgADiVLPKnVDavC6SKJCw4Bh2/LK1xLL72nQb8MPpecjwCpZuM+wCAqZSyujrC+A6jWQ6mE/BicmD0q8DyFNj+fJgtSVMQajuOokjhjPnmHV3HUBHbBscvAo/w= Received: from AM6PR02MB4470.eurprd02.prod.outlook.com (2603:10a6:20b:60::26) by AM9PR02MB7363.eurprd02.prod.outlook.com (2603:10a6:20b:3e5::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.16; Wed, 8 Mar 2023 11:58:12 +0000 Received: from AM6PR02MB4470.eurprd02.prod.outlook.com ([fe80::77cb:f64d:66e1:45fe]) by AM6PR02MB4470.eurprd02.prod.outlook.com ([fe80::77cb:f64d:66e1:45fe%4]) with mapi id 15.20.6178.016; Wed, 8 Mar 2023 11:58:12 +0000 From: Malte Poll To: "~motiejus/bazel-zig-cc@lists.sr.ht" <~motiejus/bazel-zig-cc@lists.sr.ht> CC: =?Windows-1252?Q?Motiejus_Jak=9Atys?= Subject: Re: bazel-zig-cc embeds bazel cache path in go binary Thread-Topic: bazel-zig-cc embeds bazel cache path in go binary Thread-Index: AQHZUbVBY9IsLRvgFEeHbjMThTnaAg== Date: Wed, 8 Mar 2023 11:58:12 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM6PR02MB4470:EE_|AM9PR02MB7363:EE_ x-ms-office365-filtering-correlation-id: 42782796-0a89-41a9-f6c2-08db1fcc645b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wn8TeJ9onkVDJ+qmEhpYMmOLXbHlW58go1SifJ+RmTXlnVrB2vej1Js2bGvXfvujKo7LgnbwRh+P4Zuv78XsVkmXwPBYdy0JJYMkaXYO4Xg8XV5FY92J5qdXc75dLaBSnYsrIkSIr3lQqZp7My7etM9wYkbj0sKFPussr+NxqGTXR66QSsmyCWv1uBSd2MlOYkYSU7JckywSR0SFc9IPr9mprHxMsSaAK2QVAERWj7aa3t9Kdjf+rJNKGtrDpQxdSvtEyQxlAhD5ZwONjVuHV3165okOOnxSY8T2fwu2sTSYoMrmeH7aqSO3gZYRginz3S/2TM3HSCA2oI4isTjncTmu1RPquAMRvfUpY3+J6lCF+InpmkiCBLLsGg/QZKmpHx+8WfJEEBnStPo4hj/BxyGETnBv1n/EN+IwfPXZIysyfLwYJWMLju8TudROa0H8qK88iUnexwojReQIRnSUPIL/Tb5IG6qE5tpBKAyUa1MGyYPMjR5gjwfnYWQd3rDr6VIU4r87T1z0TpxEkDCn6O/QJwhoNyo3FR7DgJN0fMQnB7po80E5JW0DGm31OIL0siRJfm5OHYeocmTAE2Nz6xaW0sXV/XyxRlzmk6ciL16r8tJTfbKtsiWpkntV0inMuYa2Mu0whxmtGAcAFGQqR4rORb6Ot5Do65C88wggNqKxVhwc//sz3IKvukrG9QO1faM15mGt5NSiiXV3Ooq5+g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR02MB4470.eurprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(346002)(136003)(376002)(396003)(39840400004)(366004)(451199018)(8936002)(52536014)(2906002)(5660300002)(41300700001)(66946007)(91956017)(66446008)(64756008)(66476007)(4744005)(66556008)(4326008)(76116006)(8676002)(316002)(478600001)(71200400001)(7696005)(26005)(33656002)(6506007)(86362001)(122000001)(38070700005)(55016003)(38100700002)(186003)(9686003)(46492015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?tkJnzjjJ1ljVqHPhJ5hWd4Nown0M/JEHAcVfcEMe//K0p4nkhvnVk0Ez?= =?Windows-1252?Q?lycKWnjlHmam/U0XS8QJb0BZKlItrjCE5GLX+q8Y+7rViBl6MNxYB4L8?= =?Windows-1252?Q?xE+YMbN/L2zHFFHr8P6DKmo4fY1lp7yJLm47L38iPVbtrIDx8TxOJDTB?= =?Windows-1252?Q?t4hleSa8DtASEHDzFiwWeVcQDYKCg3x2bipg4doY+PxxzWZxut24HXaq?= =?Windows-1252?Q?dL7s8KG9PT6Ypvu+YlRpsUkVdRpcporpqjAKuyY/oqPMpvwvu7JSHLcy?= =?Windows-1252?Q?v+o/hLP96m7g7lJmsCg52qPiP4sMGDx6d76dMmQmnIyl+ePuyO9muI+s?= =?Windows-1252?Q?gm/otyGemrHYNPTl+LJzOyFvc1bngotgX0FC5QEssbcl9GfO8/2Gr3Fs?= =?Windows-1252?Q?EFMCXZafQYlbaHs8sDprUlyuXQiR/wznKXci3/j0x100rJI0cC+Qf2ju?= =?Windows-1252?Q?ZICwci91UhGgDu00eEvH0HZksoZm9mZ0xdd+v58E/gQ/d9+KLvO9rwvF?= =?Windows-1252?Q?vPJFeGv5xJkq+dDHtmLFacd0fU062qqn22Dws7RPtsvZ1/c4QjUcUblP?= =?Windows-1252?Q?zUU84/VTo4jWfbfRY1Lmoo7ufCRcRO9smitJW8Zgx5Id9Vg4odpKL5vC?= =?Windows-1252?Q?rxAsl8z67XAnJqFvWL+Hw6M3rZETJHPgJFTGvCNF4EkYabBsvZH2937s?= =?Windows-1252?Q?fUWWfdZPTQpLZJviJjovQL/DCxd+cb5dTvvY6zXCZmyIwzM+JcjbMj6+?= =?Windows-1252?Q?L2Bqb2+e3e/sHRVhmRxSf4DZ9k8dBrGBC52OLKRt4XWhYgUP9A2ZqF9n?= =?Windows-1252?Q?nhcWTRExH4gQgWBNZPp94k+UqMGZY3FOQcRraxlkQB6J8IHcPpYcjfW+?= =?Windows-1252?Q?QiNz8ZV3K9U5AWmJaBvQerNuCixFzYHie6A1I9tInrOsVZ0LYGJRvAt7?= =?Windows-1252?Q?dV7AgafvbECVIkUNDx2jwuRp7fVQGN/uKT9m8ePyEjjxQOI51fY/ObH9?= =?Windows-1252?Q?GHbo2ovnscMwY6/l2U083gPSoJeuJ3MTcYFqORWKUxZG2CJJ0HVOabkd?= =?Windows-1252?Q?CdsUkszP65uN+qEwgwqfaIRC8/jgyFOonRmZelc1HdDIxoleOtdE7AAD?= =?Windows-1252?Q?kZZ0Ctv5Yy3AZ4Y60vxl0KFHo3RugXYrbwRXJzLJ48szgVwI6fZAq45L?= =?Windows-1252?Q?tXSbVMB9VQ/3GnH9ITqr3l/wrGwfV+fpPNYyuW+QZk/hMN7bglumPW0p?= =?Windows-1252?Q?blDYwTIq8J4D4z28Mf6qf7EccdxqR6iCs/QGlz0KcUDB+wbCYM6PB89o?= =?Windows-1252?Q?J3nfRIbQwE8tVVyoGxPaarAURilqOIFQ+GC9V9+U2Rti4oprtdnmOzhy?= =?Windows-1252?Q?BgnEdIBLtBiPgK65ZwonNGZI8PXCCDBo4JHA6rKbDni9mbuHDRXc1csa?= =?Windows-1252?Q?QRzPUh4YIhyvp+1GgSJVMeR+IGX9xQJHajagnNJRPeWvaUz/KKbDA6s7?= =?Windows-1252?Q?vjuqpKKNw054rGFR0zyaLDcsHQIyxTi0u//7as99SepWyD1RtfwSDEwY?= =?Windows-1252?Q?4eu8VzYsyd6AmCo7cNXhdHRiaaHAvnxhUqAqffzCp514fca/SwDzEg5D?= =?Windows-1252?Q?9/0IqQ2X/7h5KGy5fYXL+XmvAmKMxk89QyPNIwQOqYoFC4I8adWb6TSm?= =?Windows-1252?Q?0KswpxH9yNaAG5pjU6lLoC3taVC6NN6K?= Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: edgeless.systems X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR02MB4470.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42782796-0a89-41a9-f6c2-08db1fcc645b X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2023 11:58:12.0438 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: adb650a8-5da3-4b15-b4b0-3daf65ff7626 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WWcc5krjd8xdDSjmWaccPMK6mgycI8hoJtxPSxhDr8akuwiHmfFlfMbVPmAeQA10RMhR5pdnz8sUUSe3Dc0l2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR02MB7363 So, I chased this issue a bit more.=0A= Simply setting the bazel flag "--strip=3Dalways" does not seem to be suffic= ient. However, when I set "--compilation_mode=3Dopt", the strings disappear= .=0A= I'll report findings if I get to the bottom of this, although I agree that = this may not be something that can be fixed in the toolchain. For now I can= live with the compilation mode.=0A= =0A= Thanks=0A= Malte= From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) by mail-b.sr.ht (Postfix) with ESMTPS id 3713C11EE9A for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Mar 2023 14:48:09 +0000 (UTC) Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-176d93cd0daso9539079fac.4 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 08 Mar 2023 06:48:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; t=1678286888; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=DhjDsVkeKQk4ZG7T5UslDsT6s5FG5S2M6pwLM363sAc=; b=ZQ5d9hRJGtlDMqK5OD0g+3B13ZNDn5tE8LKcOeipsQ3/k2wxoKUnrYVlCSy7NwdMtI cyoaiNLHDlV3uzgiE/nbJcRH1ugKAZqYumBk6JaGBKOIqIo/sNJcwqdMVXdUEunC5uCj FGr/gQzlailxXF4jJcmPtH5Jl4glMmgsLhhUIbaGX863f73MNfbx1YObNBRk47/B8iS2 da+jAYqOQC7HyUBr/V+TZhZ0oywD395cF+y6WbYPdcC45OovbpJpcUKOv1qFIUPuFGB/ 8j4o2qIg9uSDCZYRM/nX4izMi8ypBGhGgmV/2Gh4ALpOrln9Nr9sv6EGwzwHgugZQltO /CwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678286888; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DhjDsVkeKQk4ZG7T5UslDsT6s5FG5S2M6pwLM363sAc=; b=M4uNnGTK+t8gP/VMhcYUewNc5Uo5pdBdabPf6WEK5Ji/5lMYX6ZB8RPNLqjp/mVwq1 HLk8eMAUJbjFHeknhxZMN/e5CvTBwH1NPFcapmO2NhVdHIFvTUhISanjKtzzuQ8c9qUo b+Xw16+LQUQqAfXufn7fClqRKWjMnN2aHYtagjjqvGpkdHUH9XMDY1PTX+lY222mRYPR 3QuhNeTl5du2sT+bF6emnrdwih/RXz2+Np2o2mRJ2kW7f9R0tcz/kDky4FTBpRlY3YeL 1r90AkAnhZhSEikWz86erSN/58UeWww5R69prNIwjtGsSbkc2+KFvLEsyiMAEz+J1Tpr F2JQ== X-Gm-Message-State: AO0yUKVVjakCP7P6RAxA9qPGAMKZyRkzLcIuX5SbI7vQ15NN0gS0xCWm eXsVWTRiKXyl0/8TDHzJdhmWuPGnJonsEqMDQZgEInuc9zo= X-Google-Smtp-Source: AK7set9ZWeusYtrapGacWyHHf/cYyi7B/faKa6QLg60lBmSNn0teFqDU2PatA8wehgBWDl3OoyHO7XLTtYOYI4tYjp8= X-Received: by 2002:a05:6871:6bb0:b0:16e:3585:dbca with SMTP id zh48-20020a0568716bb000b0016e3585dbcamr4945991oab.6.1678286888455; Wed, 08 Mar 2023 06:48:08 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 8 Mar 2023 16:47:57 +0200 Message-ID: Subject: bazel-zig-cc moved to github.com/uber To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Hi folks, The transfer of bazel-zig-cc from my personal SourceHut account to github is now complete: https://github.com/uber/bazel-zig-cc Main changes: - This will now be Uber's project, not mine. The child has grown and left the house. :) - CLA will be required from now on. However, pre-move copyright owners retain their copyright of course; we did not ask to transfer it (albeit I transferred mine to Uber for personal reasons). - Comms are now in bazel's slack (bazel.slack.com) #zig and github issues/PRs. Short-term a.k.a. migration: - I will put up a release in github in the next couple of days and communicate here; it will be my last message in the mailing list. - This mailing list will be shut down "in a couple of weeks". - Your links (i.e. where you download bazel-zig-cc from) will keep working at least until 2023-06-01. After this date everyone will need to change it to github or your own mirror (the exact details will be announced, like said, in a couple of days). As for why? In case you haven't noticed the comms yet, bazel-zig-cc is now powering Uber's Go Monorepo. So it no longer fits the "personal project" bill and it made sense to be moved. Also, but my days at Uber are numbered[1], so it makes even more sense for Uber to increase the bus factor. I still recommend Uber as a great place to work if you like such things (I spend quite a bit of time with Zig during my working hours, which is great) -- but it just does not fit the bill for my personal circumstances. Congratulations everyone and have fun! Motiejus [1]: https://jakstys.lt/2023/7-years-at-uber/ From MAILER-DAEMON Mon Apr 24 14:05:40 2023 Authentication-Results: mail-b.sr.ht; dkim=pass header.d=jakstys-lt.20210112.gappssmtp.com header.i=@jakstys-lt.20210112.gappssmtp.com Received: from mail-oo1-f53.google.com (mail-oo1-f53.google.com [209.85.161.53]) by mail-b.sr.ht (Postfix) with ESMTPS id A706E11EE9A for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 8 Mar 2023 14:52:26 +0000 (UTC) Received: by mail-oo1-f53.google.com with SMTP id e12-20020a4ae0cc000000b00525034ca5e9so2585475oot.0 for <~motiejus/bazel-zig-cc@lists.sr.ht>; Wed, 08 Mar 2023 06:52:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jakstys-lt.20210112.gappssmtp.com; s=20210112; t=1678287146; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DuLtdDcFYDQ7lbA+7GB0qponUC7abuDunJlp6uuTWXk=; b=Vsl6TWFfXItvtFyka0wSyw8JD5j07DkzfIzcYbCNHfpCe2o5MK8PESo3uDPLVzuRTy 4Pv/2QXtsLXUkeTwvsTp1WWdGFHCHlcIDUDPpwh8lrrJCLVr3sAHBl3NFeva8Vy0FLQZ IHRKYrWgplYmB5aqjVNOiiIhTdzeKZ19UBpABu0v2teCjEJIAMP1uZ80jkhBEVjtV6GD eJAXE1muJEJGR7idVx6gd8T9VloPzb7/Xmj/FxSYSdjfw3WxSiyiR03b11FTT2U/CHme N5r6yd+6A1iUD34aIyz2++F1YT3hHb1aBAY2MVOqwPooIWfRikhNbhDkEG8rEn69++VQ bGZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678287146; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DuLtdDcFYDQ7lbA+7GB0qponUC7abuDunJlp6uuTWXk=; b=yzP2BoxEULddD9ze6ydo1XAL0xfrjJx8G9CmuQD+i7ckUPW3kD8Ok9VZEfT6BrwW0w HJCYlflp7hyOzTTJBkSh5/TZ2p/PtzskW2EGpQTW8p2VnqFl0CqyyT+VAyfEUaUNso// f5uubOK9Zb/xHuJQyDX0P3w8cUFBAxTtFsnJLlqP6BNi5G3P0e1P2OQxq0lw8R6b3a4x 85ix4eZ7OfXX/Bcn/CDn9WAKNbpckvtqVQtQROh4km8ArMZYJF4vVOOUat1OINK/II0x dmc1E/qmKDMUsgQ1NxkEPqoyiDtGqBdHsHtKiPuyD9FulnIyyBzqTOMKNRIayk5ly7ZV JoXA== X-Gm-Message-State: AO0yUKWTXv/Cew+MjQ91Is4SJYHlwc1VtYMZijYQ6PVutFoeYYo2+HRm rh64qRMMSNxt+9Kuc5VADgPAsUPZxVPoKwxV3nPFxqGIW+k= X-Google-Smtp-Source: AK7set+twmHQgaJBgRG5Xxi2G1POhWIja5dzZH+MLtIqW21ZKCuRzkieqHynklYdrJOnhR4/gYUjZXELAMUR+j1tYOw= X-Received: by 2002:a05:6820:1048:b0:525:39e1:9492 with SMTP id x8-20020a056820104800b0052539e19492mr6384525oot.0.1678287145988; Wed, 08 Mar 2023 06:52:25 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Motiejus_Jak=C5=A1tys?= Date: Wed, 8 Mar 2023 16:52:15 +0200 Message-ID: Subject: Re: bazel-zig-cc moved to github.com/uber To: ~motiejus/bazel-zig-cc@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 8, 2023 at 4:47=E2=80=AFPM Motiejus Jak=C5=A1tys wrote: > but it just does not fit the bill for my personal circumstances. I should have made this clearer! I will be co-maintaining bazel-zig-cc at least until 2023-06-30. Now that we have finished the move, we have additional 2 awesome maintainers now: @linzhp[1] and @sywhang[2]. They are from Uber's Go Monorepo/Platform teams, and have dealt with much more Go, Bazel and Starlark than myself. [1]: https://github.com/linzhp [2]: https://github.com/sywhang