Skip to content

Building from Linux

Fredrik Holmqvist edited this page Feb 14, 2022 · 12 revisions

Install a recent version of Go
In your go tree:

  1. cd src
  2. GOOS=haiku GOARCH=amd64 ./bootstrap.bash
    This will create a directory next to your go tree called go-haiku-amd64-bootstrap.
    You will need to delete this dir between every run.

Notes:

  • Might need to change src/cmd/go/internal/work/init.go to use shared for Haiku as default for syscall lib.
  • Deal with src/cmd/internal/browser/browser.go later.
  • Deal with TLS in src/cmd/internal/obj/x86/asm6.go later. (is x86 needed for amd64?) It's needed added tls impl for Haiku, based on ELF, but switched to use FS reg. (Ok?
  • Take a second look at src/cmd/internal/objabi/head.go and src/cmd/internal/sys/supported.go especially BuildModeSupported.
  • src/cmd/link/internal/ld/lib.go looks ok, but take a second look if linking issues.
  • src/cmd/link/internal/ld/outbuf_nofallocate.go is what we use, but we could probably have fallocate?
  • IsHaiku() would be added to src/cmd/link/internal/ld/target.go if needed.
  • src/cmd/link/internal/ld/target.go is also were we decide if we use libc for syscalls.
  • src/cmd/link/internal/x86/obj.go needs changes if x86
Clone this wiki locally