From d76b02f321956d1adc6f9f11536532fd32fb2d73 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Wed, 5 Apr 2023 16:51:40 -0600 Subject: [PATCH 01/27] add support for aarch-64-darwin --- WORKSPACE => WORKSPACE.bazel | 0 cc/repositories.bzl | 24 ++- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 150 ++++++++++++++++++ .../llvm/aarch64-darwin/wrappers/clang | 1 + .../llvm/aarch64-darwin/wrappers/clang-cpp | 1 + .../llvm/aarch64-darwin/wrappers/llvm-cov | 1 + .../llvm/aarch64-darwin/wrappers/llvm-nm | 1 + .../llvm/aarch64-darwin/wrappers/llvm-objcopy | 1 + .../llvm/aarch64-darwin/wrappers/llvm-objdump | 1 + .../aarch64-darwin/wrappers/llvm-profdata | 1 + .../llvm/aarch64-darwin/wrappers/llvm-strip | 1 + .../llvm/aarch64-darwin/wrappers/wrapper | 58 +++++++ 12 files changed, 234 insertions(+), 6 deletions(-) rename WORKSPACE => WORKSPACE.bazel (100%) create mode 100644 cc/toolchains/llvm/aarch64-darwin/BUILD.bazel create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/clang create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/clang-cpp create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-cov create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-nm create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objcopy create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objdump create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-profdata create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-strip create mode 100755 cc/toolchains/llvm/aarch64-darwin/wrappers/wrapper diff --git a/WORKSPACE b/WORKSPACE.bazel similarity index 100% rename from WORKSPACE rename to WORKSPACE.bazel diff --git a/cc/repositories.bzl b/cc/repositories.bzl index a8c1d1c4..bf6a14b5 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -11,18 +11,19 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -X86_64_LINUX_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz" +AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin.tar.xz" X86_64_DARWIN_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz" +X86_64_LINUX_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.gz" + def swift_cc_toolchain(): maybe( http_archive, - name = "x86_64-linux-llvm", + name = "aarch64-darwin-llvm", build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), - url = X86_64_LINUX_LLVM, - strip_prefix = "clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04", - sha256 = "61582215dafafb7b576ea30cc136be92c877ba1f1c31ddbbd372d6d65622fef5", + url = AARCH64_DARWIN_LLVM, + strip_prefix = "clang+llvm-14.0.0-aarch64-apple-darwin", ) maybe( @@ -34,6 +35,17 @@ def swift_cc_toolchain(): sha256 = "cf5af0f32d78dcf4413ef6966abbfd5b1445fe80bba57f2ff8a08f77e672b9b3", ) + maybe( + http_archive, + name = "x86_64-linux-llvm", + build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), + url = X86_64_LINUX_LLVM, + strip_prefix = "clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04", + sha256 = "61582215dafafb7b576ea30cc136be92c877ba1f1c31ddbbd372d6d65622fef5", + ) + + def register_swift_cc_toolchains(): - native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/x86_64-linux:cc-toolchain-x86_64-linux") + native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/aarch64-darwin:cc-toolchain-aarch64-darwin") native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/x86_64-darwin:cc-toolchain-x86_64-darwin") + native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/x86_64-linux:cc-toolchain-x86_64-linux") diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel new file mode 100644 index 00000000..b8eb62a4 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -0,0 +1,150 @@ +# Copyright (C) 2022 Swift Navigation Inc. +# Contact: Swift Navigation +# +# This source is subject to the license found in the file 'LICENSE' which must +# be be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + +package(default_visibility = ["//visibility:public"]) + +load("//cc/toolchains/llvm:cc_toolchain_config.bzl", "cc_toolchain_config") + +filegroup( + name = "wrappers", + srcs = glob([ + "wrappers/**", + ]), + visibility = ["//visibility:public"], +) + +filegroup( + name = "ar_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:ar", + ], +) + +filegroup( + name = "as_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:as", + ], +) + +filegroup( + name = "compiler_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:clang", + "@aarch64-darwin-llvm//:include", + ], +) + +filegroup( + name = "dwp_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:dwp", + ], +) + +filegroup( + name = "linker_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:ar", + "@aarch64-darwin-llvm//:clang", + "@aarch64-darwin-llvm//:ld", + "@aarch64-darwin-llvm//:lib", + ], +) + +filegroup( + name = "objcopy_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:objcopy", + ], +) + +filegroup( + name = "strip_files", + srcs = [ + ":wrappers", + "@aarch64-darwin-llvm//:strip", + ], +) + +filegroup( + name = "all_files", + srcs = [ + "linker_files", + ":compiler_files", + "@aarch64-darwin-llvm//:bin", + ], +) + +cc_toolchain_config( + name = "local-aarch64-darwin", + abi_libc_version = "darwin_aarch64", + abi_version = "darwin_aarch64", + builtin_sysroot = "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk", + compiler = "clang", + cxx_builtin_include_directories = [ + "%sysroot%/usr/include", + "%sysroot%/System/Library/Frameworks", + ], + host_system_name = "darwin-aarch64", + is_darwin = True, + target_cpu = "darwin", + target_libc = "macosx", + target_system_name = "aarch64-apple-macosx", + tool_paths = { + "ar": "/usr/bin/libtool", + "cpp": "wrappers/clang-cpp", + "gcc": "wrappers/clang", + "gcov": "wrappers/llvm-profdata", + "llvm-cov": "wrappers/llvm-cov", + "llvm-profdata": "wrappers/llvm-profdata", + "ld": "/usr/bin/ld", + "nm": "wrappers/llvm-nm", + "objcopy": "wrappers/llvm-objcopy", + "objdump": "wrappers/llvm-objdump", + "strip": "wrappers/llvm-strip", + }, + toolchain_identifier = "clang-aarch64-darwin", + toolchain_path_prefix = "external/aarch64-darwin-llvm", +) + +cc_toolchain( + name = "cc-clang-aarch64-darwin", + all_files = ":all_files", + ar_files = ":ar_files", + as_files = ":as_files", + compiler_files = ":compiler_files", + dwp_files = ":dwp_files", + linker_files = ":linker_files", + objcopy_files = ":objcopy_files", + strip_files = ":strip_files", + toolchain_config = ":local-aarch64-darwin", +) + +toolchain( + name = "cc-toolchain-aarch64-darwin", + exec_compatible_with = [ + "@platforms//cpu:aarch64", + "@platforms//os:macos", + ], + target_compatible_with = [ + "@platforms//cpu:aarch64", + "@platforms//os:macos", + ], + target_settings = None, + toolchain = ":cc-clang-aarch64-darwin", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", +) diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/clang b/cc/toolchains/llvm/aarch64-darwin/wrappers/clang new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/clang @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/clang-cpp b/cc/toolchains/llvm/aarch64-darwin/wrappers/clang-cpp new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/clang-cpp @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-cov b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-cov new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-cov @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-nm b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-nm new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-nm @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objcopy b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objcopy new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objcopy @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objdump b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objdump new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objdump @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-profdata b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-profdata new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-profdata @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-strip b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-strip new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-strip @@ -0,0 +1 @@ +wrapper \ No newline at end of file diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/wrapper b/cc/toolchains/llvm/aarch64-darwin/wrappers/wrapper new file mode 100755 index 00000000..f7ad6956 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/wrapper @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Copyright (C) 2022 Swift Navigation Inc. +# Contact: Swift Navigation +# +# This source is subject to the license found in the file 'LICENSE' which must +# be be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + +# Locates the actual tool paths relative to the location this script is +# executed from. +# +# This is necessary because we download the toolchain using +# http_archive, which bazel places in _execroot_/external/_repo_name_. +# +# Unfortunately we cannot provide this location as the argument of tool_path +# when configuring the toolchain, because tool_path only takes a relative path. +# +# This is the fairly common workaround to handle this. +# +# TODO: [BUILD-549] - Remove need for wrapper files +# +# Recent versions of Bazel may have introduced a mechanism that removes +# the need for this workaround: https://github.com/bazelbuild/bazel/issues/7746 + +set -e + +# Use --actionv_env=SWIFTNAV_VERBOSE_TOOLCHAIN to enable +if [[ -n "$SWIFTNAV_VERBOSE_TOOLCHAIN" ]]; then + set -x +fi + +tool_name=$(basename "${BASH_SOURCE[0]}") +toolchain_bindir=external/aarch64-darwin-llvm/bin + +if [[ -f "${toolchain_bindir}"/"${tool_name}" ]]; then + # We're running under _execroot_, call the real tool. + exec "${toolchain_bindir}"/"${tool_name}" "$@" +elif [[ "${BASH_SOURCE[0]}" == "/"* ]]; then + # This branch exists because some users of the toolchain, + # namely rules_foreign_cc, will change CWD and call $CC (this script) + # with its absolute path. + # + # To deal with this we find the tool relative to this script, which is at + # _execroot_/external/rules_swiftnav/cc/toolchain/llvm/x86_64-linux/wrappers/wrapper. + # + # If the wrapper is relocated then this line needs to be adjusted. + execroot_path="${BASH_SOURCE[0]%/*/*/*/*/*/*/*/*}" + tool="${execroot_path}/${toolchain_bindir}/${tool_name}" + exec "${tool}" "${@}" +else + >&2 echo "ERROR: could not find ${tool_name}; PWD=\"$(pwd)\"; PATH=\"${PATH}\"." + exit 5 +fi + From 715f51cc774da289f07e519dbaf671431c669709 Mon Sep 17 00:00:00 2001 From: Swift Svc Jenkins Date: Wed, 5 Apr 2023 16:46:25 -0700 Subject: [PATCH 02/27] fixes --- cc/repositories.bzl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index bf6a14b5..3705bf15 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -11,11 +11,11 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin.tar.xz" +AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin.tar.gz" X86_64_DARWIN_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz" -X86_64_LINUX_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.gz" +X86_64_LINUX_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz" def swift_cc_toolchain(): maybe( @@ -23,7 +23,7 @@ def swift_cc_toolchain(): name = "aarch64-darwin-llvm", build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), url = AARCH64_DARWIN_LLVM, - strip_prefix = "clang+llvm-14.0.0-aarch64-apple-darwin", + strip_prefix = "clang+llvm-14.0.0-arm64-apple-darwin", ) maybe( From 65f51008b82cf02c47cfcbc81d5402bf973c870d Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Wed, 5 Apr 2023 17:51:41 -0600 Subject: [PATCH 03/27] remove references to ld in aarch64 --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 1 - cc/toolchains/llvm/llvm.BUILD.bzl | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index b8eb62a4..df83853a 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -59,7 +59,6 @@ filegroup( ":wrappers", "@aarch64-darwin-llvm//:ar", "@aarch64-darwin-llvm//:clang", - "@aarch64-darwin-llvm//:ld", "@aarch64-darwin-llvm//:lib", ], ) diff --git a/cc/toolchains/llvm/llvm.BUILD.bzl b/cc/toolchains/llvm/llvm.BUILD.bzl index 3c175d51..70f7994e 100755 --- a/cc/toolchains/llvm/llvm.BUILD.bzl +++ b/cc/toolchains/llvm/llvm.BUILD.bzl @@ -30,9 +30,9 @@ filegroup( filegroup( name = "ld", - srcs = [ + srcs = glob([ "bin/ld.lld", - ], + ]), ) filegroup( From f9e3b19f7251f04d8e06cbe65ca99c5ad06a1da7 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Thu, 6 Apr 2023 14:58:18 -0600 Subject: [PATCH 04/27] bump to v14.0.6 --- cc/repositories.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 3705bf15..3b9dc6f1 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -11,7 +11,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin.tar.gz" +AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.6-arm64-apple-darwin.tar.gz" X86_64_DARWIN_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz" @@ -23,7 +23,7 @@ def swift_cc_toolchain(): name = "aarch64-darwin-llvm", build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), url = AARCH64_DARWIN_LLVM, - strip_prefix = "clang+llvm-14.0.0-arm64-apple-darwin", + strip_prefix = "clang+llvm-14.0.6-arm64-apple-darwin", ) maybe( From ba4e2e24382db3808354d2a94f676dba8333647d Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Thu, 6 Apr 2023 15:03:14 -0600 Subject: [PATCH 05/27] fix --- cc/repositories.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 3b9dc6f1..7cc9bec3 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -23,7 +23,7 @@ def swift_cc_toolchain(): name = "aarch64-darwin-llvm", build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), url = AARCH64_DARWIN_LLVM, - strip_prefix = "clang+llvm-14.0.6-arm64-apple-darwin", + strip_prefix = "clang+llvm-14.0.0-arm64-apple-darwin", ) maybe( From 010e63d6603c9c801669b831e89516a00c6026e1 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Thu, 6 Apr 2023 19:29:21 -0600 Subject: [PATCH 06/27] try noarch --- cc/repositories.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 7cc9bec3..51294074 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -11,7 +11,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.6-arm64-apple-darwin.tar.gz" +AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin-noarch.tar.gz" X86_64_DARWIN_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz" From 07d3e39989f37a42358716b094858765c08ad4a7 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 11:46:45 -0600 Subject: [PATCH 07/27] add ffp file --- cc/toolchains/llvm/ffp.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cc/toolchains/llvm/ffp.c diff --git a/cc/toolchains/llvm/ffp.c b/cc/toolchains/llvm/ffp.c new file mode 100644 index 00000000..6eb3f382 --- /dev/null +++ b/cc/toolchains/llvm/ffp.c @@ -0,0 +1,28 @@ +#include + +static const double +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ +S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ +S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ +S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ +S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ +S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + +double +__kernel_sin(double x, double y, int iy) +{ + double z,r,v,w; + + z = x*x; + w = z*z; + r = S2+z*(S3+z*S4) + z*w*(S5+z*S6); + v = z*x; + if(iy==0) return x+v*(S1+z*r); + else return x-((z*(half*y-v*r)-y)-v*S1); +} + +int main() { + printf("%.20f\n", __kernel_sin(0.41892385060478199, 4.0204527408880763E-18, 1)); + return 0; +} From 85a92d9ced866bdff40a2609eba57cbc0e334a8a Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 12:45:49 -0600 Subject: [PATCH 08/27] fall back to 14.0.0 arch build --- cc/repositories.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 51294074..3705bf15 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -11,7 +11,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin-noarch.tar.gz" +AARCH64_DARWIN_LLVM = "https://github.com/swift-nav/swift-toolchains/releases/download/llvm-14.0.0/clang%2Bllvm-14.0.0-arm64-apple-darwin.tar.gz" X86_64_DARWIN_LLVM = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz" From b2ee4194fa063f0b29eda4371e82481d29ab57b9 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 12:49:46 -0600 Subject: [PATCH 09/27] remove ffp file --- cc/toolchains/llvm/ffp.c | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 cc/toolchains/llvm/ffp.c diff --git a/cc/toolchains/llvm/ffp.c b/cc/toolchains/llvm/ffp.c deleted file mode 100644 index 6eb3f382..00000000 --- a/cc/toolchains/llvm/ffp.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -static const double -half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ -S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ -S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ -S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ -S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ -S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ -S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ - -double -__kernel_sin(double x, double y, int iy) -{ - double z,r,v,w; - - z = x*x; - w = z*z; - r = S2+z*(S3+z*S4) + z*w*(S5+z*S6); - v = z*x; - if(iy==0) return x+v*(S1+z*r); - else return x-((z*(half*y-v*r)-y)-v*S1); -} - -int main() { - printf("%.20f\n", __kernel_sin(0.41892385060478199, 4.0204527408880763E-18, 1)); - return 0; -} From 7b787fa37ef579eb1e1796883138023d3af52927 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 12:57:08 -0600 Subject: [PATCH 10/27] format --- WORKSPACE.bazel | 3 +-- cc/repositories.bzl | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index b0eae5d3..fc7b727d 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -45,8 +45,7 @@ http_archive( load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") # If you use WORKSPACE.bazel, use the following line instead of the bare gazelle_dependencies(): -# gazelle_dependencies(go_repository_default_config = "@//:WORKSPACE.bazel") -gazelle_dependencies() +gazelle_dependencies(go_repository_default_config = "@//:WORKSPACE.bazel") http_archive( name = "com_google_protobuf", diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 3705bf15..21f73d3c 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -44,7 +44,6 @@ def swift_cc_toolchain(): sha256 = "61582215dafafb7b576ea30cc136be92c877ba1f1c31ddbbd372d6d65622fef5", ) - def register_swift_cc_toolchains(): native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/aarch64-darwin:cc-toolchain-aarch64-darwin") native.register_toolchains("@rules_swiftnav//cc/toolchains/llvm/x86_64-darwin:cc-toolchain-x86_64-darwin") From 6e92afa8faaed5d36fe19f50a976248879b8fe09 Mon Sep 17 00:00:00 2001 From: Swift Svc Jenkins Date: Fri, 7 Apr 2023 13:49:36 -0700 Subject: [PATCH 11/27] disable chained fixups --- cc/toolchains/llvm/cc_toolchain_config.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/cc/toolchains/llvm/cc_toolchain_config.bzl b/cc/toolchains/llvm/cc_toolchain_config.bzl index e13145a3..3e5541e2 100644 --- a/cc/toolchains/llvm/cc_toolchain_config.bzl +++ b/cc/toolchains/llvm/cc_toolchain_config.bzl @@ -91,6 +91,7 @@ def cc_toolchain_config( # https://developer.apple.com/forums/thread/719961 "-undefined", "dynamic_lookup", + "-Wl,-no_fixup_chains", ]) else: use_lld = True From e097296e8ae2e4bf1f6484eec5ad0e2e702f3b1b Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 14:51:10 -0600 Subject: [PATCH 12/27] use llvm ar --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 2 +- cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index df83853a..da1ee035 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -104,7 +104,7 @@ cc_toolchain_config( target_libc = "macosx", target_system_name = "aarch64-apple-macosx", tool_paths = { - "ar": "/usr/bin/libtool", + "ar": "wrappers/ar", "cpp": "wrappers/clang-cpp", "gcc": "wrappers/clang", "gcov": "wrappers/llvm-profdata", diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar new file mode 120000 index 00000000..22cb46f8 --- /dev/null +++ b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar @@ -0,0 +1 @@ +wrapper \ No newline at end of file From 155b5d9d33653a6715d8c78456ddae4dfba2bb6e Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 14:53:03 -0600 Subject: [PATCH 13/27] fix --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index da1ee035..41e7da06 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -104,7 +104,7 @@ cc_toolchain_config( target_libc = "macosx", target_system_name = "aarch64-apple-macosx", tool_paths = { - "ar": "wrappers/ar", + "ar": "wrappers/llvm-ar", "cpp": "wrappers/clang-cpp", "gcc": "wrappers/clang", "gcov": "wrappers/llvm-profdata", From b53980501571f835f09691dc6eed5850d5b75297 Mon Sep 17 00:00:00 2001 From: Swift Svc Jenkins Date: Fri, 7 Apr 2023 14:01:33 -0700 Subject: [PATCH 14/27] Revert "fix" This reverts commit 155b5d9d33653a6715d8c78456ddae4dfba2bb6e. --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index 41e7da06..da1ee035 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -104,7 +104,7 @@ cc_toolchain_config( target_libc = "macosx", target_system_name = "aarch64-apple-macosx", tool_paths = { - "ar": "wrappers/llvm-ar", + "ar": "wrappers/ar", "cpp": "wrappers/clang-cpp", "gcc": "wrappers/clang", "gcov": "wrappers/llvm-profdata", From 4e2c31b5e6ffa366b13ed269280ff374260049af Mon Sep 17 00:00:00 2001 From: Swift Svc Jenkins Date: Fri, 7 Apr 2023 14:01:54 -0700 Subject: [PATCH 15/27] Revert "Revert "fix"" This reverts commit b53980501571f835f09691dc6eed5850d5b75297. --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index da1ee035..41e7da06 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -104,7 +104,7 @@ cc_toolchain_config( target_libc = "macosx", target_system_name = "aarch64-apple-macosx", tool_paths = { - "ar": "wrappers/ar", + "ar": "wrappers/llvm-ar", "cpp": "wrappers/clang-cpp", "gcc": "wrappers/clang", "gcov": "wrappers/llvm-profdata", From 59699b2445f237e7d1064a581ac444129c1c920f Mon Sep 17 00:00:00 2001 From: Swift Svc Jenkins Date: Fri, 7 Apr 2023 14:03:57 -0700 Subject: [PATCH 16/27] Revert "use llvm ar" This reverts commit e097296e8ae2e4bf1f6484eec5ad0e2e702f3b1b. --- cc/toolchains/llvm/aarch64-darwin/BUILD.bazel | 2 +- cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 120000 cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar diff --git a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel index 41e7da06..df83853a 100644 --- a/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel +++ b/cc/toolchains/llvm/aarch64-darwin/BUILD.bazel @@ -104,7 +104,7 @@ cc_toolchain_config( target_libc = "macosx", target_system_name = "aarch64-apple-macosx", tool_paths = { - "ar": "wrappers/llvm-ar", + "ar": "/usr/bin/libtool", "cpp": "wrappers/clang-cpp", "gcc": "wrappers/clang", "gcov": "wrappers/llvm-profdata", diff --git a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar b/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar deleted file mode 120000 index 22cb46f8..00000000 --- a/cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-ar +++ /dev/null @@ -1 +0,0 @@ -wrapper \ No newline at end of file From 5d9023e31fbf77b65f0f6e05869ea28b994e07f7 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:18:51 -0600 Subject: [PATCH 17/27] stop using features --- cc/BUILD.bazel | 13 +++++++++++++ cc/defs.bzl | 29 +++-------------------------- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/cc/BUILD.bazel b/cc/BUILD.bazel index 8d23f414..f165f478 100644 --- a/cc/BUILD.bazel +++ b/cc/BUILD.bazel @@ -54,6 +54,19 @@ config_setting( visibility = ["//visibility:public"], ) +# Disable warnings as errors with --@rules_swiftnav//cc:warnings_as_errors=false +bool_flag( + name = "warnings_as_errors", + build_setting_default = True, + visibility = ["//visibility:public"] +) + +config_setting( + name = "_disable_warnings_as_errors", + flag_values = {":warnings_as_errors": "false"}, + visibility = ["//visibility:public"] +) + # Allows us to experiment with building the codebase with different standards. string_flag( name = "cxx_standard", diff --git a/cc/defs.bzl b/cc/defs.bzl index 7a207761..df42e7bc 100644 --- a/cc/defs.bzl +++ b/cc/defs.bzl @@ -50,6 +50,9 @@ def _common_cc_opts(nocopts, pedantic = False): return select({ Label("//cc/constraints:gcc-6"): [copt for copt in GCC6_COPTS if copt not in nocopts], "//conditions:default": [copt for copt in DEFAULT_COPTS if copt not in nocopts], + }) + select({ + Label("//cc:_disable_warnings_as_errors"): [], + "//conditions:default": ["-Werror"], }) + ["-pedantic"] if pedantic else [] # Options specific to c++ code (exceptions, rtti, etc..) @@ -71,16 +74,6 @@ def _common_cxx_opts(exceptions = False, rtti = False, standard = None): def _construct_local_includes(local_includes): return [construct_local_include(path) for path in local_includes] -# Some options like -Werror are set using toolchain features -# See: https://bazel.build/docs/cc-toolchain-config-reference#features -def _default_features(): - return select({ - # treat_warnings_as_errors passes the option -fatal-warnings - # to the linker which ld on mac does not understand. - "@platforms//os:macos": [], - "//conditions:default": ["treat_warnings_as_errors"], - }) - # Disable building when --//:disable_tests=true or when building on windows def _test_compatible_with(): return select({ @@ -192,8 +185,6 @@ def swift_c_library(**kwargs): kwargs["copts"] = copts + c_standard + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - kwargs["tags"] = [LIBRARY] + kwargs.get("tags", []) native.cc_library(**kwargs) @@ -245,8 +236,6 @@ def swift_cc_library(**kwargs): kwargs["copts"] = copts + cxxopts + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - kwargs["tags"] = [LIBRARY] + kwargs.get("tags", []) native.cc_library(**kwargs) @@ -291,8 +280,6 @@ def swift_c_tool_library(**kwargs): kwargs["copts"] = copts + c_standard + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - native.cc_library(**kwargs) def swift_cc_tool_library(**kwargs): @@ -338,8 +325,6 @@ def swift_cc_tool_library(**kwargs): kwargs["copts"] = copts + cxxopts + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - native.cc_library(**kwargs) def swift_c_binary(**kwargs): @@ -380,8 +365,6 @@ def swift_c_binary(**kwargs): kwargs["copts"] = copts + c_standard + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - kwargs["tags"] = [BINARY] + kwargs.get("tags", []) native.cc_binary(**kwargs) @@ -428,8 +411,6 @@ def swift_cc_binary(**kwargs): kwargs["copts"] = copts + cxxopts + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - kwargs["tags"] = [BINARY] + kwargs.get("tags", []) native.cc_binary(**kwargs) @@ -471,8 +452,6 @@ def swift_c_tool(**kwargs): kwargs["copts"] = copts + c_standard + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - native.cc_binary(**kwargs) def swift_cc_tool(**kwargs): @@ -515,8 +494,6 @@ def swift_cc_tool(**kwargs): kwargs["copts"] = copts + cxxopts + kwargs.get("copts", []) - kwargs["features"] = _default_features() + kwargs.get("features", []) - native.cc_binary(**kwargs) def swift_cc_test_library(**kwargs): From 0dad9b3f1a2f4d9a54da0e42c19af692e0adbf65 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:23:41 -0600 Subject: [PATCH 18/27] format --- cc/BUILD.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cc/BUILD.bazel b/cc/BUILD.bazel index f165f478..2a91fa83 100644 --- a/cc/BUILD.bazel +++ b/cc/BUILD.bazel @@ -58,13 +58,13 @@ config_setting( bool_flag( name = "warnings_as_errors", build_setting_default = True, - visibility = ["//visibility:public"] + visibility = ["//visibility:public"], ) config_setting( name = "_disable_warnings_as_errors", flag_values = {":warnings_as_errors": "false"}, - visibility = ["//visibility:public"] + visibility = ["//visibility:public"], ) # Allows us to experiment with building the codebase with different standards. From 22c00d94841bbc979351a6087418ed45ce890b5f Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:26:15 -0600 Subject: [PATCH 19/27] add comment --- cc/toolchains/llvm/llvm.BUILD.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cc/toolchains/llvm/llvm.BUILD.bzl b/cc/toolchains/llvm/llvm.BUILD.bzl index 70f7994e..413d4c69 100755 --- a/cc/toolchains/llvm/llvm.BUILD.bzl +++ b/cc/toolchains/llvm/llvm.BUILD.bzl @@ -30,6 +30,8 @@ filegroup( filegroup( name = "ld", + # Hack to workaround us not building lld + # for aarch64-darwin. srcs = glob([ "bin/ld.lld", ]), From fd24cf0b0d6daedc85a365221bf7c0104b9a5ee3 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:28:38 -0600 Subject: [PATCH 20/27] add clang tidy support --- clang_tidy/BUILD.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/clang_tidy/BUILD.bazel b/clang_tidy/BUILD.bazel index 4ae49ffd..add863ef 100644 --- a/clang_tidy/BUILD.bazel +++ b/clang_tidy/BUILD.bazel @@ -27,6 +27,7 @@ filegroup( name = "clang_tidy_executable_default", srcs = select( { + "//platforms:aarch64-darwin": ["@aarch64-darwin-llvm//:clang-tidy"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-tidy"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-tidy"], "//conditions:default": [":clang_tidy_bin"], From 4f6eb10b59b9657ae0ace57f28d65fba5f43e89e Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:29:12 -0600 Subject: [PATCH 21/27] add clang-format support --- clang_format/BUILD.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/clang_format/BUILD.bazel b/clang_format/BUILD.bazel index 466add66..cb1b024c 100644 --- a/clang_format/BUILD.bazel +++ b/clang_format/BUILD.bazel @@ -19,6 +19,7 @@ choose_clang_format( filegroup( name = "_clang_format_bin", srcs = select({ + "//platforms:aarch64-darwin": ["@aarch64-darwin-llvm//:clang-format"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-format"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-format"], "//conditions:default": [":clang_format_bin"], From 17a073e263c70574beeef4474ef95b4b6827d78e Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Fri, 7 Apr 2023 17:49:45 -0600 Subject: [PATCH 22/27] remove clang tools for aarch64-darwin --- clang_format/BUILD.bazel | 1 - clang_tidy/BUILD.bazel | 1 - 2 files changed, 2 deletions(-) diff --git a/clang_format/BUILD.bazel b/clang_format/BUILD.bazel index cb1b024c..466add66 100644 --- a/clang_format/BUILD.bazel +++ b/clang_format/BUILD.bazel @@ -19,7 +19,6 @@ choose_clang_format( filegroup( name = "_clang_format_bin", srcs = select({ - "//platforms:aarch64-darwin": ["@aarch64-darwin-llvm//:clang-format"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-format"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-format"], "//conditions:default": [":clang_format_bin"], diff --git a/clang_tidy/BUILD.bazel b/clang_tidy/BUILD.bazel index add863ef..4ae49ffd 100644 --- a/clang_tidy/BUILD.bazel +++ b/clang_tidy/BUILD.bazel @@ -27,7 +27,6 @@ filegroup( name = "clang_tidy_executable_default", srcs = select( { - "//platforms:aarch64-darwin": ["@aarch64-darwin-llvm//:clang-tidy"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-tidy"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-tidy"], "//conditions:default": [":clang_tidy_bin"], From 15b5ff48033aa848ea6a8a8e74313755e80a4e4d Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Mon, 10 Apr 2023 11:46:37 -0600 Subject: [PATCH 23/27] set -ffp-contract=off --- cc/toolchains/llvm/cc_toolchain_config.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cc/toolchains/llvm/cc_toolchain_config.bzl b/cc/toolchains/llvm/cc_toolchain_config.bzl index 3e5541e2..604a4f2d 100644 --- a/cc/toolchains/llvm/cc_toolchain_config.bzl +++ b/cc/toolchains/llvm/cc_toolchain_config.bzl @@ -35,6 +35,8 @@ def cc_toolchain_config( "-U_FORTIFY_SOURCE", # https://github.com/google/sanitizers/issues/247 "-fstack-protector", "-fno-omit-frame-pointer", + # Math + "-ffp-contract=off", # Diagnostics "-fcolor-diagnostics", "-Wall", From f355676dddb1b295c29ba2f4759ccc8ebb56e2d6 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Mon, 10 Apr 2023 12:56:02 -0600 Subject: [PATCH 24/27] reenable clang-format for aarch64-darwin --- clang_format/BUILD.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/clang_format/BUILD.bazel b/clang_format/BUILD.bazel index 466add66..a3ca8b35 100644 --- a/clang_format/BUILD.bazel +++ b/clang_format/BUILD.bazel @@ -19,6 +19,7 @@ choose_clang_format( filegroup( name = "_clang_format_bin", srcs = select({ + "//platforms:aarch64-darwin": ["aarch64-darwin-llvm//:clang-format"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-format"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-format"], "//conditions:default": [":clang_format_bin"], From bc1031a14a4d835f71fa6d9ec4fb6e283b8a2897 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Mon, 10 Apr 2023 12:57:53 -0600 Subject: [PATCH 25/27] fix --- clang_format/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang_format/BUILD.bazel b/clang_format/BUILD.bazel index a3ca8b35..cb1b024c 100644 --- a/clang_format/BUILD.bazel +++ b/clang_format/BUILD.bazel @@ -19,7 +19,7 @@ choose_clang_format( filegroup( name = "_clang_format_bin", srcs = select({ - "//platforms:aarch64-darwin": ["aarch64-darwin-llvm//:clang-format"], + "//platforms:aarch64-darwin": ["@aarch64-darwin-llvm//:clang-format"], "//platforms:x86_64-darwin": ["@x86_64-darwin-llvm//:clang-format"], "//platforms:x86_64-linux": ["@x86_64-linux-llvm//:clang-format"], "//conditions:default": [":clang_format_bin"], From 07ebc8146a27a4ac940747e2f6616afae57bee87 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Mon, 10 Apr 2023 18:03:09 -0600 Subject: [PATCH 26/27] add comments: --- cc/repositories.bzl | 1 + cc/toolchains/llvm/cc_toolchain_config.bzl | 3 +++ 2 files changed, 4 insertions(+) diff --git a/cc/repositories.bzl b/cc/repositories.bzl index 21f73d3c..193b1312 100644 --- a/cc/repositories.bzl +++ b/cc/repositories.bzl @@ -24,6 +24,7 @@ def swift_cc_toolchain(): build_file = Label("//cc/toolchains/llvm:llvm.BUILD.bzl"), url = AARCH64_DARWIN_LLVM, strip_prefix = "clang+llvm-14.0.0-arm64-apple-darwin", + sha256 = "f826ee92c3fedb92bad2f9f834d96f6b9db3192871bfe434124bca848ba9a2a3", ) maybe( diff --git a/cc/toolchains/llvm/cc_toolchain_config.bzl b/cc/toolchains/llvm/cc_toolchain_config.bzl index 604a4f2d..c237ecec 100644 --- a/cc/toolchains/llvm/cc_toolchain_config.bzl +++ b/cc/toolchains/llvm/cc_toolchain_config.bzl @@ -36,6 +36,9 @@ def cc_toolchain_config( "-fstack-protector", "-fno-omit-frame-pointer", # Math + # This controls whether the compiler allows contracting floating point operations. + # It was flipped from off to on in clang-14. + # For now we'd like to preserve the legacy behavior. "-ffp-contract=off", # Diagnostics "-fcolor-diagnostics", From a636ce8bfc229fbb52f905318d93422960816ab6 Mon Sep 17 00:00:00 2001 From: Isaac Torres Date: Mon, 10 Apr 2023 18:07:15 -0600 Subject: [PATCH 27/27] add link --- cc/toolchains/llvm/cc_toolchain_config.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/cc/toolchains/llvm/cc_toolchain_config.bzl b/cc/toolchains/llvm/cc_toolchain_config.bzl index c237ecec..392a6c88 100644 --- a/cc/toolchains/llvm/cc_toolchain_config.bzl +++ b/cc/toolchains/llvm/cc_toolchain_config.bzl @@ -39,6 +39,7 @@ def cc_toolchain_config( # This controls whether the compiler allows contracting floating point operations. # It was flipped from off to on in clang-14. # For now we'd like to preserve the legacy behavior. + # See [BUILD-666] for more details. "-ffp-contract=off", # Diagnostics "-fcolor-diagnostics",