Comments (2)
Travis CI でのパッケージのインストールは apt-get
を利用する
qemu-user-static
は以下のようにインストールする
sudo apt-get update
sudo apt-get install -y qemu-user-static
Go 言語がサポートしている GOARCH は以下の通り
# go tool dist list | grep linux
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/s390x
このうち Big Endian なのは、ppc64
、 mips
、 mips64
、s390x
のみ。
memory ordering is big-endian and wrong typecasting between pointers to integers of different size can cause fatal errors
https://fedoraproject.org/wiki/Architectures/s390x
from bitset.
ppc64
で行った場合以下のエラーが発生したため、ppc64
は断念。
$ qemu-ppc64-static ./bitset.test
Invalid instruction
NIP 000000000004a1f4 LR 000000000004a1b0 CTR 0000000000063c20 XER 0000000000000000
MSR 8000000002006000 HID0 0000000060000000 HF 0000000002006000 idx 0
TB 00000000 00000000
GPR00 0000000000000000 00000040008005d8 0000000000000000 0000000000000001
GPR04 0000004000800621 fffffffffffffff0 0000000000000001 0000000000000001
GPR08 0000000000000001 0000000000000000 0000000000000000 0000000000000000
GPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR28 0000000000000000 0000000000000000 00000000001f8da0 000000000004a1b0
CR 20000000 [ E - - - - - - - ] RES ffffffffffffffff
FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPSCR 0000000000000000
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)
mips64
の場合 Go 1.10
では成功する。
しかし、Go 1.9
の場合以下のエラーが発生する
$ qemu-mips64-static ./bitset.test -test.v
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
/home/travis/.travis/job_stages: line 104: 5910 Segmentation fault (core dumped) qemu-mips64-static ./bitset.test -test.v
The command "qemu-mips64-static ./bitset.test -test.v" exited with 139.
Go 1.11
の場合以下のエラーが発生する
0.02s$ qemu-mips64-static ./bitset.test -test.v
fatal error: sigaction failed
runtime stack:
runtime.throw(0x179647, 0x10)
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/panic.go:608 +0x6c
runtime.sysSigaction.func1()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/os_linux.go:432 +0x4c
runtime.sysSigaction(0x4100000041, 0x40007ff478, 0x0)
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/os_linux.go:431 +0x98
runtime.sigaction(0x4100074be0, 0x40007ff478, 0x0)
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/sigaction.go:15 +0x28
runtime.setsig(0x4100000000, 0x59f90)
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/os_linux.go:382 +0xe8
runtime.initsig(0x183b00047a8c)
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/signal_unix.go:113 +0x268
runtime.mstartm0()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/proc.go:1309 +0x60
runtime.mstart1()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/proc.go:1278 +0x13c
runtime.mstart()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/proc.go:1248 +0x68
goroutine 1 [runnable]:
runtime.main()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/proc.go:110
runtime.goexit()
/home/travis/.gimme/versions/go1.11.linux.amd64/src/runtime/asm_mips64x.s:649 +0x4
The command "qemu-mips64-static ./bitset.test -test.v" exited with 2.
from bitset.
Related Issues (13)
- v0.1.0 HOT 1
- v0.3.0
- gometalinter:unsafe を使うと警告がでる
- バイトスライスの GC 抑制 HOT 1
- インターフェイスと関数ポインター HOT 2
- バイトオーダーの検出 HOT 1
- バイトオーダーのスワップ HOT 1
- Little Endian と Big Endian のエミュレート HOT 8
- バイト列の自動拡張 HOT 4
- []byte から []uint64 への変換 HOT 1
- v0.2.0 HOT 1
- バイト列の変換とあまりの部分の処理 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bitset.