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

proc_macro_link fails on nightly #148

Closed
xd009642 opened this issue Sep 10, 2018 · 7 comments
Closed

proc_macro_link fails on nightly #148

xd009642 opened this issue Sep 10, 2018 · 7 comments
Labels
bug Cargo Issues relating to cargo integration/usage

Comments

@xd009642
Copy link
Owner

Unfortunately, due to some changes coming in proc-macro2 dtolnay/proc-macro2#132 and issues with cargo lock files #147 tarpaulin is going to be moving to nightly only. I forgot I ignored errors in nightly so when I switched travis to be only nightly found that proc_macro_link now fails on nightly 😢

@yodaldevoid I know I always bug you with linker based issues but I did a git blame and saw you added the test and I have only a vague recollection of it. So if you don't mind helping out that would be appreciated 👍

@yodaldevoid
Copy link
Contributor

I see that the output from proc_macro_link does not print out the crate compilation error in full, so I am going to have to take some time later to dig into this. I can probably take a look at this in a couple days.

For background on the test, this test was added as part of the never-ending linking issues stemming from PIE. Proc macros were a problem as when we were still passing --no-pie ourselves it applied to the proc macro crate as well as the normal crates despite proc macros needing to be compiled with PIE (in most modern systems at least). This test simply makes sure that we don't break crates relying on proc macros in the future.

@xd009642
Copy link
Owner Author

I've gotten a bit deeper into it, it actually seems to be an issue caused by my Cargo dependency being out of date. I'm updating it now and seeing if that fixes it, if it doesn't and it is a linker issue I'll ping you again 👍

Ah thanks for refreshing my mind, I did twig today it was for testing crates that use proc-macro build I forgot about all the --no-pie faff though

@xd009642
Copy link
Owner Author

Just confirmed it was the cargo dependency being out of date given a cargo.toml change I did recently. No coverage results returned currently with the update but that's a different kettle of fish..

@xd009642 xd009642 added Cargo Issues relating to cargo integration/usage and removed compiler or linker bug labels Sep 12, 2018
@xd009642
Copy link
Owner Author

Fixed this and it's now in develop!

@softprops
Copy link

What's the recommended ci path for installing on stable? I think I'm caught on this same error

@xd009642
Copy link
Owner Author

So syn made some changes that mean it won't compile on 1.29 stable with the features I use. So Rust 1.28 and tarpaulin 0.6.6. But because publishing the lockfiles is an unstable feature of cargo to prevent getting a newer version of proc-macro2 which breaks my source analysis you'd have to actually pull the git repo and build it yourself.

Or use one of the old docker images (speaking of which just realised I needed to update my dockerfile for 0.6.7 release)

@softprops
Copy link

Cool. I'll try pinning to 1.28 for now. Thanks @xd009642 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Cargo Issues relating to cargo integration/usage
Projects
None yet
Development

No branches or pull requests

3 participants