https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126582

            Bug ID: 126582
           Summary: [SH] Go applications crash with "panic: unaligned
                    64-bit atomic operation"
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: glaubitz at debian dot org
                CC: olegendo at gcc dot gnu.org
  Target Milestone: ---
            Target: sh*-*-*

Just tried to build and run a simple Go application on my sh4 (SH-7786LCR)
system running Debian unstable.

While compiling the application with gccgo works, running the actual program
fails with a runtime backtrace:

glaubitz@tirpitz:/srv/glaubitz/gcc/build$ ./gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=./gcc/xgcc
Target: sh4a-unknown-linux-gnu
Configured with: ../configure --disable-multilib --disable-werror
--enable-multiarch --enable-bootstrap
--enable-languages=c,c++,objc,obj-c++,algol68,fortran,go
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 17.0.0 20260705 (experimental) (GCC) 
glaubitz@tirpitz:/srv/glaubitz/gcc/build$ cat ~/hello.go
package main

import "fmt"

func main() {
    fmt.Println("hello world")
}
glaubitz@tirpitz:/srv/glaubitz/gcc/build$ ./gcc/gccgo -B./gcc ~/hello.go -I
sh4a-unknown-linux-gnu/libgo -L sh4a-unknown-linux-gnu/libgo -L
sh4a-unknown-linux-gnu/libgo/.libs -o ~/hello
glaubitz@tirpitz:/srv/glaubitz/gcc/build$
LD_LIBRARY_PATH=$(pwd)/sh4a-unknown-linux-gnu/libgo/.libs ~/hello
panic: unaligned 64-bit atomic operation
fatal error: panic during malloc

runtime stack:
runtime.dopanic__m
        ../../../libgo/go/runtime/panic.go:1207
runtime.fatalthrow
        ../../../libgo/go/runtime/panic.go:1073
runtime.throw
        ../../../libgo/go/runtime/panic.go:1044
panic
        ../../../libgo/go/runtime/panic.go:651
runtime_1internal_1atomic.panicUnaligned
        ../../../libgo/go/runtime/internal/atomic/unaligned.go:13
runtime_1internal_1atomic.Load64
        ../../../libgo/go/runtime/internal/atomic/atomic.c:51
runtime.headTailIndex.load
        ../../../libgo/go/runtime/mspanset.go:326
runtime.spanSet.pop
        ../../../libgo/go/runtime/mspanset.go:145
runtime.mcentral.cacheSpan
        ../../../libgo/go/runtime/mcentral.go:109
runtime.mcache.refill
        ../../../libgo/go/runtime/mcache.go:154
runtime.mcache.nextFree
        ../../../libgo/go/runtime/malloc.go:896
runtime.mallocgc
        ../../../libgo/go/runtime/malloc.go:1109
runtime.newobject
        ../../../libgo/go/runtime/malloc.go:1292
runtime.allocg
        ../../../libgo/go/runtime/stubs.go:340
runtime.malg
        ../../../libgo/runtime/proc.c:799
runtime.mpreinit
        ../../../libgo/go/runtime/os_gccgo.go:21
runtime.mcommoninit
        ../../../libgo/go/runtime/proc.go:807
runtime.schedinit
        ../../../libgo/go/runtime/proc.go:685
main
        ../../../libgo/runtime/go-main.c:56
__libc_start_call_main
        ../sysdeps/nptl/libc_start_call_main.h:58
__libc_start_main_impl
        ./csu/libc-start.c:360

        :0
glaubitz@tirpitz:/srv/glaubitz/gcc/build$

Reply via email to