summaryrefslogtreecommitdiff
path: root/rust/binary_test.go
diff options
context:
space:
mode:
author Ivan Lozano <ivanlozano@google.com> 2021-07-22 10:52:06 -0400
committer Ivan Lozano <ivanlozano@google.com> 2021-07-22 14:23:27 -0400
commita2268635f4f05cffb360b6c000b04e76c50c4fed (patch)
treedbe0981860503ec64c563e2462ca80af6faf34fa /rust/binary_test.go
parent719371072f69d7e6303e59f9c2ff657d71b6ce1c (diff)
rust: Add support for bootstrap linker.
Adds the 'bootstrap' property to Rust modules to set the linker to the bootstrap linker. Bug: 194276829 Test: set bootstrap: true on module, checked .interp section on output. Test: bootstrapped binary runs. Change-Id: I459c8194902cfea3c44b060e70d28a43fcba3ade
Diffstat (limited to 'rust/binary_test.go')
-rw-r--r--rust/binary_test.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/rust/binary_test.go b/rust/binary_test.go
index 86f50d3e4..968c0c1ff 100644
--- a/rust/binary_test.go
+++ b/rust/binary_test.go
@@ -114,6 +114,23 @@ func TestBinaryFlags(t *testing.T) {
}
}
+// Test that the bootstrap property sets the appropriate linker
+func TestBootstrap(t *testing.T) {
+ ctx := testRust(t, `
+ rust_binary {
+ name: "foo",
+ srcs: ["foo.rs"],
+ bootstrap: true,
+ }`)
+
+ foo := ctx.ModuleForTests("foo", "android_arm64_armv8-a").Rule("rustc")
+
+ flag := "-Wl,-dynamic-linker,/system/bin/bootstrap/linker64"
+ if !strings.Contains(foo.Args["linkFlags"], flag) {
+ t.Errorf("missing link flag to use bootstrap linker, expecting %#v, linkFlags: %#v", flag, foo.Args["linkFlags"])
+ }
+}
+
func TestStaticBinaryFlags(t *testing.T) {
ctx := testRust(t, `
rust_binary {