endian_generic.go 847 B

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