People may have noticed that I was hoping to propose that we update rustc to 1.45.0 for our 10.0 release. I've now dropped that hope.
For 1.45.0 my thinking was: i) it's current. ii) it might stop us having to upgrade for a while (from current packages, librsvg will be what probaby forces that). iii) it fixed a longstanding rust issue which could cause undefined behaviour: https://blog.rust-lang.org/2020/07/16/Rust-1.45.0.html (not bad for a compiler which claims to be safe except when using items labelled as unsafe). I also noted that thunderbird-78.0.1 failed to build for me using gcc (an error from rust that a combination of clang flags were incompatible) - people using clang had already hit that, and gentoo had a sed for (I think) firefox. So, on my current experimental build (same packages and optimizations as last weekend except for kernel headers, binutils-2.35, gcc-10.2.0, llvm-11.0.0RC1) I was expecting to look at this. But neither our current rustc-1.42.0, nor rustc-1.45.0, can be built with that llvm rc. The error from 1.42.0 started like this (and 1.45.0 looked similar): running: "c++" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-march=native" "-fstack-clash-protection" "-D_FORTIFY_SOURCE=2" "-fstack-protector-strong" "-I/usr/include" "-std=c++14" "-fno-exceptions" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_AMDGPU" "-DLLVM_COMPONENT_ASMPARSER" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_INSTRUMENTATION" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LINKER" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_X86" "-DNDEBUG" "-o" "/scratch/working/rustc-1.42.0-src/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-b716d70709b7ebd7/out/../rustllvm/PassWrapper.o" "-c" "../rustllvm/PassWrapper.cpp" cargo:warning=In file included from /usr/include/llvm/IR/Use.h:29, cargo:warning= from /usr/include/llvm/IR/User.h:23, cargo:warning= from /usr/include/llvm/IR/Constant.h:16, cargo:warning= from /usr/include/llvm/IR/Metadata.h:29, cargo:warning= from /usr/include/llvm/IR/TrackingMDRef.h:16, cargo:warning= from /usr/include/llvm/IR/DebugLoc.h:17, cargo:warning= from /usr/include/llvm/IR/Instruction.h:22, cargo:warning= from /usr/include/llvm/IR/BasicBlock.h:22, cargo:warning= from /usr/include/llvm/IR/IRBuilder.h:22, cargo:warning= from ../rustllvm/rustllvm.h:9, cargo:warning= from ../rustllvm/PassWrapper.cpp:6: cargo:warning=../rustllvm/PassWrapper.cpp: In function 'T* unwrap(LLVMPassManagerBuilderRef)': cargo:warning=../rustllvm/PassWrapper.cpp:43:1: error: call of overloaded 'unwrap(LLVMOpaquePassManagerBuilder*&)' is ambiguous From that I conclude that current versions of rustc with llvm-11 will need their shipped llvm, which is slow and large to build (on this system, 1.42.0 with its shipped llvm took 40.8 SBU and installed 394.3 MiB on this 8-thread machine, against 34.3 SBU and 250.8 MiB for a build from the beginning of June - both without running the tests). Meanwhile, rustc-1.45.1 is out, but the release notes https://blog.rust-lang.org/2020/07/30/Rust-1.45.1.html do not mention llvm-11. The 1.46.0 release is expected to be after 15th April and llvm-11 probably won't be released until September. So I doubt that anyone will fix rustc for building with sysllvm in the near future. Therefore, for our 10.0 release rustc-1.42.0 looks like the way to go. ĸen -- +++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++ - Hogfather -- http://lists.linuxfromscratch.org/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page