semarie / build-rust

Script helper for building rustc and cargo from source on OpenBSD (without rustup)
59 stars 15 forks source link

Build fails on OpenBSD 6.6 release #15

Closed paulfariello closed 4 years ago

paulfariello commented 4 years ago

Trying to build rust nightly on OpenBSD 6.6 release fails with the following logs:

   Compiling bootstrap v0.0.0 (/home/needle/build/build-rust/build_dir/rustc-beta-src/src/bootstrap)
error[E0658]: use of unstable library feature 'inner_deref': newly added
   --> src/bootstrap/flags.rs:605:39
    |                                                                          
605 |     match matches.opt_str("warnings").as_deref() {
    |                                       ^^^^^^^^
    |                                                                                                                                                          
    = note: for more information, see https://github.com/rust-lang/rust/issues/50264
    = help: add `#![feature(inner_deref)]` to the crate attributes to enable   

error[E0658]: use of unstable library feature 'inner_deref': newly added
   --> src/bootstrap/native.rs:707:32
    |                                                                                                                                                          
707 |             Ok(h) => self.hash.as_deref().unwrap_or(b"") == h.as_slice(), 
    |                                ^^^^^^^^
    |                                                                                                                                                          
    = note: for more information, see https://github.com/rust-lang/rust/issues/50264
    = help: add `#![feature(inner_deref)]` to the crate attributes to enable

error[E0658]: use of unstable library feature 'inner_deref': newly added
   --> src/bootstrap/native.rs:729:41
    |                                                                          
729 |         fs::write(&self.path, self.hash.as_deref().unwrap_or(b""))
    |                                         ^^^^^^^^                                                                                                         
    |                                                                                                                                                          
    = note: for more information, see https://github.com/rust-lang/rust/issues/50264
    = help: add `#![feature(inner_deref)]` to the crate attributes to enable

error[E0599]: no method named `map_or` found for type `std::result::Result<std::string::String, std::env::VarError>` in the current scope
   --> src/bootstrap/util.rs:256:33
    |                                                                          
256 |         if env::var("TF_BUILD").map_or(false, |e| e == "True") {                                                                                         
    |                                 ^^^^^^ help: there is a method with a similar name: `map_err`

error[E0599]: no method named `map_or` found for type `std::result::Result<std::string::String, std::env::VarError>` in the current scope
   --> src/bootstrap/util.rs:258:46
    |                                                                                                                                                          
258 |         } else if env::var("GITHUB_ACTIONS").map_or(false, |e| e == "true") {                             
    |                                              ^^^^^^ help: there is a method with a similar name: `map_err`

error: aborting due to 5 previous errors                                       

Some errors have detailed explanations: E0599, E0658.            
For more information about an error, try `rustc --explain E0599`.                                                                                              
error: Could not compile `bootstrap`.

Local version of rust is 1.38:

# pkg_info rust                                                                                                                                         
Information for inst:rust-1.38.0

Reading #13, it seems that 1.40 is supposed to be used to build beta. Can this be stated in the README?

semarie commented 4 years ago

I will look to make the build abort if the required compiler isn't present