-
Notifications
You must be signed in to change notification settings - Fork 26
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
Fix compile error on Windows with Rust 1.70 #285
Fix compile error on Windows with Rust 1.70 #285
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I don't know how you figured this out though.. Absolutely amazing.
Also it is a windows only phenomenon.
Thanks, I wrote some explanation on extendr/extendr#559. But I'm yet to figure out what this indicates.
|
It seems it indicates some incompatibility between compilers. https://stackoverflow.com/questions/25161814/warning-corrupt-drectve-at-end-of-def-file There are two possibilities:
I think 2. is unlikely. If it were true, things should break more badly. So I guess 1 is the cause. LLVM was upgraded to version 16 in Rust 1.70. The attempt to upgrade LLVM to version 16 failed once for some reason. We may be able to find some context in this lengthy thread (I mean, I don't read this yet...). |
Hmm, no. rust-lang/rust#109474 says it was "ABI-incompatibility between libstdc++ 7 and 8," so it seems unrelated. |
This one? |
Minimal reproducible example https://github.com/yutannihilation/rust170_gnu_warning |
Looks like an LLVM thing that Yutani linked above. Should we raid llvm issues and ask there? |
Thanks, I think this is primarily Rust's issue. I'll report this to Rust's repo after waiting for a while to get answers in the user forum. I'd appreciate if you ask to LLVM's side! Note that, I'm afraid this warning won't be resolved because this is what we can just ignore, no real harm, iiuc. But it probably means Rust package will be kicked out from CRAN... |
Hopefully the version will be skipped as Rust on Windows in CRAN does not seem to be updated frequently...... |
Yeah, but Jeroen said CRAN already used Rust 1.69, which was the latest at the moment, so I'm not sure if we can be that optimistic. |
Reported: rust-lang/rust#112368 |
Rust 1.70 has introduced some possible issues between LLVM and gcc causing link errors that are fixed by explicitly adding -lntdll. Thanks to extendr/rextendr#285 for the fix.
Rust 1.70 has introduced some possible issues between LLVM and gcc causing link errors that are fixed by explicitly adding -lntdll. Thanks to extendr/rextendr#285 for the fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep.
This reverts commit adc2109.
Rust 1.70 has introduced some possible issues between LLVM and gcc causing link errors that are fixed by explicitly adding -lntdll. Thanks to extendr/rextendr#285 for the fix.
Rust 1.70 has introduced some possible issues between LLVM and gcc causing link errors that are fixed by explicitly adding -lntdll. Thanks to extendr/rextendr#285 for the fix.
@CGMossa @Ilia-Kosenkov |
Since this change seems important, could you please do a new patch release? |
Is this change so important? We hard-coded a dependency which is only needed if you run Rust 1.70 during compilation. |
I think it would be frustrating especially for new users that their first R package using
|
To be clear, I think this compilation error is a critical problem. That's why I tried so hard to investigate the cause and find the fix as soon as possible. What I'm not sure is how important this rextendr's template is. I use my own version of |
I simply hate any friction that may occur with fresh new users. While I think we should issue a patch, it could be that we should give it a week or so, just go be on the safe side. But we cannot have a an issue for those who install latest r, latest rtools, latest rust.. |
Just for information, I have been told that R actually checks to see if it is within a week of the last release and if there have been less than 6 releases in the past 6 months. |
Oh, I didn't know this, thanks. |
Funny that in the modern era of CI CD you have 6 releases per year on CRAN. I suggest we wait a week and I will make a patch release with a comment that we updated templates to align with latest rust release |
@Ilia-Kosenkov Now that a week has passed, perhaps a new release can be made? Thanks. |
Since Rust on GitHub Actions is currently 1.70 by default, this problem occurs. |
@eitsupi |
Simply because I myself suffered a lot from extendr's (at the time) existing templates not working. |
I see. I agree it's really frustrating. |
I will do this on Monday if that is OK for you. |
Fix extendr/extendr#559