Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to clang-sys 1.0.0 #1826

Merged
merged 2 commits into from
Aug 18, 2020
Merged

Conversation

KyleMayes
Copy link
Contributor

@KyleMayes KyleMayes commented Jul 14, 2020

First, an update:

Due to issues where incompatible versions of clang-sys pulled in by different versions of bindgen would be rejected by Cargo due to duplicate package.links Cargo manifest keys, I have today published the following patch releases for previous minor versions of clang-sys so that they can co-exist peacefully (for more info, see this issue):

  • v0.29.4
  • v0.28.2
  • v0.27.1

However, this was accomplished with a hack, essentially republishing clang-sys under a different name (clang-sys-linkage) as v1.0.0 and then re-exporting that crate from the above patch versions.

EDIT: Unfortunately the above strategy did not work due to API incompatibilities I was not aware of.

Going forward, clang-sys has been published as v1.0.0 so that future additions to the API can be added in a backwards-compatible way (since 1.0.0 and 1.1.0 are compatible but v0.29.0 and v0.30.0 are not) so that users will eventually not ever have multiple versions of clang-sys in their dependency tree.

The bump to v1.0.0 also includes these changes:

  • warnings from the clang-sys build script about llvm-config failing to execute are no longer printed unless the build script fails to find an instance of libclang
  • update libloading version to 0.6.0 since 0.5.0 was causing some people problems
  • Clang 10 support (which is almost entirely new OpenMP enum values, not very exciting)

@kulp
Copy link
Member

kulp commented Jul 14, 2020

It looks as if libloading 0.6.0 requires at least Rust 1.40.0 due to non-exhaustive enums. That seems like a big jump for MSRV from our current 1.34.0, although @emilio has also said we could update the MSRV of bindgen.

@emilio
Copy link
Contributor

emilio commented Jul 20, 2020

Yeah, let's update the MSRV here if you want, let me know if you need help with it.

This looks great otherwise, thanks for your work in clang-sys @KyleMayes!

The libloading crate is used for runtime linking
and since 0.6.0 it has a MSRV of 1.40.0
@KyleMayes
Copy link
Contributor Author

Updated MSRV to 1.40.0 and the tests are passing now.

Copy link
Contributor

@emilio emilio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants