From f6cde3fc2fa40f5729acf99320b0534886045fbf Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Wed, 18 Oct 2023 13:40:56 +1000 Subject: [PATCH] internal/manual,internal/rawalloc: Reduce max array size to support MIPS. --- internal/manual/manual_32bit.go | 4 ++-- internal/manual/manual_mips.go | 13 +++++++++++++ internal/rawalloc/rawalloc_32bit.go | 4 ++-- internal/rawalloc/rawalloc_mips.go | 22 ++++++++++++++++++++++ 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 internal/manual/manual_mips.go create mode 100644 internal/rawalloc/rawalloc_mips.go diff --git a/internal/manual/manual_32bit.go b/internal/manual/manual_32bit.go index 5873087998..19369fa0c4 100644 --- a/internal/manual/manual_32bit.go +++ b/internal/manual/manual_32bit.go @@ -2,8 +2,8 @@ // of this source code is governed by a BSD-style license that can be found in // the LICENSE file. -//go:build 386 || amd64p32 || arm || armbe || mips || mipsle || mips64p32 || mips64p32le || ppc || sparc -// +build 386 amd64p32 arm armbe mips mipsle mips64p32 mips64p32le ppc sparc +//go:build 386 || amd64p32 || arm || armbe || ppc || sparc +// +build 386 amd64p32 arm armbe ppc sparc package manual diff --git a/internal/manual/manual_mips.go b/internal/manual/manual_mips.go new file mode 100644 index 0000000000..08bb880822 --- /dev/null +++ b/internal/manual/manual_mips.go @@ -0,0 +1,13 @@ +// Copyright 2020 The LevelDB-Go and Pebble Authors. All rights reserved. Use +// of this source code is governed by a BSD-style license that can be found in +// the LICENSE file. + +//go:build mips || mipsle || mips64p32 || mips64p32le +// +build mips mipsle mips64p32 mips64p32le + +package manual + +const ( + // MaxArrayLen is a safe maximum length for slices on this architecture. + MaxArrayLen = 1 << 30 +) diff --git a/internal/rawalloc/rawalloc_32bit.go b/internal/rawalloc/rawalloc_32bit.go index 3edacea718..3112cc9eb6 100644 --- a/internal/rawalloc/rawalloc_32bit.go +++ b/internal/rawalloc/rawalloc_32bit.go @@ -12,8 +12,8 @@ // implied. See the License for the specific language governing // permissions and limitations under the License. -//go:build 386 || amd64p32 || arm || armbe || mips || mipsle || mips64p32 || mips64p32le || ppc || sparc -// +build 386 amd64p32 arm armbe mips mipsle mips64p32 mips64p32le ppc sparc +//go:build 386 || amd64p32 || arm || armbe || ppc || sparc +// +build 386 amd64p32 arm armbe ppc sparc package rawalloc diff --git a/internal/rawalloc/rawalloc_mips.go b/internal/rawalloc/rawalloc_mips.go new file mode 100644 index 0000000000..55b45eb100 --- /dev/null +++ b/internal/rawalloc/rawalloc_mips.go @@ -0,0 +1,22 @@ +// Copyright 2014 The Cockroach Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +// implied. See the License for the specific language governing +// permissions and limitations under the License. + +//go:build mips || mipsle || mips64p32 || mips64p32le +// +build mips mipsle mips64p32 mips64p32le + +package rawalloc + +const ( + maxArrayLen = 1 << 30 +)