Skip to content

Commit 79047c4

Browse files
committed
BUILD for aarch64 : Suggested changes
1 parent 99d4963 commit 79047c4

File tree

19 files changed

+239
-32
lines changed

19 files changed

+239
-32
lines changed

BUILD

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,69 @@ copyright_checker(
3737
visibility = ["//visibility:public"],
3838
)
3939

40+
# Conditionally enable format targets only for x86_64 builds to avoid Rust dependency on other architectures
41+
config_setting(
42+
name = "x86_64_cpu",
43+
values = {"cpu": "k8"}, # k8 is the x86_64 CPU value in Bazel
44+
)
45+
46+
# Enable format targets only for x86_64 development builds
4047
use_format_targets()
48+
49+
# Platform-aware ACL library alias
50+
alias(
51+
name = "acl",
52+
actual = select({
53+
"@platforms//cpu:x86_64": "@acl-deb-amd64//:acl",
54+
"@platforms//cpu:aarch64": "@acl-deb-arm64//:acl",
55+
}),
56+
visibility = ["//visibility:public"],
57+
)
58+
59+
# Platform-aware libcap2 library aliases
60+
alias(
61+
name = "libcap2",
62+
actual = select({
63+
"@platforms//cpu:x86_64": "@libcap2-deb-amd64//:libcap2",
64+
"@platforms//cpu:aarch64": "@libcap2-dev-deb-arm64//:libcap2",
65+
}),
66+
visibility = ["//visibility:public"],
67+
)
68+
69+
alias(
70+
name = "libcap2-dev",
71+
actual = select({
72+
"@platforms//cpu:x86_64": "@libcap2-dev-deb-amd64//:libcap2",
73+
"@platforms//cpu:aarch64": "@libcap2-dev-deb-arm64//:libcap2",
74+
}),
75+
visibility = ["//visibility:public"],
76+
)
77+
78+
# Platform-aware valgrind alias
79+
alias(
80+
name = "valgrind",
81+
actual = select({
82+
"@platforms//cpu:x86_64": "@valgrind-deb-amd64//:valgrind",
83+
"@platforms//cpu:aarch64": "@valgrind-deb-arm64//:valgrind",
84+
}),
85+
visibility = ["//visibility:public"],
86+
)
87+
88+
# Platform-aware libseccomp2 aliases
89+
alias(
90+
name = "libseccomp2",
91+
actual = select({
92+
"@platforms//cpu:x86_64": "@libseccomp2-deb-amd64//:libseccomp2",
93+
"@platforms//cpu:aarch64": "@libseccomp2-dev-deb-arm64//:libseccomp2",
94+
}),
95+
visibility = ["//visibility:public"],
96+
)
97+
98+
alias(
99+
name = "libseccomp2-dev",
100+
actual = select({
101+
"@platforms//cpu:x86_64": "@libseccomp2-dev-deb-amd64//:libseccomp2",
102+
"@platforms//cpu:aarch64": "@libseccomp2-dev-deb-arm64//:libseccomp2",
103+
}),
104+
visibility = ["//visibility:public"],
105+
)

MODULE.bazel

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,43 +98,89 @@ bazel_dep(name = "aspect_rules_lint", version = "1.0.3")
9898

9999
deb = use_repo_rule("@download_utils//download/deb:defs.bzl", "download_deb")
100100

101+
# ACL library for different architectures
101102
deb(
102-
name = "acl-deb",
103-
build = "//third_party/acl:acl.BUILD",
103+
name = "acl-deb-amd64",
104+
build = "//third_party/acl:acl-amd64.BUILD",
104105
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/a/acl/libacl1-dev_2.2.52-3build1_amd64.deb"],
105106
visibility = ["//visibility:public"],
106107
)
107108

108109
deb(
109-
name = "valgrind-deb",
110+
name = "acl-deb-arm64",
111+
build = "//third_party/acl:acl-arm64.BUILD",
112+
urls = ["https://launchpadlibrarian.net/581258948/libacl1-dev_2.3.1-1_arm64.deb"],
113+
visibility = ["//visibility:public"],
114+
)
115+
116+
# Valgrind for different architectures
117+
deb(
118+
name = "valgrind-deb-amd64",
110119
build = "//third_party/valgrind:valgrind.BUILD",
111120
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/v/valgrind/valgrind_3.15.0-1ubuntu9.1_amd64.deb"],
112121
visibility = ["//visibility:public"],
113122
)
114123

115124
deb(
116-
name = "libcap2-deb",
125+
name = "valgrind-deb-arm64",
126+
build = "//third_party/valgrind:valgrind.BUILD",
127+
urls = ["https://ports.ubuntu.com/pool/main/v/valgrind/valgrind_3.15.0-1ubuntu9.1_arm64.deb"],
128+
visibility = ["//visibility:public"],
129+
)
130+
131+
# libcap2 library for different architectures
132+
deb(
133+
name = "libcap2-deb-amd64",
134+
build = "//third_party/libcap2:libcap2-amd64.BUILD",
117135
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/libc/libcap2/libcap2_2.25-1.2_amd64.deb"],
118136
visibility = ["//visibility:public"],
119137
)
120138

121139
deb(
122-
name = "libcap2-dev-deb",
123-
build = "//third_party/libcap2:libcap2.BUILD",
140+
name = "libcap2-deb-arm64",
141+
urls = ["https://ports.ubuntu.com/pool/main/libc/libcap2/libcap2_2.25-1.2_arm64.deb"],
142+
visibility = ["//visibility:public"],
143+
)
144+
145+
# libcap2-dev library for different architectures
146+
deb(
147+
name = "libcap2-dev-deb-amd64",
148+
build = "//third_party/libcap2:libcap2-amd64-dev.BUILD",
124149
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/libc/libcap2/libcap-dev_2.25-1.2_amd64.deb"],
125150
visibility = ["//visibility:public"],
126151
)
127152

128153
deb(
129-
name = "libseccomp2-deb",
154+
name = "libcap2-dev-deb-arm64",
155+
build = "//third_party/libcap2:libcap2-arm64.BUILD",
156+
urls = ["https://ports.ubuntu.com/pool/main/libc/libcap2/libcap-dev_2.25-1.2_arm64.deb"],
157+
visibility = ["//visibility:public"],
158+
)
159+
160+
# libseccomp2 for different architectures
161+
deb(
162+
name = "libseccomp2-deb-amd64",
163+
build = "//third_party/libseccomp2:libseccomp2-amd64.BUILD",
130164
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.5.1-1ubuntu1~18.04.2_amd64.deb"],
131165
visibility = ["//visibility:public"],
132166
)
133167

134168
deb(
135-
name = "libseccomp2-dev-deb",
136-
build = "//third_party/libseccomp2:libseccomp2.BUILD",
137-
urls = ["https://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp-dev_2.5.1-1ubuntu1~18.04.2_i386.deb"],
169+
name = "libseccomp2-deb-arm64",
170+
urls = ["https://ports.ubuntu.com/pool/main/libs/libseccomp/libseccomp2_2.5.1-1ubuntu1~18.04.2_arm64.deb"],
171+
visibility = ["//visibility:public"],
172+
)
173+
174+
# libseccomp2-dev for different architectures
175+
deb(
176+
name = "libseccomp2-dev-deb-amd64", build = "//third_party/libseccomp2:libseccomp2-amd64-dev.BUILD", urls = ["https://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp-dev_2.5.1-1ubuntu1~18.04.2_amd64.deb"],
177+
visibility = ["//visibility:public"],
178+
)
179+
180+
deb(
181+
name = "libseccomp2-dev-deb-arm64",
182+
build = "//third_party/libseccomp2:libseccomp2-arm64.BUILD",
183+
urls = ["https://ports.ubuntu.com/pool/main/libs/libseccomp/libseccomp-dev_2.5.1-1ubuntu1~18.04.2_arm64.deb"],
138184
visibility = ["//visibility:public"],
139185
)
140186

score/concurrency/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ cc_library(
404404
name = "valgrind_on_host",
405405
deps = select({
406406
"@platforms//os:qnx": [],
407-
"//conditions:default": ["//third_party/valgrind"],
407+
"//conditions:default": ["//:valgrind"],
408408
}),
409409
)
410410

score/language/safecpp/test/test_std_arithmetic_types.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,15 @@ TEST(StdIntegralTypes, signess_and_bytes_number)
5555
// static_assert(std::numeric_limits<char>::is_signed == false,
5656
// "it is expected a 'char' to be unsigned in a QNX environment");
5757
#else
58+
// Note: char signedness is implementation-defined and varies by architecture
59+
// x86_64 Linux: signed char, aarch64 Linux: unsigned char
60+
#if defined(__x86_64__)
5861
static_assert(std::numeric_limits<char>::is_signed == true,
59-
"it is expected a 'char' to be signed in a linux environment");
62+
"it is expected a 'char' to be signed in a x86_64 linux environment");
63+
#elif defined(__aarch64__)
64+
static_assert(std::numeric_limits<char>::is_signed == false,
65+
"it is expected a 'char' to be unsigned in a aarch64 linux environment");
66+
#endif
6067
#endif
6168
// Test identifies number of bytes
6269
static_assert(sizeof(char) == 1, "it is expected a char bytes' number to be 1");

score/os/BUILD

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ cc_library(
3434
] + select(
3535
{
3636
"@platforms//os:linux": [
37-
"//third_party/acl",
37+
"//:acl",
3838
],
3939
"//conditions:default": [],
4040
},
@@ -504,7 +504,7 @@ cc_library(
504504
deps = select({
505505
"@platforms//os:qnx": [],
506506
"//conditions:default": [
507-
"//third_party/libcap2",
507+
"//:libcap2-dev",
508508
],
509509
}) + [
510510
":errno_logging",

score/os/linux/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ cc_library(
7373
],
7474
deps = [
7575
":linux_header",
76-
"//third_party/libcap2",
76+
"//:libcap2-dev",
7777
],
7878
)

score/os/linux/utils/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ cc_library(
2626
"@score_baselibs//score/os/linux/utils/test:__subpackages__",
2727
],
2828
deps = [
29-
"//third_party/libseccomp2",
29+
"//:libseccomp2-dev",
3030
"@score_baselibs//score/language/futurecpp",
3131
"@score_baselibs//score/os:stat",
3232
"@score_baselibs//score/os/linux",

third_party/acl/BUILD

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
1-
alias(
2-
name = "acl",
3-
actual = "@acl-deb//:acl",
4-
visibility = ["//visibility:public"],
5-
)
1+
# This BUILD file is used by the deb() rule to build the ACL library from .deb package contents
2+
# The actual target selection happens in the root BUILD file at //:acl

third_party/acl/acl-amd64.BUILD

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cc_library(
2+
name = "acl",
3+
srcs = [
4+
"usr/lib/libacl.a",
5+
],
6+
hdrs = [
7+
"usr/include/acl/libacl.h",
8+
"usr/include/sys/acl.h",
9+
],
10+
includes = ["usr/include/"],
11+
visibility = ["//visibility:public"],
12+
)

third_party/acl/acl-arm64.BUILD

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cc_library(
2+
name = "acl",
3+
srcs = [
4+
"usr/lib/aarch64-linux-gnu/libacl.a",
5+
],
6+
hdrs = [
7+
"usr/include/acl/libacl.h",
8+
"usr/include/sys/acl.h",
9+
],
10+
includes = ["usr/include/"],
11+
visibility = ["//visibility:public"],
12+
)

0 commit comments

Comments
 (0)