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

rustbuild: Update cross-compilers for FreeBSD #43530

Merged
merged 1 commit into from
Jul 29, 2017

Conversation

alexcrichton
Copy link
Member

When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD
cross compilers we're currently using are unable to build LLVM, failing with
references to the function std::to_string claiming it doesn't exist. I don't
actually know what this function is, but assuming that it was added in a more
recent version of a C++ standard I've updated the gcc versions for the
toolchains we're using. This made the error go away!

When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD
cross compilers we're currently using are unable to build LLVM, failing with
references to the function `std::to_string` claiming it doesn't exist. I don't
actually know what this function is, but assuming that it was added in a more
recent version of a C++ standard I've updated the gcc versions for the
toolchains we're using. This made the error go away!
@alexcrichton
Copy link
Member Author

r? @Mark-Simulacrum

cc @TimNN

@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@TimNN TimNN mentioned this pull request Jul 28, 2017
43 tasks
@Mark-Simulacrum
Copy link
Member

I'm somewhat concerned if this is reducing how far back our support for FreeBSD goes. Otherwise though seems fine (though I also know nothing about this function).

@alexcrichton
Copy link
Member Author

Oh sure yeah, to clarify I don't think this will impact our compatibility. We're just using a newer gcc/g++, not a newer libc or a different OS version. The one piece we need at runtime, libstdc++, is linked statically into the compiler. In that sense all our CI gcc/g++ versions are mostly picked at random, we should always be able to use the newest one in theory!

Now binutils and libc, that's where things get interesting. Thankfully though we don't need updates to those.

@cuviper
Copy link
Member

cuviper commented Jul 28, 2017

Note that libgcc_s.so can also cause a versioned dependency, though not as often. e.g. on Fedora 26 x86_64 that library has a recent __divmodti4@@GCC_7.0.0, but the next before that is a much older __cpu_model@GCC_4.8.0.

@alexcrichton
Copy link
Member Author

Ah good point! In that sense I don't know what this does to our runtime dependency. I can try to bisect what version of gcc is actually needed but I can't help but feel like that's a bit overkill...

@Mark-Simulacrum
Copy link
Member

I'm happy as-is I think. We have at least some active users of FreeBSD on nightly (I know, I broke them recently with the rustbuild changes) so I'm hopeful we'll notice quickly. Maybe we can also spin up a relatively old VM with freebsd and install stable and nightly rust after this lands.

@cuviper
Copy link
Member

cuviper commented Jul 28, 2017

I don't know what this does to our runtime dependency.

If you have the new build to look at, try: readelf --dyn-syms [files...] | grep @GCC. If there's nothing new, then we're free and clear!

To the original issue, I have no idea why std::to_string would be giving trouble. You're still using only GCC-4.8 on the x86-linux builders, even with your LLVM5 update, right?

@alexcrichton
Copy link
Member Author

@cuviper oh awesome, thanks for the command! Looks like we're all good as everything's the same as it was before.

You're still using only GCC-4.8 on the x86-linux builders, even with your LLVM5 update, right?

Indeed! That one even passed. No idea what's going on there...

@alexcrichton
Copy link
Member Author

@bors: r=Mark-Simulacrum,cuviper

@bors
Copy link
Contributor

bors commented Jul 29, 2017

📌 Commit 122fd18 has been approved by Mark-Simulacrum,cuviper

@bors
Copy link
Contributor

bors commented Jul 29, 2017

⌛ Testing commit 122fd18 with merge 91aff57...

bors added a commit that referenced this pull request Jul 29, 2017
…Simulacrum,cuviper

rustbuild: Update cross-compilers for FreeBSD

When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD
cross compilers we're currently using are unable to build LLVM, failing with
references to the function `std::to_string` claiming it doesn't exist. I don't
actually know what this function is, but assuming that it was added in a more
recent version of a C++ standard I've updated the gcc versions for the
toolchains we're using. This made the error go away!
@bors
Copy link
Contributor

bors commented Jul 29, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: Mark-Simulacrum,cuviper
Pushing 91aff57 to master...

@bors bors merged commit 122fd18 into rust-lang:master Jul 29, 2017
@alexcrichton alexcrichton deleted the update-freebsd-compilers branch August 22, 2017 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants