diff --git a/ui/build/config.go b/ui/build/config.go index b8fcb6b5d..64ac1a070 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -1617,6 +1617,12 @@ func (c *configImpl) NinjaBin() string { return c.PrebuiltBuildTool(binName) } +func (c *configImpl) N2Bin() string { + path := c.PrebuiltBuildTool("n2") + // Use musl instead of glibc because glibc on the build server is old and has bugs + return strings.ReplaceAll(path, "/linux-x86/", "/linux_musl-x86/") +} + func (c *configImpl) PrebuiltBuildTool(name string) string { if v, ok := c.environ.Get("SANITIZE_HOST"); ok { if sanitize := strings.Fields(v); inList("address", sanitize) { diff --git a/ui/build/ninja.go b/ui/build/ninja.go index 8ca62d3f1..4e3e54443 100644 --- a/ui/build/ninja.go +++ b/ui/build/ninja.go @@ -57,7 +57,7 @@ func runNinjaForBuild(ctx Context, config Config) { "--frontend_file", fifo, } if config.useN2 { - executable = config.PrebuiltBuildTool("n2") + executable = config.N2Bin() args = []string{ "-d", "trace", // TODO: implement these features, or remove them. diff --git a/ui/build/soong.go b/ui/build/soong.go index 2ccdfecd8..a9c2cc7e9 100644 --- a/ui/build/soong.go +++ b/ui/build/soong.go @@ -663,7 +663,7 @@ func runSoong(ctx Context, config Config) { ninjaArgs = append(ninjaArgs, targets...) ninjaCmd := config.NinjaBin() if config.useN2 { - ninjaCmd = config.PrebuiltBuildTool("n2") + ninjaCmd = config.N2Bin() } cmd := Command(ctx, config, "soong bootstrap",