Skip to content

Allow windows-targets to use the raw-dylib feature on newer rust versions by default #3494

@silverstillisntgold

Description

@silverstillisntgold

Suggestion

Rust 1.71 fully stabilized the raw-dylib feature. Currently, windows-targets will only use this feature when the windows_raw_dylib build flag is set, but I suspect most consumers of windows-targets are using downstream crates and are probably never going to go through the docs to see that this flag should be set on systems with newer rust versions. And it's not realistic to expect them to, I only happened to discover this behavior after stumbling across a random closed issue in a crate that uses windows-targets. Ideally, linking would always be done through raw-dylib when any rustc version supporting it is available.

My understanding is that this should be trivial to do with a simple build script to enable windows_raw_dylib when the rustc version is new enough. This would increase the work cargo has to do, but would also remove the need for linking against the provided static libraries, which should be a net win in compile times and binary sizes.

If this were to be done, would there be a need to provide some other config flag for users to disable the use of raw-dylib? Or is it generally better to use it if it's available? Maybe there's a benefit to bringing in the libraries that I'm unaware of.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions