-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
adaptation to rustbuild for openbsd #38451
Conversation
OpenBSD usually use an alternative compiler (`egcc') from ports. But the `ar' is unprefixed as it comes from base.
the backtrace test doesn't work on openbsd as it doesn't have support for libbacktrace without using filename.
the diff extends build_helper to provide an function to return the expected name of GNU-make on the host: "make" or "gmake". Fixes rust-lang#38429
The The implementation statically bound "gmake" to BSD and let "make" to others. Eventually, I could add the use of a variable |
I think I will keep some tests failing with vanilla configuration: the fact that A simple workaround is to have a directory in front of |
stdc++ is from base, and is an old library (GCC 4.2) estdc++ is from ports, and is a recent library (GCC 4.9 currently) as LLVM requires the newer version, use it if under OpenBSD.
ba025b2
to
2c39ee1
Compare
Looks good to me, thanks! When this is ready just lemme know and I'll r+ |
I have a failing test (check-std-all) that seems related to
|
hum. it could be my cargo binary that is too old. It is a 0.13.0. |
@alexcrichton it is ok now. My cargo was too old for correctly performing tests without errors. As side note, I found it is more and more complex to build rustc now. I hope to not having to port a new platform (full cross-compiling isn't always possible) due to interdependance of rustc and cargo (and libc which needs cargo too to properly check it). |
@semarie I'm not sure I understand the sentiment that building is more complex now? The only difference is that building the compiler requires Cargo now as opposed to just a previous rustc. Otherwise the build system should take care of everything. |
@bors: r+ In any case, changes look good to me! |
📌 Commit 2c39ee1 has been approved by |
If you already have "correct libc" + "rustc" + "cargo", there are no problem with the build system. But porting a new platform to Rust will require additionnal effort due to the interdependance of these three components. |
…ichton adaptation to rustbuild for openbsd Since the switch to rustbuild, the build for openbsd is broken: - [X] `ar` inference based on compiler name is wrong (OpenBSD usually use `egcc`, but `ear` doesn't exist) - [X] `make` isn't GNU-make under OpenBSD (and others BSD platforms) - [x] `stdc++` isn't the right stdc++ library to link with (it should be `estdc++`) - [x] corrects tests that don't pass anymore (problems related to rustbuild) r? @alexcrichton
Rollup of 29 pull requests - Successful merges: #37761, #38006, #38131, #38150, #38158, #38171, #38208, #38215, #38236, #38245, #38289, #38302, #38315, #38346, #38388, #38395, #38398, #38418, #38432, #38451, #38463, #38468, #38470, #38471, #38472, #38478, #38486, #38493, #38498 - Failed merges: #38271, #38483
A tweak was made to dependencies in rust-lang#38451 but the makefiles weren't updated to accompany this. Instead of trying to integerate the `build_helper` crate into the makefiles (which currently isn't present) this commit takes the approach of just duplicating the required logic, which should be small enough for now.
mk: Fix compile with makefiles A tweak was made to dependencies in #38451 but the makefiles weren't updated to accompany this. Instead of trying to integerate the `build_helper` crate into the makefiles (which currently isn't present) this commit takes the approach of just duplicating the required logic, which should be small enough for now.
A tweak was made to dependencies in rust-lang#38451 but the makefiles weren't updated to accompany this. Instead of trying to integerate the `build_helper` crate into the makefiles (which currently isn't present) this commit takes the approach of just duplicating the required logic, which should be small enough for now.
Since the switch to rustbuild, the build for openbsd is broken:
ar
inference based on compiler name is wrong (OpenBSD usually useegcc
, butear
doesn't exist)make
isn't GNU-make under OpenBSD (and others BSD platforms)stdc++
isn't the right stdc++ library to link with (it should beestdc++
)r? @alexcrichton