Skip to content

Add linux-arm64 builders #173

@dagood

Description

@dagood

This starts off simple--GOARCH=arm64--but there are a few things to solve.

  • Always build the _core tool for the host OS, not the target. We need to be able to execute the tool. This is not hard (just clear out the value to make Go detect it), prototype here: microsoft/main...dagood:dev/dagood/cross-support
  • Set up cross-compile C++ toolchain to build Go with CGo enabled. Otherwise this comes up when trying to install/build the race runtime:
    ...
    Building packages and commands for host, linux/amd64.
    Building packages and commands for target, linux/arm64.
    ---
    Installed Go for linux/arm64 in /home/dagood/git/go
    Installed commands in /home/dagood/git/go/bin
    ---- Building race runtime...
    ---- Running command: [../bin/go install -race -a std]
    go install: -race requires cgo
    panic: exit status 2
    
    goroutine 1 [running]:
    main.main()
            /home/dagood/git/go/eng/_core/cmd/build/build.go:60 +0x2c9
    
  • How will we run tests? (Cross-compile then test in a real machine? Where are these machines available--Helix?) (Probably want to split this to another issue.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    new-platformSupport a platform new to the microsoft/go infrastructure

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions