Replace API level codename with number
This CL fixes a bug when Soong pass `-target` with a non-digit suffix in Clang. As mentioned in b/236753843, Clang's version parsing expects to see an integer in the target string so it ignores the S suffix. Test: m gwp_asan_crash_handler && make sure -target is aarch64-linux-androidS instead of aarch64-linux-android31 Test: go test -run ^TestNonDigitMinSdkVersionInClangTriple$ android/soong/cc Bug: 236753843 Change-Id: I258ecc52083dbf3471d23cf310e0ad54440f1908
This commit is contained in:
@@ -3722,6 +3722,25 @@ func TestMinSdkVersionInClangTriple(t *testing.T) {
|
||||
android.AssertStringDoesContain(t, "min sdk version", cFlags, "-target aarch64-linux-android29")
|
||||
}
|
||||
|
||||
func TestNonDigitMinSdkVersionInClangTriple(t *testing.T) {
|
||||
bp := `
|
||||
cc_library_shared {
|
||||
name: "libfoo",
|
||||
srcs: ["foo.c"],
|
||||
min_sdk_version: "S",
|
||||
}
|
||||
`
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForCcTest,
|
||||
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
|
||||
variables.Platform_version_active_codenames = []string{"UpsideDownCake", "Tiramisu"}
|
||||
}),
|
||||
).RunTestWithBp(t, bp)
|
||||
ctx := result.TestContext
|
||||
cFlags := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"]
|
||||
android.AssertStringDoesContain(t, "min sdk version", cFlags, "-target aarch64-linux-android31")
|
||||
}
|
||||
|
||||
func TestIncludeDirsExporting(t *testing.T) {
|
||||
|
||||
// Trim spaces from the beginning, end and immediately after any newline characters. Leaves
|
||||
|
Reference in New Issue
Block a user