git: f0ee4a852421 - main - lang/rust: fix build on armv7 the same way as for powerpc
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 24 Nov 2022 18:23:14 UTC
The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=f0ee4a8524218edb81fe0be3fce56b7f15b2dae1 commit f0ee4a8524218edb81fe0be3fce56b7f15b2dae1 Author: Piotr Kubaj <pkubaj@FreeBSD.org> AuthorDate: 2022-11-24 18:02:15 +0000 Commit: Piotr Kubaj <pkubaj@FreeBSD.org> CommitDate: 2022-11-24 18:17:45 +0000 lang/rust: fix build on armv7 the same way as for powerpc --- lang/rust/Makefile | 7 ++-- .../rust/files/patch-compiler_rustc__llvm_build.rs | 42 ++++++++++++++++++++++ .../powerpc/patch-compiler_rustc__llvm_build.rs | 29 --------------- 3 files changed, 47 insertions(+), 31 deletions(-) diff --git a/lang/rust/Makefile b/lang/rust/Makefile index 19b7cc66e748..48abb4cb624f 100644 --- a/lang/rust/Makefile +++ b/lang/rust/Makefile @@ -111,12 +111,15 @@ IGNORE= is only for FreeBSD .if ${ARCH} == powerpc # bfd to link rustc_driver; lld currently can't BUILD_DEPENDS+= ld.bfd:devel/binutils -LIB_DEPENDS+= libatomic.so:lang/gcc${GCC_DEFAULT} -MAKE_ENV+= RUSTFLAGS="-L/usr/local/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= RUST_BACKTRACE=1 .endif +.if ${ARCH} == armv7 || ${ARCH} == powerpc +LIB_DEPENDS+= libatomic.so:lang/gcc${GCC_DEFAULT} +MAKE_ENV+= RUSTFLAGS="-L/usr/local/lib/gcc${GCC_DEFAULT}" +.endif + # rls doesn't build on rust nightly # rls needs 64-bit atomics: it doesn't build on powerpc .if !defined(NIGHTLY_DATE) && ${ARCH} != powerpc diff --git a/lang/rust/files/patch-compiler_rustc__llvm_build.rs b/lang/rust/files/patch-compiler_rustc__llvm_build.rs new file mode 100644 index 000000000000..4509c7b9d54c --- /dev/null +++ b/lang/rust/files/patch-compiler_rustc__llvm_build.rs @@ -0,0 +1,42 @@ +From cbeec86a5594ef6ca36d0ea24b4cb7e3dbaded87 Mon Sep 17 00:00:00 2001 +From: pkubaj <pkubaj@FreeBSD.org> +Date: Fri, 18 Nov 2022 12:36:49 +0000 +Subject: [PATCH] Fix build on powerpc-unknown-freebsd + +Probably also fixes build on arm and mips*. Related to https://github.com/rust-lang/rust/issues/104220 +--- + compiler/rustc_llvm/build.rs | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs +index d35e4191cc0b1..afdf9ac8883e9 100644 +--- compiler/rustc_llvm/build.rs ++++ compiler/rustc_llvm/build.rs +@@ -237,18 +237,21 @@ fn main() { + + if !is_crossed { + cmd.arg("--system-libs"); +- } else if target.contains("windows-gnu") { +- println!("cargo:rustc-link-lib=shell32"); +- println!("cargo:rustc-link-lib=uuid"); +- } else if target.contains("netbsd") || target.contains("haiku") || target.contains("darwin") { +- println!("cargo:rustc-link-lib=z"); +- } else if target.starts_with("arm") ++ } ++ ++ if target.starts_with("arm") + || target.starts_with("mips-") + || target.starts_with("mipsel-") + || target.starts_with("powerpc-") + { + // 32-bit targets need to link libatomic. + println!("cargo:rustc-link-lib=atomic"); ++ println!("cargo:rustc-link-lib=z"); ++ } else if target.contains("windows-gnu") { ++ println!("cargo:rustc-link-lib=shell32"); ++ println!("cargo:rustc-link-lib=uuid"); ++ } else if target.contains("netbsd") || target.contains("haiku") || target.contains("darwin") { ++ println!("cargo:rustc-link-lib=z"); + } + cmd.args(&components); + diff --git a/lang/rust/files/powerpc/patch-compiler_rustc__llvm_build.rs b/lang/rust/files/powerpc/patch-compiler_rustc__llvm_build.rs deleted file mode 100644 index efe5542e0e1b..000000000000 --- a/lang/rust/files/powerpc/patch-compiler_rustc__llvm_build.rs +++ /dev/null @@ -1,29 +0,0 @@ ---- compiler/rustc_llvm/build.rs.orig 2022-11-15 08:26:08.366900000 +0100 -+++ compiler/rustc_llvm/build.rs 2022-11-15 08:29:07.101616000 +0100 -@@ -235,20 +235,18 @@ fn main() { - let mut cmd = Command::new(&llvm_config); - cmd.arg(llvm_link_arg).arg("--libs"); - -- if !is_crossed { -+ if target.starts_with("arm") -+ || target.starts_with("powerpc-") -+ { -+ println!("cargo:rustc-link-lib=atomic"); -+ println!("cargo:rustc-link-lib=z"); -+ } else if !is_crossed { - cmd.arg("--system-libs"); - } else if target.contains("windows-gnu") { - println!("cargo:rustc-link-lib=shell32"); - println!("cargo:rustc-link-lib=uuid"); - } else if target.contains("netbsd") || target.contains("haiku") || target.contains("darwin") { - println!("cargo:rustc-link-lib=z"); -- } else if target.starts_with("arm") -- || target.starts_with("mips-") -- || target.starts_with("mipsel-") -- || target.starts_with("powerpc-") -- { -- // 32-bit targets need to link libatomic. -- println!("cargo:rustc-link-lib=atomic"); - } - cmd.args(&components); -