mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
The difference with the recipes for versions 1.9.0 through 1.12.1 is that this one is based off the "official" rust sources, after Alexander von Gluck integrated the existing patches and added some additional of his own. The recipe uses some additional patches to fix the build system (and some oversights). The complete patched source tree can be found at https://github.com/nielx/rust
102 lines
4.4 KiB
Plaintext
102 lines
4.4 KiB
Plaintext
From 6383a6c04ef2c915391563de62b01456a6723f87 Mon Sep 17 00:00:00 2001
|
|
From: Niels Sascha Reedijk <niels.reedijk@gmail.com>
|
|
Date: Wed, 20 Sep 2017 18:20:13 +0000
|
|
Subject: Patches for Haiku
|
|
|
|
|
|
diff --git a/mk/cfg/i686-unknown-haiku.mk b/mk/cfg/i686-unknown-haiku.mk
|
|
index cbacbff..d1bcc7a 100644
|
|
--- a/mk/cfg/i686-unknown-haiku.mk
|
|
+++ b/mk/cfg/i686-unknown-haiku.mk
|
|
@@ -9,7 +9,7 @@ CFG_STATIC_LIB_NAME_i686-unknown-haiku=lib$(1).a
|
|
CFG_LIB_GLOB_i686-unknown-haiku=lib$(1)-*.so
|
|
CFG_LIB_DSYM_GLOB_i686-unknown-haiku=lib$(1)-*.dylib.dSYM
|
|
CFG_CFLAGS_i686-unknown-haiku := -m32 $(CFLAGS)
|
|
-CFG_GCCISH_CFLAGS_i686-unknown-haiku := -Wall -Werror -g -fPIC -m32 $(CFLAGS)
|
|
+CFG_GCCISH_CFLAGS_i686-unknown-haiku := -Wall -g -fPIC -m32 $(CFLAGS)
|
|
CFG_GCCISH_CXXFLAGS_i686-unknown-haiku := -fno-rtti $(CXXFLAGS)
|
|
CFG_GCCISH_LINK_FLAGS_i686-unknown-haiku := -shared -fPIC -ldl -pthread -lrt -g -m32
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i686-unknown-haiku := -Wl,-whole-archive
|
|
diff --git a/mk/cfg/x86_64-unknown-haiku.mk b/mk/cfg/x86_64-unknown-haiku.mk
|
|
index 4c2d888..476327a 100644
|
|
--- a/mk/cfg/x86_64-unknown-haiku.mk
|
|
+++ b/mk/cfg/x86_64-unknown-haiku.mk
|
|
@@ -9,7 +9,7 @@ CFG_STATIC_LIB_NAME_x86_64-unknown-haiku=lib$(1).a
|
|
CFG_LIB_GLOB_x86_64-unknown-haiku=lib$(1)-*.so
|
|
CFG_LIB_DSYM_GLOB_x86_64-unknown-haiku=lib$(1)-*.dylib.dSYM
|
|
CFG_CFLAGS_x86_64-unknown-haiku := -m64 $(CFLAGS)
|
|
-CFG_GCCISH_CFLAGS_x86_64-unknown-haiku := -Wall -Werror -g -fPIC -m64 $(CFLAGS)
|
|
+CFG_GCCISH_CFLAGS_x86_64-unknown-haiku := -Wall -g -fPIC -m64 $(CFLAGS)
|
|
CFG_GCCISH_CXXFLAGS_x86_64-unknown-haiku := -fno-rtti $(CXXFLAGS)
|
|
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-haiku := -shared -fPIC -ldl -pthread -lrt -g -m64
|
|
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-unknown-haiku := -Wl,-whole-archive
|
|
diff --git a/src/librustc_back/target/haiku_base.rs b/src/librustc_back/target/haiku_base.rs
|
|
index 5e319ba..7f79330 100644
|
|
--- a/src/librustc_back/target/haiku_base.rs
|
|
+++ b/src/librustc_back/target/haiku_base.rs
|
|
@@ -16,7 +16,7 @@ pub fn opts() -> TargetOptions {
|
|
linker: "cc".to_string(),
|
|
dynamic_linking: true,
|
|
executables: true,
|
|
- has_rpath: true,
|
|
+ has_rpath: false,
|
|
linker_is_gnu: true,
|
|
.. Default::default()
|
|
}
|
|
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
|
|
index 0870780..4cabd47 100644
|
|
--- a/src/librustc_back/target/mod.rs
|
|
+++ b/src/librustc_back/target/mod.rs
|
|
@@ -166,8 +166,8 @@ supported_targets! {
|
|
("x86_64-unknown-netbsd", x86_64_unknown_netbsd),
|
|
("x86_64-rumprun-netbsd", x86_64_rumprun_netbsd),
|
|
|
|
- ("i686_unknown_haiku", i686_unknown_haiku),
|
|
- ("x86_64_unknown_haiku", x86_64_unknown_haiku),
|
|
+ ("i686-unknown-haiku", i686_unknown_haiku),
|
|
+ ("x86_64-unknown-haiku", x86_64_unknown_haiku),
|
|
|
|
("x86_64-apple-darwin", x86_64_apple_darwin),
|
|
("i686-apple-darwin", i686_apple_darwin),
|
|
diff --git a/src/librustc_data_structures/flock.rs b/src/librustc_data_structures/flock.rs
|
|
index 510c9ce..c1546e0 100644
|
|
--- a/src/librustc_data_structures/flock.rs
|
|
+++ b/src/librustc_data_structures/flock.rs
|
|
@@ -109,6 +109,7 @@ mod imp {
|
|
pub l_sysid: libc::c_int,
|
|
}
|
|
|
|
+ pub const F_RDLCK: libc::c_short = 0x0040;
|
|
pub const F_UNLCK: libc::c_short = 0x0200;
|
|
pub const F_WRLCK: libc::c_short = 0x0400;
|
|
pub const F_SETLK: libc::c_int = 0x0080;
|
|
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
|
|
index b6dc755..88e5af9 100644
|
|
--- a/src/librustdoc/lib.rs
|
|
+++ b/src/librustdoc/lib.rs
|
|
@@ -98,7 +98,7 @@ struct Output {
|
|
}
|
|
|
|
pub fn main() {
|
|
- const STACK_SIZE: usize = 32_000_000; // 32MB
|
|
+ const STACK_SIZE: usize = 16_000_000; // 16MB on Haiku
|
|
let res = std::thread::Builder::new().stack_size(STACK_SIZE).spawn(move || {
|
|
let s = env::args().collect::<Vec<_>>();
|
|
main_args(&s)
|
|
diff --git a/src/libstd/sys/common/net.rs b/src/libstd/sys/common/net.rs
|
|
index 18280e4..609e43e 100644
|
|
--- a/src/libstd/sys/common/net.rs
|
|
+++ b/src/libstd/sys/common/net.rs
|
|
@@ -29,7 +29,7 @@ use sys::net::netc::IPV6_JOIN_GROUP as IPV6_ADD_MEMBERSHIP;
|
|
#[cfg(not(any(target_os = "dragonfly", target_os = "freebsd",
|
|
target_os = "ios", target_os = "macos",
|
|
target_os = "openbsd", target_os = "netbsd",
|
|
- target_os = "solaris", taget_os = "haiku")))]
|
|
+ target_os = "solaris", target_os = "haiku")))]
|
|
use sys::net::netc::IPV6_ADD_MEMBERSHIP;
|
|
#[cfg(any(target_os = "dragonfly", target_os = "freebsd",
|
|
target_os = "ios", target_os = "macos",
|
|
--
|
|
2.7.0
|
|
|