Skip to content

x/build: run race-enabled toolchain #19962

Description

@josharian

The compiler already has a concurrent lexer and parser, and it will soon have a concurrent backend. We should have a fast builder running a race-enabled version of the toolchain to catch data races.

I have in mind something like this (very rough sketch):

$ ./all.bash  # instead of doing 'go install cmd' after bootstrapping, do 'go install -race cmd'
$ for all-platforms-like-misc-compile; do go build -a std cmd; done

This would provide race detector coverage for normal and error conditions, plus all the assemblers. Ideally "all platforms" would ultimately also end up including some variations like -shared, -dynlink, -race, -msan, etc.

There might also be some extra flags to add somewhere to ramp up the concurrency, to try to flush out races.

This is clearly not fully thought out yet. :) Step one is to get a basic builder going and make it easy to improve.

I'm happy to do the legwork on this, but I'll need some help and direction, I fear.

@bradfitz @adams-sarah

Metadata

Metadata

Assignees

No one assigned

    Labels

    Buildersx/build issues (builders, bots, dashboards)NeedsFixThe path to resolution is known, but the work has not been done.new-builder

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions