Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
d76b02f
add support for aarch-64-darwin
jungleraptor Apr 5, 2023
715f51c
fixes
swiftnav-svc-jenkins Apr 5, 2023
65f5100
remove references to ld in aarch64
jungleraptor Apr 5, 2023
f9e3b19
bump to v14.0.6
jungleraptor Apr 6, 2023
ba4e2e2
fix
jungleraptor Apr 6, 2023
010e63d
try noarch
jungleraptor Apr 7, 2023
07d3e39
add ffp file
jungleraptor Apr 7, 2023
85a92d9
fall back to 14.0.0 arch build
jungleraptor Apr 7, 2023
b2ee419
remove ffp file
jungleraptor Apr 7, 2023
7b787fa
format
jungleraptor Apr 7, 2023
6e92afa
disable chained fixups
swiftnav-svc-jenkins Apr 7, 2023
e097296
use llvm ar
jungleraptor Apr 7, 2023
155b5d9
fix
jungleraptor Apr 7, 2023
b539805
Revert "fix"
swiftnav-svc-jenkins Apr 7, 2023
4e2c31b
Revert "Revert "fix""
swiftnav-svc-jenkins Apr 7, 2023
59699b2
Revert "use llvm ar"
swiftnav-svc-jenkins Apr 7, 2023
5d9023e
stop using features
jungleraptor Apr 7, 2023
0dad9b3
format
jungleraptor Apr 7, 2023
22c00d9
add comment
jungleraptor Apr 7, 2023
fd24cf0
add clang tidy support
jungleraptor Apr 7, 2023
4f6eb10
add clang-format support
jungleraptor Apr 7, 2023
17a073e
remove clang tools for aarch64-darwin
jungleraptor Apr 7, 2023
2a51875
Merge branch 'main' into isaac/aarch64-darwin-llvm
jungleraptor Apr 8, 2023
15b5ff4
set -ffp-contract=off
jungleraptor Apr 10, 2023
f355676
reenable clang-format for aarch64-darwin
jungleraptor Apr 10, 2023
bc1031a
fix
jungleraptor Apr 10, 2023
07ebc81
add comments:
jungleraptor Apr 11, 2023
a636ce8
add link
jungleraptor Apr 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions WORKSPACE → WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
13 changes: 13 additions & 0 deletions cc/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
29 changes: 3 additions & 26 deletions cc/defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ def _common_cc_opts(nocopts, pedantic = False):
Label("//cc/constraints:gcc-6"): [copt for copt in GCC6_COPTS if copt not in nocopts],
Label("//cc/constraints:gcc-5"): [copt for copt in GCC5_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..)
Expand All @@ -72,16 +75,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({
Expand Down Expand Up @@ -194,8 +187,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)
Expand Down Expand Up @@ -247,8 +238,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)
Expand Down Expand Up @@ -293,8 +282,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):
Expand Down Expand Up @@ -340,8 +327,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):
Expand Down Expand Up @@ -382,8 +367,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)
Expand Down Expand Up @@ -430,8 +413,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)
Expand Down Expand Up @@ -473,8 +454,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):
Expand Down Expand Up @@ -517,8 +496,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):
Expand Down
24 changes: 18 additions & 6 deletions cc/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,20 @@
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.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.xz"

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-arm64-apple-darwin",
sha256 = "f826ee92c3fedb92bad2f9f834d96f6b9db3192871bfe434124bca848ba9a2a3",
)

maybe(
Expand All @@ -34,6 +36,16 @@ 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")
149 changes: 149 additions & 0 deletions cc/toolchains/llvm/aarch64-darwin/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Copyright (C) 2022 Swift Navigation Inc.
# Contact: Swift Navigation <dev@swift-nav.com>
#
# 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//: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",
)
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/clang
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/clang-cpp
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-cov
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-nm
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objcopy
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-objdump
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-profdata
1 change: 1 addition & 0 deletions cc/toolchains/llvm/aarch64-darwin/wrappers/llvm-strip
Loading