From 034534df050681c9e95b14ebd841afaa9db31390 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Wed, 5 Mar 2025 16:40:15 +0100 Subject: sys/targets: use a different DataOffset value for ARM64 It seems that, on ARM64, in many cases we just can't use many enough bits of the address space. Let's use the old value for now. It's also problematic (see #5770), but it's lesser of the two evils. --- sys/targets/targets.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sys/targets') diff --git a/sys/targets/targets.go b/sys/targets/targets.go index e1c763f42..69b530a94 100644 --- a/sys/targets/targets.go +++ b/sys/targets/targets.go @@ -782,6 +782,13 @@ func initTarget(target *Target, OS, arch string) { func (target *Target) defaultDataOffset() uint64 { if target.PtrSize == 8 { + if target.VMArch == ARM64 { + // On ARM64, in many cases we can't use many enough bits of the address space. + // Let's use the old value for now. It's also problematic (see #5770), but it's + // lesser of the two evils. + return 0x20000000 + } + // An address from ASAN's 64-bit HighMem area. // 0x400000000000 works both for arm64 and amd64. We don't run syzkaller tests on any other platform. // During real fuzzing, we don't build with ASAN, so the address should not matter much as long as -- cgit mrf-deployment