2023-03-02 23:42:35 +02:00
|
|
|
# Copyright 2023 Uber Technologies, Inc.
|
2023-04-20 03:23:25 +03:00
|
|
|
# Licensed under the MIT License
|
2023-03-02 23:42:35 +02:00
|
|
|
|
2023-04-24 14:25:29 +03:00
|
|
|
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
|
2023-04-21 17:00:03 +03:00
|
|
|
load("@hermetic_cc_toolchain//rules:platform.bzl", "platform_binary", "platform_test")
|
2021-06-07 23:17:19 +03:00
|
|
|
|
|
|
|
go_library(
|
2022-05-05 13:36:58 +03:00
|
|
|
name = "cgo_lib",
|
|
|
|
srcs = ["cgo.go"],
|
2021-06-07 23:17:19 +03:00
|
|
|
cgo = True,
|
2023-04-21 17:00:03 +03:00
|
|
|
importpath = "github.com/uber/hermetic_cc_toolchain/test/cgo",
|
2021-06-07 23:17:19 +03:00
|
|
|
visibility = ["//visibility:private"],
|
|
|
|
)
|
|
|
|
|
2022-05-05 13:36:58 +03:00
|
|
|
go_test(
|
|
|
|
name = "cgo_test",
|
|
|
|
srcs = ["cgo_test.go"],
|
|
|
|
embed = [":cgo_lib"],
|
2021-04-10 01:05:01 +03:00
|
|
|
)
|
2022-01-28 14:40:03 +02:00
|
|
|
|
2022-05-05 13:36:58 +03:00
|
|
|
go_binary(
|
|
|
|
name = "cgo",
|
|
|
|
embed = [":cgo_lib"],
|
2023-04-24 14:25:29 +03:00
|
|
|
gc_linkopts = select({
|
|
|
|
"@platforms//os:macos": [
|
|
|
|
"-w", # https://github.com/ziglang/zig/issues/15439
|
|
|
|
"-buildmode=pie", # https://github.com/ziglang/zig/issues/15438
|
|
|
|
],
|
|
|
|
"//conditions:default": [],
|
|
|
|
}),
|
2022-05-05 13:36:58 +03:00
|
|
|
visibility = ["//visibility:public"],
|
2022-01-28 15:57:22 +02:00
|
|
|
)
|
2022-04-13 15:58:11 +03:00
|
|
|
|
|
|
|
[
|
|
|
|
platform_binary(
|
2022-05-05 13:36:58 +03:00
|
|
|
name = "cgo_{}".format(name),
|
|
|
|
src = "cgo",
|
2022-04-18 12:17:03 +03:00
|
|
|
platform = platform,
|
2022-04-13 15:58:11 +03:00
|
|
|
)
|
2022-04-18 12:17:03 +03:00
|
|
|
for name, platform in [
|
|
|
|
("linux_amd64_musl", "//libc_aware/platform:linux_amd64_musl"),
|
|
|
|
("linux_amd64_gnu.2.19", "//libc_aware/platform:linux_amd64_gnu.2.19"),
|
|
|
|
("linux_arm64_musl", "//libc_aware/platform:linux_arm64_musl"),
|
|
|
|
("linux_arm64_gnu.2.28", "//libc_aware/platform:linux_arm64_gnu.2.28"),
|
|
|
|
("darwin_amd64", "//platform:darwin_amd64"),
|
2022-04-13 15:58:11 +03:00
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
[
|
|
|
|
platform_test(
|
2022-05-05 13:36:58 +03:00
|
|
|
name = "cgo_test_{}".format(name),
|
|
|
|
src = "cgo_test",
|
2022-04-18 12:17:03 +03:00
|
|
|
platform = platform,
|
2022-04-13 15:58:11 +03:00
|
|
|
)
|
2022-06-02 08:46:16 +03:00
|
|
|
for name, platform, is_arm64 in [
|
|
|
|
("linux_amd64_musl", "//libc_aware/platform:linux_amd64_musl", False),
|
|
|
|
("linux_amd64_gnu.2.19", "//libc_aware/platform:linux_amd64_gnu.2.19", False),
|
2022-04-13 15:58:11 +03:00
|
|
|
]
|
|
|
|
]
|