aboutsummaryrefslogtreecommitdiffstats
path: root/community/rust/alpine-target.patch
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-05-01 00:43:19 +0200
committerJakub Jirutka <jakub@jirutka.cz>2017-05-01 00:43:19 +0200
commit41489596392977197d046ca034685664a3f4afa4 (patch)
treeef791ac83fd7635db59db40e12beb20a66ada3bd /community/rust/alpine-target.patch
parentabfa07f26ff2837922903586b15e137b67b43219 (diff)
downloadaports-41489596392977197d046ca034685664a3f4afa4.tar.bz2
aports-41489596392977197d046ca034685664a3f4afa4.tar.xz
community/rust: move from testing
Diffstat (limited to 'community/rust/alpine-target.patch')
-rw-r--r--community/rust/alpine-target.patch154
1 files changed, 154 insertions, 0 deletions
diff --git a/community/rust/alpine-target.patch b/community/rust/alpine-target.patch
new file mode 100644
index 0000000000..e013a6bc2e
--- /dev/null
+++ b/community/rust/alpine-target.patch
@@ -0,0 +1,154 @@
+From: Shiz <hi@shiz.me>
+Date: Thu, 20 Aug 2017 01:52:36 +0200
+Subject: [PATCH] Add Alpine targets
+
+This adds `$arch-alpine-linux-musl` targets to Rust to encode our toolchain
+and distribution-specific quirks instead of polluting the main musl target of
+`$arch-unknown-linux-musl`.
+
+--- /dev/null
++++ b/src/librustc_back/target/i586_alpine_linux_musl.rs
+@@ -0,0 +1,32 @@
++// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
++// file at the top-level directory of this distribution and at
++// http://rust-lang.org/COPYRIGHT.
++//
++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
++// option. This file may not be copied, modified, or distributed
++// except according to those terms.
++
++use target::{Target, TargetResult};
++
++pub fn target() -> TargetResult {
++ let mut base = super::linux_musl_base::opts();
++ base.cpu = "pentium4".to_string();
++ base.max_atomic_width = Some(64);
++ base.crt_static_default = false;
++ base.static_position_independent_executables = true;
++ base.need_rpath = true;
++
++ Ok(Target {
++ llvm_target: "i586-alpine-linux-musl".to_string(),
++ target_endian: "little".to_string(),
++ target_pointer_width: "32".to_string(),
++ data_layout: "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128".to_string(),
++ arch: "x86".to_string(),
++ target_os: "linux".to_string(),
++ target_env: "musl".to_string(),
++ target_vendor: "alpine".to_string(),
++ options: base,
++ })
++}
+--- a/src/librustc_back/target/mod.rs
++++ b/src/librustc_back/target/mod.rs
+@@ -214,6 +214,9 @@
+ ("thumbv7m-none-eabi", thumbv7m_none_eabi),
+ ("thumbv7em-none-eabi", thumbv7em_none_eabi),
+ ("thumbv7em-none-eabihf", thumbv7em_none_eabihf),
++
++ ("i586-alpine-linux-musl", i586_alpine_linux_musl),
++ ("x86_64-alpine-linux-musl", x86_64_alpine_linux_musl),
+ }
+
+ /// Everything `rustc` knows about how to compile for a specific target.
+--- /dev/null
++++ b/src/librustc_back/target/x86_64_alpine_linux_musl.rs
+@@ -0,0 +1,32 @@
++// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
++// file at the top-level directory of this distribution and at
++// http://rust-lang.org/COPYRIGHT.
++//
++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
++// option. This file may not be copied, modified, or distributed
++// except according to those terms.
++
++use target::{Target, TargetResult};
++
++pub fn target() -> TargetResult {
++ let mut base = super::linux_musl_base::opts();
++ base.cpu = "x86-64".to_string();
++ base.max_atomic_width = Some(64);
++ base.crt_static_default = false;
++ base.static_position_independent_executables = true;
++ base.need_rpath = true;
++
++ Ok(Target {
++ llvm_target: "x86_64-alpine-linux-musl".to_string(),
++ target_endian: "little".to_string(),
++ target_pointer_width: "64".to_string(),
++ data_layout: "e-m:e-i64:64-f80:128-n8:16:32:64-S128".to_string(),
++ arch: "x86_64".to_string(),
++ target_os: "linux".to_string(),
++ target_env: "musl".to_string(),
++ target_vendor: "alpine".to_string(),
++ options: base,
++ })
++}
+--- /dev/null
++++ b/mk/cfg/i586-alpine-linux-musl.mk
+@@ -0,0 +1,29 @@
++# i586-alpine-linux-musl configuration
++CC_i586-alpine-linux-musl=$(CC)
++CXX_i586-alpine-linux-musl=$(CXX)
++CPP_i586-alpine-linux-musl=$(CPP)
++AR_i586-alpine-linux-musl=$(AR)
++CFG_INSTALL_ONLY_RLIB_i586-alpine-linux-musl = 0
++CFG_LIB_NAME_i586-alpine-linux-musl=lib$(1).so
++CFG_STATIC_LIB_NAME_i586-alpine-linux-musl=lib$(1).a
++CFG_LIB_GLOB_i586-alpine-linux-musl=lib$(1)-*.so
++CFG_JEMALLOC_CFLAGS_i586-alpine-linux-musl :=
++CFG_GCCISH_CFLAGS_i586-alpine-linux-musl := -g -fPIC
++CFG_GCCISH_CXXFLAGS_i586-alpine-linux-musl :=
++CFG_GCCISH_LINK_FLAGS_i586-alpine-linux-musl :=
++CFG_GCCISH_DEF_FLAG_i586-alpine-linux-musl :=
++CFG_LLC_FLAGS_i586-alpine-linux-musl :=
++CFG_INSTALL_NAME_i586-alpine-linux-musl =
++CFG_EXE_SUFFIX_i586-alpine-linux-musl =
++CFG_WINDOWSY_i586-alpine-linux-musl :=
++CFG_UNIXY_i586-alpine-linux-musl := 1
++CFG_LDPATH_i586-alpine-linux-musl :=
++CFG_RUN_i586-alpine-linux-musl=$(2)
++CFG_RUN_TARG_i586-alpine-linux-musl=$(call CFG_RUN_i586-alpine-linux-musl,,$(2))
++CFG_GNU_TRIPLE_i586-alpine-linux-musl := i586-alpine-linux-musl
++CFG_THIRD_PARTY_OBJECTS_i586-alpine-linux-musl :=
++CFG_INSTALLED_OBJECTS_i586-alpine-linux-musl :=
++
++NATIVE_DEPS_libc_T_i586-alpine-linux-musl += libc.a
++NATIVE_DEPS_std_T_i586-alpine-linux-musl +=
++NATIVE_DEPS_unwind_T_i586-alpine-linux-musl += libunwind.a
+--- /dev/null
++++ b/mk/cfg/x86_64-alpine-linux-musl.mk
+@@ -0,0 +1,29 @@
++# x86_64-alpine-linux-musl configuration
++CC_x86_64-alpine-linux-musl=$(CC)
++CXX_x86_64-alpine-linux-musl=$(CXX)
++CPP_x86_64-alpine-linux-musl=$(CPP)
++AR_x86_64-alpine-linux-musl=$(AR)
++CFG_INSTALL_ONLY_RLIB_x86_64-alpine-linux-musl = 0
++CFG_LIB_NAME_x86_64-alpine-linux-musl=lib$(1).so
++CFG_STATIC_LIB_NAME_x86_64-alpine-linux-musl=lib$(1).a
++CFG_LIB_GLOB_x86_64-alpine-linux-musl=lib$(1)-*.so
++CFG_JEMALLOC_CFLAGS_x86_64-alpine-linux-musl :=
++CFG_GCCISH_CFLAGS_x86_64-alpine-linux-musl := -g -fPIC
++CFG_GCCISH_CXXFLAGS_x86_64-alpine-linux-musl :=
++CFG_GCCISH_LINK_FLAGS_x86_64-alpine-linux-musl :=
++CFG_GCCISH_DEF_FLAG_x86_64-alpine-linux-musl :=
++CFG_LLC_FLAGS_x86_64-alpine-linux-musl :=
++CFG_INSTALL_NAME_x86_64-alpine-linux-musl =
++CFG_EXE_SUFFIX_x86_64-alpine-linux-musl =
++CFG_WINDOWSY_x86_64-alpine-linux-musl :=
++CFG_UNIXY_x86_64-alpine-linux-musl := 1
++CFG_LDPATH_x86_64-alpine-linux-musl :=
++CFG_RUN_x86_64-alpine-linux-musl=$(2)
++CFG_RUN_TARG_x86_64-alpine-linux-musl=$(call CFG_RUN_x86_64-alpine-linux-musl,,$(2))
++CFG_GNU_TRIPLE_x86_64-alpine-linux-musl := x86_64-alpine-linux-musl
++CFG_THIRD_PARTY_OBJECTS_x86_64-alpine-linux-musl :=
++CFG_INSTALLED_OBJECTS_x86_64-alpine-linux-musl :=
++
++NATIVE_DEPS_libc_T_x86_64-alpine-linux-musl += libc.a
++NATIVE_DEPS_std_T_x86_64-alpine-linux-musl +=
++NATIVE_DEPS_unwind_T_x86_64-alpine-linux-musl += libunwind.a