Repository: go
Issue: cmd/cgo/internal/testcarchive: `TestSignalForwardingGo` failures with SIGABRT instead of the expected SIGSEGV
Labels: help wanted,NeedsInvestigation,arch-s390x,compiler/runtime

```
#!watchflakes
post <- pkg == "cmd/cgo/internal/testcarchive" && test == "TestSignalForwardingGo" && `got "signal: aborted \(core dumped\)"`
```

### Go version

c29444ef39a44ad56ddf7b3d2aa8a51df1163e04

### What operating system and processor architecture are you using (`go env`)?

```shell
:: Running /data/golang/workdir/go/src/make.bash with args ["/data/golang/workdir/go/src/make.bash" "-force"] and env ["LANG=en_US.UTF-8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" "HOME=/root" "LOGNAME=root" "USER=root" "SHELL=/bin/sh" "INVOCATION_ID=c7eff962f62547d58bfc1ce0cd57453d" "JOURNAL_STREAM=9:337144255" "META_BUILDLET_BINARY_URL=https://storage.googleapis.com/go-builder-data/buildlet.linux-s390x" "GO_STAGE0_NET_DELAY=0s" "GO_STAGE0_DL_DELAY=100ms" "WORKDIR=/data/golang/workdir" "GOROOT_BOOTSTRAP=/data/golang/workdir/go1.4" "GO_BUILDER_NAME=linux-s390x-ibm" "GO_BUILDER_FLAKY_NET=1" "GO_TEST_TIMEOUT_SCALE=5" "GOBIN=" "TMPDIR=/data/golang/workdir/tmp" "GOCACHE=/data/golang/workdir/gocache" "GOPLSCACHE=/data/golang/workdir/goplscache" "PWD=/data/golang/workdir/go/src"] in dir /data/golang/workdir/go/src
```


### What did you do?

https://build.golang.org/log/78e761f843d3796f9ba2417bc7aa9195b53fd982

### What did you expect to see?

All tests passing.

### What did you see instead?

<details>

```
--- FAIL: TestSignalForwardingGo (2.25s)
    carchive_test.go:676: go build -buildmode=c-archive -o libgo2.a ./libgo2
    carchive_test.go:693: [gcc -fPIC -m64 -march=z196 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/data/golang/workdir/tmp/go-build528665555214635621=/tmp/go-build -gno-record-gcc-switches -I /data/golang/workdir/tmp/carchive_test6279244834931498601/pkg/linux_s390x_shared/testcarchive -o testp main5.c libgo2.a]
    carchive_test.go:704: [./testp] 4
    carchive_test.go:756: SIGSEGV: segmentation violation
        PC=0x107b3d8 m=1 sigcode=0 addr=0x6442400000000
        
        goroutine 0 gp=0xc0000024e0 m=1 mp=0xc000056008 [idle]:
        runtime.futex(0xc000056148, 0x80, 0x0, 0x0, 0x0, 0x0)
        	/data/golang/workdir/go/src/runtime/sys_linux_s390x.s:496 +0x28 fp=0x3ffcaf7e288 sp=0x3ffcaf7e288 pc=0x107b3d8
        runtime.futexsleep(0xc000056148, 0x0, 0xffffffffffffffff)
        	/data/golang/workdir/go/src/runtime/os_linux.go:69 +0x52 fp=0x3ffcaf7e2d0 sp=0x3ffcaf7e288 pc=0x103c792
        runtime.notesleep(0xc000056148)
        	/data/golang/workdir/go/src/runtime/lock_futex.go:170 +0xb6 fp=0x3ffcaf7e300 sp=0x3ffcaf7e2d0 pc=0x100ef76
        runtime.mPark(...)
        	/data/golang/workdir/go/src/runtime/proc.go:1759
        runtime.stoplockedm()
        	/data/golang/workdir/go/src/runtime/proc.go:3024 +0x9a fp=0x3ffcaf7e350 sp=0x3ffcaf7e300 pc=0x104a2ca
        runtime.schedule()
        	/data/golang/workdir/go/src/runtime/proc.go:3845 +0x54 fp=0x3ffcaf7e388 sp=0x3ffcaf7e350 pc=0x104d1f4
        runtime.park_m(0xc000002680)
        	/data/golang/workdir/go/src/runtime/proc.go:4034 +0x2d2 fp=0x3ffcaf7e3d8 sp=0x3ffcaf7e388 pc=0x104dad2
        runtime.mcall(0x3ffcaf7e3e8)
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:230 +0x5a fp=0x3ffcaf7e3e8 sp=0x3ffcaf7e3d8 pc=0x107818a
        
        goroutine 17 gp=0xc000002680 m=nil [select (no cases), locked to thread]:
        runtime.gopark(0x0, 0x0, 0xa, 0x1, 0x1)
        	/data/golang/workdir/go/src/runtime/proc.go:402 +0x136 fp=0xc000064e58 sp=0xc000064e40 pc=0x1043f06
        runtime.block()
        	/data/golang/workdir/go/src/runtime/select.go:103 +0x3c fp=0xc000064e80 sp=0xc000064e58 pc=0x1058d1c
        main.Block(...)
        	/data/golang/workdir/tmp/carchive_test6279244834931498601/src/testcarchive/libgo2/libgo2.go:57
        _cgoexp_b154175197ba_Block(0x3ffcaf7e50f)
        	_cgo_gotypes.go:60 +0x26 fp=0xc000064e88 sp=0xc000064e80 pc=0x109eff6
        runtime.cgocallbackg1(0x109efd0, 0x3ffcaf7e50f, 0x0)
        	/data/golang/workdir/go/src/runtime/cgocall.go:403 +0x28a fp=0xc000064f50 sp=0xc000064e88 pc=0x100765a
        runtime.cgocallbackg(0x109efd0, 0x3ffcaf7e50f, 0x0)
        	/data/golang/workdir/go/src/runtime/cgocall.go:322 +0x174 fp=0xc000064fc0 sp=0xc000064f50 pc=0x1007304
        runtime.cgocallback(0x0, 0x0, 0x0)
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:650 +0xdc fp=0xc000064fe0 sp=0xc000064fc0 pc=0x107a47c
        runtime.goexit({})
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:774 +0x2 fp=0xc000064fe0 sp=0xc000064fe0 pc=0x107a5e2
        
        goroutine 2 gp=0xc000002b60 m=nil [force gc (idle)]:
        runtime.gopark(0x10dda18, 0x1145d40, 0x11, 0xa, 0x1)
        	/data/golang/workdir/go/src/runtime/proc.go:402 +0x136 fp=0xc000050fb0 sp=0xc000050f98 pc=0x1043f06
        runtime.goparkunlock(...)
        	/data/golang/workdir/go/src/runtime/proc.go:408
        runtime.forcegchelper()
        	/data/golang/workdir/go/src/runtime/proc.go:326 +0xd2 fp=0xc000050fd8 sp=0xc000050fb0 pc=0x1043d02
        runtime.goexit({})
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:774 +0x2 fp=0xc000050fd8 sp=0xc000050fd8 pc=0x107a5e2
        created by runtime.init.5 in goroutine 1
        	/data/golang/workdir/go/src/runtime/proc.go:314 +0x30
        
        goroutine 3 gp=0xc000003040 m=nil [GC sweep wait]:
        runtime.gopark(0x10dda18, 0x1145ea0, 0xc, 0x9, 0x1)
        	/data/golang/workdir/go/src/runtime/proc.go:402 +0x136 fp=0xc000051790 sp=0xc000051778 pc=0x1043f06
        runtime.goparkunlock(...)
        	/data/golang/workdir/go/src/runtime/proc.go:408
        runtime.bgsweep(0xc000078000)
        	/data/golang/workdir/go/src/runtime/mgcsweep.go:277 +0xaa fp=0xc0000517c8 sp=0xc000051790 pc=0x102b60a
        runtime.gcenable.gowrap1()
        	/data/golang/workdir/go/src/runtime/mgc.go:203 +0x5e fp=0xc0000517d8 sp=0xc0000517c8 pc=0x101d64e
        runtime.goexit({})
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:774 +0x2 fp=0xc0000517d8 sp=0xc0000517d8 pc=0x107a5e2
        created by runtime.gcenable in goroutine 1
        	/data/golang/workdir/go/src/runtime/mgc.go:203 +0xa8
        
        goroutine 4 gp=0xc0000031e0 m=nil [GC scavenge wait]:
        runtime.gopark(0x10dda18, 0x1146000, 0xd, 0xa, 0x2)
        	/data/golang/workdir/go/src/runtime/proc.go:402 +0x136 fp=0xc000051f80 sp=0xc000051f68 pc=0x1043f06
        runtime.goparkunlock(...)
        	/data/golang/workdir/go/src/runtime/proc.go:408
        runtime.(*scavengerState).park(0x1146000)
        	/data/golang/workdir/go/src/runtime/mgcscavenge.go:425 +0x72 fp=0xc000051fa8 sp=0xc000051f80 pc=0x1028892
        runtime.bgscavenge(0xc000078000)
        	/data/golang/workdir/go/src/runtime/mgcscavenge.go:653 +0x5a fp=0xc000051fc8 sp=0xc000051fa8 pc=0x1028f4a
        runtime.gcenable.gowrap2()
        	/data/golang/workdir/go/src/runtime/mgc.go:204 +0x5e fp=0xc000051fd8 sp=0xc000051fc8 pc=0x101d5ce
        runtime.goexit({})
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:774 +0x2 fp=0xc000051fd8 sp=0xc000051fd8 pc=0x107a5e2
        created by runtime.gcenable in goroutine 1
        	/data/golang/workdir/go/src/runtime/mgc.go:204 +0x10e
        
        goroutine 18 gp=0xc00008a680 m=nil [finalizer wait]:
        runtime.gopark(0x10dd950, 0x11b3628, 0x10, 0xa, 0x1)
        	/data/golang/workdir/go/src/runtime/proc.go:402 +0x136 fp=0xc000050718 sp=0xc000050700 pc=0x1043f06
        runtime.runfinq()
        	/data/golang/workdir/go/src/runtime/mfinal.go:194 +0x13a fp=0xc0000507d8 sp=0xc000050718 pc=0x101c15a
        runtime.goexit({})
        	/data/golang/workdir/go/src/runtime/asm_s390x.s:774 +0x2 fp=0xc0000507d8 sp=0xc0000507d8 pc=0x107a5e2
        created by runtime.createfing in goroutine 1
        	/data/golang/workdir/go/src/runtime/mfinal.go:164 +0x64
        
        r0   0x0	r1   0xee
        r2   0xc000056148	r3   0x80
        r4   0x0	r5   0x0
        r6   0x0	r7   0x0
        r8   0xc000056008	r9   0x0
        r10  0x0	r11  0x3ffb2077820
        r12  0x0	r13  0xc0000024e0
        r14  0x103c792	r15  0x3ffcaf7e288
        pc   0x107b3d8	link 0x103c792
        
        -----
        
        
    carchive_test.go:644: got "signal: aborted (core dumped)"; expected signal "quit" or "segmentation fault"
FAIL
FAIL	cmd/cgo/internal/testcarchive	64.865s
```

</details>

(attn @golang/s390x)