func buildEnvironment()

in go/base/rootfs/entrypoint.go [86:116]


func buildEnvironment(platform string) (map[string]string, error) {
	parts := strings.SplitN(platform, "/", 2)
	if len(parts) != 2 {
		return nil, fmt.Errorf("invalid platform %v", platform)
	}

	platformID := strings.Join(parts, "-")
	goos := parts[0]
	arch := parts[1]
	goarch := arch
	goarm := ""

	if strings.HasPrefix(arch, "armv") {
		goarch = "arm"
		goarm = strings.TrimPrefix(arch, "armv")
	}

	env := map[string]string{
		"GOOS":        goos,
		"GOARCH":      goarch,
		"GOARM":       goarm,
		"GOTOOLCHAIN": "local", // Disable automatic downloads of toolchains for reproducible builds.
		"PLATFORM_ID": platformID,
	}

	if err := loadCompilerSettings(goos, arch, env); err != nil {
		return nil, fmt.Errorf("failed while loading compiler settings: %v", err)
	}

	return env, nil
}