From 25b208c2de955375d7d316516e1929be96f1d0f4 Mon Sep 17 00:00:00 2001 From: martin4861 Date: Wed, 13 Aug 2025 12:33:10 +0200 Subject: [PATCH 1/3] Migrate x86_64-aarch64-linux toolchain --- cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel | 7 ++++++- cc/toolchains/llvm/x86_64-aarch64-linux/wrappers/wrapper | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel b/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel index 10a8997..a34f594 100644 --- a/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel +++ b/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel @@ -101,7 +101,12 @@ cc_toolchain_config( name = "local-x86_64-aarch64-linux", abi_libc_version = "glibc_unknown", abi_version = "clang", - builtin_sysroot = "external/aarch64-sysroot", + builtin_sysroot = select({ + "@rules_swiftnav//cc:_use_libcpp": None, + # Remove once bzlmod is enabled by default + "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", + "//conditions:default": "external/aarch64-sysroot", + }), compiler = "clang", cxx_builtin_include_directories = [ "%sysroot%/usr/include", diff --git a/cc/toolchains/llvm/x86_64-aarch64-linux/wrappers/wrapper b/cc/toolchains/llvm/x86_64-aarch64-linux/wrappers/wrapper index bb19fb3..ce9baaa 100755 --- a/cc/toolchains/llvm/x86_64-aarch64-linux/wrappers/wrapper +++ b/cc/toolchains/llvm/x86_64-aarch64-linux/wrappers/wrapper @@ -35,6 +35,7 @@ fi tool_name=$(basename "${BASH_SOURCE[0]}") toolchain_bindir=external/x86_64-linux-llvm/bin +toolchain_bindir_as_bzlmod="external/rules_swiftnav++swift_cc_toolchain_extension+x86_64-linux-llvm/bin" if [[ -f "${toolchain_bindir}"/"${tool_name}" ]]; then # We're running under _execroot_, call the real tool. From 6130135bc20fd4de3178b7f191551bf50c73a882 Mon Sep 17 00:00:00 2001 From: martin4861 Date: Wed, 13 Aug 2025 16:10:10 +0200 Subject: [PATCH 2/3] Implement proper handling for use_libcpp with bzlmod enabled --- cc/BUILD.bazel | 9 +++++++++ cc/toolchains/llvm/aarch64-linux/BUILD.bazel | 4 ++-- cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel | 4 ++-- cc/toolchains/llvm/x86_64-linux/BUILD.bazel | 4 ++-- cc/toolchains/llvm20/aarch64-linux/BUILD.bazel | 4 ++-- cc/toolchains/llvm20/x86_64-aarch64-linux/BUILD.bazel | 5 +++-- cc/toolchains/llvm20/x86_64-linux/BUILD.bazel | 4 ++-- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/cc/BUILD.bazel b/cc/BUILD.bazel index d914840..116c691 100644 --- a/cc/BUILD.bazel +++ b/cc/BUILD.bazel @@ -206,6 +206,15 @@ config_setting( visibility = ["//visibility:public"], ) +config_setting( + name = "_enable_bzlmod_not_libcpp", + flag_values = { + ":enable_bzlmod": "true", + ":use_libcpp": "false", + }, + visibility = ["//visibility:public"], +) + py_binary( name = "fix_include_guards", srcs = [ diff --git a/cc/toolchains/llvm/aarch64-linux/BUILD.bazel b/cc/toolchains/llvm/aarch64-linux/BUILD.bazel index 1128d9f..5c63a88 100644 --- a/cc/toolchains/llvm/aarch64-linux/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-linux/BUILD.bazel @@ -117,8 +117,8 @@ cc_toolchain_config( abi_version = "clang", builtin_sysroot = select({ "@rules_swiftnav//cc:_use_libcpp": None, - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", "//conditions:default": "external/aarch64-sysroot", }), compiler = "clang", diff --git a/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel b/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel index a34f594..2be25a5 100644 --- a/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel +++ b/cc/toolchains/llvm/x86_64-aarch64-linux/BUILD.bazel @@ -103,8 +103,8 @@ cc_toolchain_config( abi_version = "clang", builtin_sysroot = select({ "@rules_swiftnav//cc:_use_libcpp": None, - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", "//conditions:default": "external/aarch64-sysroot", }), compiler = "clang", diff --git a/cc/toolchains/llvm/x86_64-linux/BUILD.bazel b/cc/toolchains/llvm/x86_64-linux/BUILD.bazel index 971dff1..bfc386c 100644 --- a/cc/toolchains/llvm/x86_64-linux/BUILD.bazel +++ b/cc/toolchains/llvm/x86_64-linux/BUILD.bazel @@ -117,8 +117,8 @@ cc_toolchain_config( abi_version = "clang", builtin_sysroot = select({ "@rules_swiftnav//cc:_use_libcpp": None, - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+x86_64-sysroot", + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+x86_64-sysroot", "//conditions:default": "external/x86_64-sysroot", }), compiler = "clang", diff --git a/cc/toolchains/llvm20/aarch64-linux/BUILD.bazel b/cc/toolchains/llvm20/aarch64-linux/BUILD.bazel index 24cbad4..1f13efd 100644 --- a/cc/toolchains/llvm20/aarch64-linux/BUILD.bazel +++ b/cc/toolchains/llvm20/aarch64-linux/BUILD.bazel @@ -117,8 +117,8 @@ cc_toolchain_config( abi_version = "clang", builtin_sysroot = select({ "@rules_swiftnav//cc:_use_libcpp": None, - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", "//conditions:default": "external/aarch64-sysroot", }), compiler = "clang", diff --git a/cc/toolchains/llvm20/x86_64-aarch64-linux/BUILD.bazel b/cc/toolchains/llvm20/x86_64-aarch64-linux/BUILD.bazel index db7734c..7a7f469 100644 --- a/cc/toolchains/llvm20/x86_64-aarch64-linux/BUILD.bazel +++ b/cc/toolchains/llvm20/x86_64-aarch64-linux/BUILD.bazel @@ -102,8 +102,9 @@ cc_toolchain_config( abi_libc_version = "glibc_unknown", abi_version = "clang", builtin_sysroot = select({ - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", + # _use_libcpp case needs to be implemented properly here! + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+aarch64-sysroot", "//conditions:default": "external/aarch64-sysroot", }), compiler = "clang", diff --git a/cc/toolchains/llvm20/x86_64-linux/BUILD.bazel b/cc/toolchains/llvm20/x86_64-linux/BUILD.bazel index 75f47b5..8c09071 100644 --- a/cc/toolchains/llvm20/x86_64-linux/BUILD.bazel +++ b/cc/toolchains/llvm20/x86_64-linux/BUILD.bazel @@ -117,8 +117,8 @@ cc_toolchain_config( abi_version = "clang", builtin_sysroot = select({ "@rules_swiftnav//cc:_use_libcpp": None, - # Remove once bzlmod is enabled by default - "@rules_swiftnav//cc:_enable_bzlmod": "external/rules_swiftnav++swift_cc_toolchain_extension+x86_64-sysroot", + # When bzlmod is enabled but libcpp is not, use the bzlmod path + "@rules_swiftnav//cc:_enable_bzlmod_not_libcpp": "external/rules_swiftnav++swift_cc_toolchain_extension+x86_64-sysroot", "//conditions:default": "external/x86_64-sysroot", }), compiler = "clang", From 9cc0f5e5b80dbb2db9b783aa92712950582410de Mon Sep 17 00:00:00 2001 From: martin4861 Date: Fri, 15 Aug 2025 08:31:38 +0200 Subject: [PATCH 3/3] Bump MODULE version --- MODULE.bazel | 2 +- MODULE.bazel.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index cd14a86..6d62447 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -10,7 +10,7 @@ module( name = "rules_swiftnav", - version = "0.3.0", + version = "0.4.0", compatibility_level = 1, ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 849d99f..6cc72c0 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -76,7 +76,7 @@ "//cc:extensions.bzl%swift_cc_toolchain_extension": { "general": { "bzlTransitiveDigest": "znaZSUcCcLiSKWaNXYgIV48LbAb5o709DZwDQPkDEXs=", - "usagesDigest": "eJT8fw0gfMPpMr0QXJk+/2KyaDk7tWABkSg38EnwwmY=", + "usagesDigest": "BqeY+vKftdzwujAL4kqw9tfp/bR/gWuJaOeQtpeBjZc=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -290,7 +290,7 @@ "//cc/toolchains/yocto_generic:yocto_generic_extension.bzl%yocto_generic_extension": { "general": { "bzlTransitiveDigest": "Q4v/HN5Wh/W0JsPpeExQzSqIslfepuWsd75kvW+25FI=", - "usagesDigest": "rq/79ksOx0UzTXiDiNZPMxP/ynuGC96ZKXAp671gmfI=", + "usagesDigest": "7kQDxQZ5IqOQabmfswCYPykw+dYufc7fj3KaTEjzrbo=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {},