Since this has been fixed/worked around on the go side (thanks for
following up with that!) I'm going to close this as "wontfix" on QEMU's
side. It would be nice to support clone() with non-standard flags but
since we can't do that while we still link with libc there's no way we
can do this without a massive (and massively painful!) redesign to
remove our libc dependency so that all of QEMU's linux-user code runs
bare on the kernel.


** Changed in: qemu
       Status: New => Won't Fix

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1696353

Title:
  golang binaries fail to start under linux-user

Status in QEMU:
  Won't Fix

Bug description:
  With current master golang binaries fail when run under linux-user,
  for example:

  [will@localhost qemu]$ ./arm-linux-user/qemu-arm glide 
  runtime: failed to create new OS thread (have 2 already; errno=22)
  fatal error: newosproc

  runtime stack:
  runtime.throw(0x45f879, 0x9)
        /usr/lib/golang/src/runtime/panic.go:566 +0x78
  runtime.newosproc(0x1092c000, 0x1093bfe0)
        /usr/lib/golang/src/runtime/os_linux.go:160 +0x1b0
  runtime.newm(0x4ae1e8, 0x0)
        /usr/lib/golang/src/runtime/proc.go:1572 +0x12c
  runtime.main.func1()
        /usr/lib/golang/src/runtime/proc.go:126 +0x24
  runtime.systemstack(0x5ef900)
        /usr/lib/golang/src/runtime/asm_arm.s:247 +0x80
  runtime.mstart()
        /usr/lib/golang/src/runtime/proc.go:1079

  goroutine 1 [running]:
  runtime.systemstack_switch()
        /usr/lib/golang/src/runtime/asm_arm.s:192 +0x4 fp=0x109287ac 
sp=0x109287a8
  runtime.main()
        /usr/lib/golang/src/runtime/proc.go:127 +0x5c fp=0x109287d4 
sp=0x109287ac
  runtime.goexit()
        /usr/lib/golang/src/runtime/asm_arm.s:998 +0x4 fp=0x109287d4 
sp=0x109287d4

  The reason for this is that the golang runtime does not pass the
  CLONE_SYSVMEM flag to clone so the clone flags checks fail:

  https://github.com/golang/go/blob/master/src/runtime/os_linux.go#L155

  The attached patch allows golang binaries to start under linux-user.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1696353/+subscriptions

Reply via email to