Page MenuHomeFreeBSD

D26711.id77987.diff
No OneTemporary

D26711.id77987.diff

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

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)

Event Timeline