Date: Tue, 17 Mar 2020 19:25:20 +0000 (UTC) From: Piotr Kubaj <pkubaj@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r528599 - in head/lang/rust: . files/powerpc64-elfv2 Message-ID: <202003171925.02HJPK58078310@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pkubaj Date: Tue Mar 17 19:25:19 2020 New Revision: 528599 URL: https://svnweb.freebsd.org/changeset/ports/528599 Log: lang/rust: fix build on powerpc64 elfv2 After upgrade to LLVM 10, core in stage 1 fails to compile (no clear reason, rustc crashes): pid 26828 (rustc), jid 0, uid 0: exited on signal 11 (core dumped) Compilation with GCC works fine, so switch to GCC for the time being. PR: 244813 Approved by: mikael Added: head/lang/rust/files/powerpc64-elfv2/patch-src_bootstrap_native.rs (contents, props changed) head/lang/rust/files/powerpc64-elfv2/patch-src_librustc__llvm_build.rs (contents, props changed) Modified: head/lang/rust/Makefile Modified: head/lang/rust/Makefile ============================================================================== --- head/lang/rust/Makefile Tue Mar 17 19:23:14 2020 (r528598) +++ head/lang/rust/Makefile Tue Mar 17 19:25:19 2020 (r528599) @@ -92,7 +92,7 @@ EXTRA_PATCHES+= ${PATCHDIR}/libgit2 EXTRA_PATCHES+= ${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX} .endif -.if ${ARCH} == powerpc64 && ${PPC_ABI} == ELFv1 +.if ${ARCH} == powerpc64 # The bootstrap is hardcoded to use gcc9 # but we can build with a newer or older compiler as provided by USE_GCC=yes BUILD_DEPENDS+= gcc9:lang/gcc9 Added: head/lang/rust/files/powerpc64-elfv2/patch-src_bootstrap_native.rs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/rust/files/powerpc64-elfv2/patch-src_bootstrap_native.rs Tue Mar 17 19:25:19 2020 (r528599) @@ -0,0 +1,13 @@ +--- src/bootstrap/native.rs.orig 2019-11-04 15:45:21 UTC ++++ src/bootstrap/native.rs +@@ -241,6 +241,10 @@ impl Step for Llvm { + } + } + ++ if target == "powerpc64-unknown-freebsd" { ++ cfg.define("CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath=/usr/local/lib/%CC% -L/usr/local/lib/%CC%"); ++ } ++ + // http://llvm.org/docs/HowToCrossCompileLLVM.html + if target != builder.config.build && !emscripten { + builder.ensure(Llvm { Added: head/lang/rust/files/powerpc64-elfv2/patch-src_librustc__llvm_build.rs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/rust/files/powerpc64-elfv2/patch-src_librustc__llvm_build.rs Tue Mar 17 19:25:19 2020 (r528599) @@ -0,0 +1,18 @@ +--- src/librustc_llvm/build.rs.orig 2019-12-16 15:38:05 UTC ++++ src/librustc_llvm/build.rs +@@ -273,7 +273,14 @@ fn main() { + }; + + // C++ runtime library +- if !target.contains("msvc") { ++ if target == "powerpc64-unknown-freebsd" { ++ if is_crossed { ++ println!("cargo:rustc-link-search=native=%WRKDIR%/usr/local/lib/%CC%"); ++ } else { ++ println!("cargo:rustc-link-search=native=/usr/local/lib/%CC%"); ++ } ++ println!("cargo:rustc-link-lib=static=stdc++"); ++ } else if !target.contains("msvc") { + if let Some(s) = llvm_static_stdcpp { + assert!(!cxxflags.contains("stdlib=libc++")); + let path = PathBuf::from(s);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003171925.02HJPK58078310>