diff --git a/android/util_test.go b/android/util_test.go index 20161e52d..699135bfc 100644 --- a/android/util_test.go +++ b/android/util_test.go @@ -811,7 +811,7 @@ func TestReverseSlice(t *testing.T) { if !reflect.DeepEqual(slice, testCase.expected) { t.Errorf("expected %#v, got %#v", testCase.expected, slice) } - if slice != nil && unsafe.SliceData(testCase.in) == unsafe.SliceData(slice) { + if cap(slice) > 0 && unsafe.SliceData(testCase.in) == unsafe.SliceData(slice) { t.Errorf("expected slices to have different backing arrays") } }) diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go index 34b158963..c94ff0721 100644 --- a/cmd/soong_ui/main.go +++ b/cmd/soong_ui/main.go @@ -692,9 +692,11 @@ func setMaxFiles(ctx build.Context) { } ctx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max) - if limits.Cur == limits.Max { - return - } + + // Go 1.21 modifies the file limit but restores the original when + // execing subprocesses if it hasn't be overridden. Call Setrlimit + // here even if it doesn't appear to be necessary so that the + // syscall package considers it set. limits.Cur = limits.Max err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limits)