endian_generic.go 620 B

1234567891011121314151617181920212223242526
  1. // +build !mips,!mips64,!ppc64,!s390x,!amd64,!386,!arm,!arm64,!mipsle,!mips64le,!ppc64le,!riscv64,!wasm
  2. // This file is a fallback, so that package native doesn't break
  3. // the instant the Go project adds support for a new architecture.
  4. //
  5. package native
  6. import (
  7. "encoding/binary"
  8. "log"
  9. "runtime"
  10. "unsafe"
  11. )
  12. var Endian binary.ByteOrder
  13. func init() {
  14. b := uint16(0xff) // one byte
  15. if *(*byte)(unsafe.Pointer(&b)) == 0 {
  16. Endian = binary.BigEndian
  17. } else {
  18. Endian = binary.LittleEndian
  19. }
  20. log.Printf("github.com/josharian/native: unrecognized arch %v (%v), please file an issue", runtime.GOARCH, Endian)
  21. }