public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
@ 2023-06-17  9:52 doko at gcc dot gnu.org
  2023-06-19  7:33 ` [Bug go/110297] " rguenth at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: doko at gcc dot gnu.org @ 2023-06-17  9:52 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110297
           Summary: [13/14 Regression] all libgo tests fail on
                    arm-linux-gnueabi and arm-linxu-gnueabihf
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

seen on the gcc-13 branch 20230611 on arm-linux-gnueabi and
arm-linux-gnueabihf:

and all libgo tests fail on ARM32, both on the gcc-13 branch and the trunk.

[...]
fatal error: runtime: cannot allocate memory

runtime stack:
runtime.dopanic__m
        ../../../src/libgo/go/runtime/panic.go:1207
runtime.fatalthrow
        ../../../src/libgo/go/runtime/panic.go:1073
runtime.throw
        ../../../src/libgo/go/runtime/panic.go:1044
runtime.persistentalloc1
        ../../../src/libgo/go/runtime/malloc.go:1475
runtime.persistentalloc..func1
        ../../../src/libgo/go/runtime/malloc.go:1429
runtime.systemstack
        ../../../src/libgo/go/runtime/stubs.go:61
runtime.persistentalloc
        ../../../src/libgo/go/runtime/malloc.go:1428
runtime.addrRanges.init
        ../../../src/libgo/go/runtime/mranges.go:170
runtime.pageAlloc.init
        ../../../src/libgo/go/runtime/mpagealloc.go:330
runtime.mheap.init
        ../../../src/libgo/go/runtime/mheap.go:723
runtime.mallocinit
        ../../../src/libgo/go/runtime/malloc.go:497
runtime.schedinit
        ../../../src/libgo/go/runtime/proc.go:681

        :0

        :0
__libc_start_main
        :0


that's from a simple check:
GO=go-13

WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
cat <<EOF > hello.go
package main
import "fmt"
func main() {
    fmt.Println("hello world")
}
EOF

$GO run hello.go
$GO build hello.go
echo "build: OK"
ldd hello
[ -x hello ]
./hello
echo "run: OK"

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
@ 2023-06-19  7:33 ` rguenth at gcc dot gnu.org
  2023-06-19  9:16 ` doko at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-06-19  7:33 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |testsuite-fail
   Target Milestone|---                         |13.2

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
  2023-06-19  7:33 ` [Bug go/110297] " rguenth at gcc dot gnu.org
@ 2023-06-19  9:16 ` doko at gcc dot gnu.org
  2023-06-19 10:48 ` schwab@linux-m68k.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: doko at gcc dot gnu.org @ 2023-06-19  9:16 UTC (permalink / raw)
  To: gcc-bugs

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

Matthias Klose <doko at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|arm-linux-gnueabihf         |arm-linux-gnueabihf
                   |arm-linux-gnueabi           |arm-linux-gnueabi
                   |                            |powerpc-linux-gnu

--- Comment #1 from Matthias Klose <doko at gcc dot gnu.org> ---
the libgo tests also fail on powerpc-linux-gnu (for 32bit, but not for the
64bit multilibs).

the tests pass on i686-linux-gnu, also the 32bit multilib tests on
sparc64-linux-gnu.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
  2023-06-19  7:33 ` [Bug go/110297] " rguenth at gcc dot gnu.org
  2023-06-19  9:16 ` doko at gcc dot gnu.org
@ 2023-06-19 10:48 ` schwab@linux-m68k.org
  2023-06-19 11:51 ` schwab@linux-m68k.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: schwab@linux-m68k.org @ 2023-06-19 10:48 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Andreas Schwab <schwab@linux-m68k.org> ---
The go side of the mmap C function is using the wrong type for the offset
argument.

Dump of assembler code for function runtime.mmap:
   0xb692c340 <+0>:     push    {r4, r5, lr}
   0xb692c344 <+4>:     sub     sp, sp, #20
   0xb692c348 <+8>:     mov     r5, #0
   0xb692c34c <+12>:    mov     r12, r1
   0xb692c350 <+16>:    mov     r4, r0
   0xb692c354 <+20>:    mov     r1, r2
   0xb692c358 <+24>:    ldr     r0, [sp, #40]   ; 0x28
   0xb692c35c <+28>:    mov     r2, r3
   0xb692c360 <+32>:    ldr     r3, [sp, #36]   ; 0x24
   0xb692c364 <+36>:    str     r0, [sp, #8]
   0xb692c368 <+40>:    str     r3, [sp]
   0xb692c36c <+44>:    mov     r0, r12
   0xb692c370 <+48>:    ldr     r3, [sp, #32]
   0xb692c374 <+52>:    str     r5, [sp, #12]
   0xb692c378 <+56>:    bl      0xb6454e80 <mmap@plt>
=> 0xb692c37c <+60>:    cmn     r0, #1
   0xb692c380 <+64>:    movne   r3, r0
   0xb692c384 <+68>:    beq     0xb692c398 <runtime.mmap+88>
   0xb692c388 <+72>:    mov     r0, r4
   0xb692c38c <+76>:    stm     r4, {r3, r5}
   0xb692c390 <+80>:    add     sp, sp, #20
   0xb692c394 <+84>:    pop     {r4, r5, pc}
   0xb692c398 <+88>:    bl      0xb644b424 <runtime.errno@plt>
   0xb692c39c <+92>:    mov     r3, r5
   0xb692c3a0 <+96>:    mov     r5, r0
   0xb692c3a4 <+100>:   b       0xb692c388 <runtime.mmap+72>

sp+36 is fd and sp+40 is offset.  The latter is then passed as 64-bit value in
sp+8/sp+12, but mmap expects a 32-bit offset.  Apparently go is assuming the
mmap64 interface.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-06-19 10:48 ` schwab@linux-m68k.org
@ 2023-06-19 11:51 ` schwab@linux-m68k.org
  2023-06-19 19:18 ` ian at airs dot com
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: schwab@linux-m68k.org @ 2023-06-19 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Andreas Schwab <schwab@linux-m68k.org> ---
The problem is in the magic comment in libgo/go/runtine/mem_gccgo.go:

//extern mmap
func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off
_libgo_off_t_type) unsafe.Pointer

This needs to be changed to mmap64.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2023-06-19 11:51 ` schwab@linux-m68k.org
@ 2023-06-19 19:18 ` ian at airs dot com
  2023-06-20 16:56 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ian at airs dot com @ 2023-06-19 19:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Ian Lance Taylor <ian at airs dot com> ---
Thanks.  I suspect this was broken by
https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604158.html.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2023-06-19 19:18 ` ian at airs dot com
@ 2023-06-20 16:56 ` cvs-commit at gcc dot gnu.org
  2023-06-20 16:57 ` cvs-commit at gcc dot gnu.org
  2023-06-20 17:27 ` ian at airs dot com
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-20 16:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Ian Lance Taylor <ian@gcc.gnu.org>:

https://gcc.gnu.org/g:efecb298d880cda20f8d7bea2d7b500a9752ce56

commit r14-1999-gefecb298d880cda20f8d7bea2d7b500a9752ce56
Author: Ian Lance Taylor <iant@golang.org>
Date:   Mon Jun 19 14:57:54 2023 -0700

    runtime: use a C function to call mmap

    The final argument to mmap, of type off_t, varies.
    In CL 445375 we changed it to always use the C off_t type,
    but that broke 32-bit big-endian Linux systems.  On those systems,
    using the C off_t type requires calling the mmap64 function.
    In C this is automatically handled by the <sys/mman.h> file.
    In Go, we would have to change the magic //extern comment to
    call mmap64 when appropriate.  Rather than try to get that right,
    we instead go through a C function that uses C implicit type
    conversions to pick the right type.

    Fixes PR go/110297

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504415

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2023-06-20 16:56 ` cvs-commit at gcc dot gnu.org
@ 2023-06-20 16:57 ` cvs-commit at gcc dot gnu.org
  2023-06-20 17:27 ` ian at airs dot com
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-20 16:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Ian Lance Taylor
<ian@gcc.gnu.org>:

https://gcc.gnu.org/g:4ac89ab35884906900cde8172d2db74e1d913fec

commit r13-7459-g4ac89ab35884906900cde8172d2db74e1d913fec
Author: Ian Lance Taylor <iant@golang.org>
Date:   Tue Jun 20 09:56:34 2023 -0700

    runtime: use a C function to call mmap

    The final argument to mmap, of type off_t, varies.
    In CL 445375 we changed it to always use the C off_t type,
    but that broke 32-bit big-endian Linux systems.  On those systems,
    using the C off_t type requires calling the mmap64 function.
    In C this is automatically handled by the <sys/mman.h> file.
    In Go, we would have to change the magic //extern comment to
    call mmap64 when appropriate.  Rather than try to get that right,
    we instead go through a C function that uses C implicit type
    conversions to pick the right type.

    Fixes PR go/110297

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504415

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug go/110297] [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf
  2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2023-06-20 16:57 ` cvs-commit at gcc dot gnu.org
@ 2023-06-20 17:27 ` ian at airs dot com
  7 siblings, 0 replies; 9+ messages in thread
From: ian at airs dot com @ 2023-06-20 17:27 UTC (permalink / raw)
  To: gcc-bugs

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

Ian Lance Taylor <ian at airs dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #7 from Ian Lance Taylor <ian at airs dot com> ---
Should be fixed now.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-06-20 17:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-17  9:52 [Bug go/110297] New: [13/14 Regression] all libgo tests fail on arm-linux-gnueabi and arm-linxu-gnueabihf doko at gcc dot gnu.org
2023-06-19  7:33 ` [Bug go/110297] " rguenth at gcc dot gnu.org
2023-06-19  9:16 ` doko at gcc dot gnu.org
2023-06-19 10:48 ` schwab@linux-m68k.org
2023-06-19 11:51 ` schwab@linux-m68k.org
2023-06-19 19:18 ` ian at airs dot com
2023-06-20 16:56 ` cvs-commit at gcc dot gnu.org
2023-06-20 16:57 ` cvs-commit at gcc dot gnu.org
2023-06-20 17:27 ` ian at airs dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).