disk io error on arm64 system with 64KB pages
hi,I am using sqlite on an arm64 Linux machine.
When the wal file exceeds 4096 pages, sqlite will report a disk io error.
I checked and found that this is a problem caused by incorrect mmap parameters.
In the case of 64KB page size, mmap is not aligned by page.
During debugging, I saw that the _unixShmRegionPerMap function in sqlite/lib/sqlite_linux_arm64.go seems to be not working properly on arm64 machines. The result of pgsz is always 0.
It seems to be a problem implemented in modernc.org/libc
`func _unixShmRegionPerMap(tls *libc.TLS) (r int32) { `
`var pgsz, shmsz int32 `
`_, _ = pgsz, shmsz shmsz = libc.Int32FromInt32(32) * libc.Int32FromInt32(1024) /* SHM region size */ `
`pgsz = (*(*func(*libc.TLS) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(25)].FpCurrent})))(tls) /* System page size */ `
`_ = libc.Int32FromInt32(0) /* Page size must be a power of 2 */ `
`if pgsz < shmsz { `
` return int32(1) `
`} `
`return pgsz / shmsz }`
issue