Skip to content

Add release and develop flags to configure #17665

Description

@nrc

The set of flags for building rustc is getting bigger and the configuration for a release build versus something useful for developing is diverging.

We should add two flags to make --release and --develop which are umbrella flags of sensible sets of flags. A release build should be make the optimal compiler and develop should balance compile time, debug info, and optimisation.

--develop should not be no-debug (i.e., include logging), should build jemalloc in debug mode, have all asserts on in llvm, should be an O2 build (I think, cc @epdtry), and should use parallel builds with 4 threads.

--release should be no-debug (see #17496), should build release versions of jemalloc and llvm, should be O3, and should not use parallel builds.

Setting any individual flags should override these settings.

Open questions: should --develop include debuginfo by default? (Does this even work at the moment, I know there have been bugs recently. cc @michaelwoerister)

Are there other flags that should be set?

Can we do this as proposed? I assume configure can set different defaults for make. (cc @alexcrichton)

Which should be the default? (Or should the user be forced to specify one or the other). I think @thestinger has made a good argument elsewhere that --release should be the default since it is more unfortunate if a packager makes a mistake than a developer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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