Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F170838432
D26711.id77987.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
10 KB
Referenced Files
None
Subscribers
None
D26711.id77987.diff
View Options
Index: lang/rust-bootstrap/Makefile
===================================================================
--- lang/rust-bootstrap/Makefile
+++ lang/rust-bootstrap/Makefile
@@ -6,6 +6,7 @@
MASTER_SITES= https://static.rust-lang.org/dist/:rust \
LOCAL/tobik:armbase \
LOCAL/tobik:base \
+ LOCAL/bdragon:ppc64lebase \
https://download.freebsd.org/ftp/${_RUST_FBSD_SUBDIR_${FLAVOR}}/:base \
LOCAL/tobik:powerpc64_gcc
# http://pkg.freebsd.org/FreeBSD:12:powerpc64/quarterly/All/gcc9-9.2.0.txz?dummy=/:powerpc64_gcc
@@ -29,7 +30,7 @@
gmake:devel/gmake \
rust>=${PORTVERSION}:lang/rust
-FLAVORS= aarch64 amd64 armv6 armv7 i386 powerpc64_elfv1 powerpc64_elfv2
+FLAVORS= aarch64 amd64 armv6 armv7 i386 powerpc64_elfv1 powerpc64_elfv2 powerpc64le
FLAVOR?= ${FLAVORS:[1]}
aarch64_PKGNAMEPREFIX= aarch64-
@@ -40,6 +41,7 @@
powerpc64_elfv1_PKGNAMEPREFIX= powerpc64-elfv1-
powerpc64_elfv1_BUILD_DEPENDS= powerpc64-gcc9>0:devel/freebsd-gcc9@powerpc64
powerpc64_elfv2_PKGNAMEPREFIX= powerpc64-elfv2-
+powerpc64le_PKGNAMEPREFIX= powerpc64le-
USES= perl5 python:3.3+,build tar:xz
.if ${FLAVOR} == powerpc64_elfv1
@@ -61,21 +63,25 @@
_RUST_FBSD_DIST_powerpc64_elfv1= FreeBSD-${_RUST_FBSD_VER}-powerpc64-elfv1${EXTRACT_SUFX}:base \
FreeBSD-${_RUST_FBSD_VER}-powerpc64-elfv1-gcc9-9.2.0${EXTRACT_SUFX}:powerpc64_gcc
_RUST_FBSD_DIST_powerpc64_elfv2= FreeBSD-${_RUST_FBSD_VER}-powerpc64-elfv2-r356261${EXTRACT_SUFX}:base
+_RUST_FBSD_DIST_powerpc64le= FreeBSD-${_RUST_FBSD_VER}-powerpc64le-r366300${EXTRACT_SUFX}:ppc64lebase
_RUST_FBSD_VER= ${_RUST_FBSD_VER_${FLAVOR}:U11.3-RELEASE}
_RUST_FBSD_VER_armv7= 12.1-RELEASE
_RUST_FBSD_VER_powerpc64_elfv1= 12.1-RELEASE
_RUST_FBSD_VER_powerpc64_elfv2= 13.0-CURRENT
+_RUST_FBSD_VER_powerpc64le= 13.0-CURRENT
_RUST_FBSD_SUBDIR_aarch64= releases/arm64/${_RUST_FBSD_VER}/base.txz?dummy=
_RUST_FBSD_SUBDIR_amd64= releases/amd64/${_RUST_FBSD_VER}/base.txz?dummy=
_RUST_FBSD_SUBDIR_i386= releases/i386/${_RUST_FBSD_VER}/base.txz?dummy=
_RUST_FBSD_SUBDIR_powerpc64_elfv1= releases/powerpc/powerpc64/${_RUST_FBSD_VER}/base.txz?dummy=
_RUST_FBSD_SUBDIR_powerpc64_elfv2= snapshots/powerpc/powerpc64/${_RUST_FBSD_VER}/base.txz?dummy=
+_RUST_FBSD_SUBDIR_powerpc64le= snapshots/powerpc/powerpc64le/${_RUST_FBSD_VER}/base.txz?dummy=
_CARGO_VENDOR_DIR= ${WRKSRC}/vendor
_RUST_ARCH_amd64= x86_64
_RUST_ARCH_i386= i686
_RUST_ARCH_powerpc64_elfv1= powerpc64
_RUST_ARCH_powerpc64_elfv2= powerpc64
+_RUST_ARCH_powerpc64le= powerpc64le
_RUST_HOST= ${_RUST_ARCH_${ARCH}:U${ARCH}}-unknown-${OPSYS:tl}
_RUST_TARGET= ${_RUST_ARCH_${FLAVOR}:U${FLAVOR}}-unknown-${OPSYS:tl}
_RUST_LLVM_TARGET= ${_RUST_LLVM_TARGET_${FLAVOR}}
@@ -86,6 +92,7 @@
_RUST_LLVM_TARGET_i386= X86
_RUST_LLVM_TARGET_powerpc64_elfv1= PowerPC
_RUST_LLVM_TARGET_powerpc64_elfv2= PowerPC
+_RUST_LLVM_TARGET_powerpc64le= PowerPC
_RUST_LLVM_TRIPLE= ${_RUST_LLVM_TRIPLE_${FLAVOR}:U${_RUST_TARGET}}
_RUST_LLVM_TRIPLE_armv6= armv6-gnueabihf-freebsd
_RUST_LLVM_TRIPLE_armv7= armv7-gnueabihf-freebsd
Index: lang/rust-bootstrap/distinfo
===================================================================
--- lang/rust-bootstrap/distinfo
+++ lang/rust-bootstrap/distinfo
@@ -17,3 +17,5 @@
SIZE (FreeBSD-12.1-RELEASE-powerpc64-elfv1-gcc9-9.2.0.tar.xz) = 38150240
SHA256 (FreeBSD-13.0-CURRENT-powerpc64-elfv2-r356261.tar.xz) = db762f136e41dd3c6676d6dc104282be6d6d6684afb348506fc44ceccd43ce17
SIZE (FreeBSD-13.0-CURRENT-powerpc64-elfv2-r356261.tar.xz) = 150455928
+SHA256 (FreeBSD-13.0-CURRENT-powerpc64le-r366300.tar.xz) = a828a3a968c9911655148fa080587ecd7673aa3d58588ed3dafa55a5c2e12dd3
+SIZE (FreeBSD-13.0-CURRENT-powerpc64le-r366300.tar.xz) = 167748612
Index: lang/rust/Makefile
===================================================================
--- lang/rust/Makefile
+++ lang/rust/Makefile
@@ -8,6 +8,7 @@
MASTER_SITES= https://static.rust-lang.org/dist/:src \
https://dev-static.rust-lang.org/dist/:src \
LOCAL/tobik/rust:bootstrap \
+ LOCAL/bdragon/rust:bootstrap \
https://static.rust-lang.org/dist/:bootstrap
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
DISTFILES?= ${NIGHTLY_DATE:D${NIGHTLY_DATE}/}${DISTNAME}${EXTRACT_SUFX}:src \
@@ -25,7 +26,9 @@
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
IGNORE_FreeBSD_11_powerpc64= is missing a bootstrap for FreeBSD 11.x powerpc64
-ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64
+IGNORE_FreeBSD_11_powerpc64le= is nonsensical due to platform nonexistence
+
+ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
ONLY_FOR_ARCHS_REASON?= requires prebuilt bootstrap compiler
BUILD_DEPENDS= cmake:devel/cmake \
@@ -67,6 +70,11 @@
RUST_BOOTSTRAP_VERSION?= 1.45.2
CARGO_BOOTSTRAP_VERSION?= 0.46.1
+# Temporary out-of-cycle bootstrap for 1.46.0.
+# Remove this after the next cycle.
+RUST_BOOTSTRAP_VERSION_powerpc64le?= 1.46.0
+CARGO_BOOTSTRAP_VERSION_powerpc64le?= 0.47.0
+
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
BOOTSTRAPS_SUFFIX_powerpc64?= -${PPC_ABI:tl}
Index: lang/rust/distinfo
===================================================================
--- lang/rust/distinfo
+++ lang/rust/distinfo
@@ -43,3 +43,9 @@
SIZE (rust/2020-08-03/rust-std-1.45.2-powerpc64-unknown-freebsd-elfv2.tar.xz) = 12223976
SHA256 (rust/2020-08-03/cargo-0.46.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = afb179eb04eb06f946f875aa243c2f3723ea5bc8a7cd2a027cc33ea97808d87f
SIZE (rust/2020-08-03/cargo-0.46.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4213368
+SHA256 (rust/2020-08-03/cargo-0.47.0-powerpc64le-unknown-freebsd.tar.xz) = 5391388fce390adaa10bb2ab7de9cbdeda8307ab95a64d53d501ced257f99ff2
+SIZE (rust/2020-08-03/cargo-0.47.0-powerpc64le-unknown-freebsd.tar.xz) = 4493584
+SHA256 (rust/2020-08-03/rust-std-1.46.0-powerpc64le-unknown-freebsd.tar.xz) = aa207e73c88f12d512aaa42c704145eb84ce04e48d027dffb0363965e74a8820
+SIZE (rust/2020-08-03/rust-std-1.46.0-powerpc64le-unknown-freebsd.tar.xz) = 12494160
+SHA256 (rust/2020-08-03/rustc-1.46.0-powerpc64le-unknown-freebsd.tar.xz) = 559ee2c55f3614351ca5618166a3bbe8ebcda7bddf0074c5e2c5917734c1d279
+SIZE (rust/2020-08-03/rustc-1.46.0-powerpc64le-unknown-freebsd.tar.xz) = 33672276
Index: lang/rust/files/powerpc64le/patch-src_librustc__target_spec_mod.rs
===================================================================
--- lang/rust/files/powerpc64le/patch-src_librustc__target_spec_mod.rs
+++ lang/rust/files/powerpc64le/patch-src_librustc__target_spec_mod.rs
@@ -0,0 +1,10 @@
+--- src/librustc_target/spec/mod.rs.orig 2020-09-30 18:06:16.613040000 -0500
++++ src/librustc_target/spec/mod.rs 2020-09-30 18:06:47.040460000 -0500
+@@ -553,6 +553,7 @@ supported_targets! {
+ ("armv7-unknown-freebsd", armv7_unknown_freebsd),
+ ("i686-unknown-freebsd", i686_unknown_freebsd),
+ ("powerpc64-unknown-freebsd", powerpc64_unknown_freebsd),
++ ("powerpc64le-unknown-freebsd", powerpc64le_unknown_freebsd),
+ ("x86_64-unknown-freebsd", x86_64_unknown_freebsd),
+
+ ("x86_64-unknown-dragonfly", x86_64_unknown_dragonfly),
Index: lang/rust/files/powerpc64le/patch-src_librustc__target_spec_powerpc64le__unknown__freebsd.rs
===================================================================
--- lang/rust/files/powerpc64le/patch-src_librustc__target_spec_powerpc64le__unknown__freebsd.rs
+++ lang/rust/files/powerpc64le/patch-src_librustc__target_spec_powerpc64le__unknown__freebsd.rs
@@ -0,0 +1,25 @@
+--- /dev/null 2020-09-30 18:09:21.093949000 -0500
++++ src/librustc_target/spec/powerpc64le_unknown_freebsd.rs 2020-09-30 18:08:47.737833000 -0500
+@@ -0,0 +1,22 @@
++use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
++
++pub fn target() -> TargetResult {
++ let mut base = super::freebsd_base::opts();
++ base.cpu = "ppc64le".to_string();
++ base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
++ base.max_atomic_width = Some(64);
++
++ Ok(Target {
++ llvm_target: "powerpc64le-unknown-freebsd".to_string(),
++ target_endian: "little".to_string(),
++ target_pointer_width: "64".to_string(),
++ target_c_int_width: "32".to_string(),
++ data_layout: "e-m:e-i64:64-n32:64".to_string(),
++ arch: "powerpc64".to_string(),
++ target_os: "freebsd".to_string(),
++ target_env: String::new(),
++ target_vendor: "unknown".to_string(),
++ linker_flavor: LinkerFlavor::Gcc,
++ options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
++ })
++}
Index: lang/rust/files/powerpc64le/patch-src_llvm-project_clang_lib_Basic_Targets.cpp
===================================================================
--- lang/rust/files/powerpc64le/patch-src_llvm-project_clang_lib_Basic_Targets.cpp
+++ lang/rust/files/powerpc64le/patch-src_llvm-project_clang_lib_Basic_Targets.cpp
@@ -0,0 +1,11 @@
+--- src/llvm-project/clang/lib/Basic/Targets.cpp.orig 2020-07-07 01:39:17.000000000 -0500
++++ src/llvm-project/clang/lib/Basic/Targets.cpp 2020-09-30 18:13:54.521751000 -0500
+@@ -352,6 +352,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple,
+ switch (os) {
+ case llvm::Triple::Linux:
+ return new LinuxTargetInfo<PPC64TargetInfo>(Triple, Opts);
++ case llvm::Triple::FreeBSD:
++ return new FreeBSDTargetInfo<PPC64TargetInfo>(Triple, Opts);
+ case llvm::Triple::NetBSD:
+ return new NetBSDTargetInfo<PPC64TargetInfo>(Triple, Opts);
+ default:
Index: lang/rust/files/powerpc64le/patch-vendor_openssl-src_src_lib.rs
===================================================================
--- lang/rust/files/powerpc64le/patch-vendor_openssl-src_src_lib.rs
+++ lang/rust/files/powerpc64le/patch-vendor_openssl-src_src_lib.rs
@@ -0,0 +1,10 @@
+--- vendor/openssl-src/src/lib.rs.orig 2020-09-30 18:01:13.855023000 -0500
++++ vendor/openssl-src/src/lib.rs 2020-09-30 18:02:06.365292000 -0500
+@@ -173,6 +173,7 @@ impl Build {
+ "powerpc-unknown-linux-gnu" => "linux-ppc",
+ "powerpc64-unknown-freebsd" => "BSD-generic64",
+ "powerpc64-unknown-linux-gnu" => "linux-ppc64",
++ "powerpc64le-unknown-freebsd" => "BSD-generic64",
+ "powerpc64le-unknown-linux-gnu" => "linux-ppc64le",
+ "riscv64gc-unknown-linux-gnu" => "linux-generic64",
+ "s390x-unknown-linux-gnu" => "linux64-s390x",
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Sep 7, 11:11 PM (1 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38491558
Default Alt Text
D26711.id77987.diff (10 KB)
Attached To
Mode
D26711: [PowerPC64LE] Rust powerpc64le port
Attached
Detach File
Event Timeline
Log In to Comment