mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-25 20:25:28 +03:00
61 lines
3.2 KiB
Diff
61 lines
3.2 KiB
Diff
From 536011d929ecbd1170baf34e09580e567c971f95 Mon Sep 17 00:00:00 2001
|
|
From: Shiz <hi@shiz.me>
|
|
Date: Sat, 8 Apr 2017 20:36:00 +0200
|
|
Subject: [PATCH] Fix jemalloc support for musl
|
|
|
|
Just like DragonFlyBSD, using the same symbols as the system allocator will
|
|
result in a segmentation fault at runtime due to allocator mismatches.
|
|
As such, prefix the jemalloc symbols instead.
|
|
|
|
Upstream-Issue: https://github.com/rust-lang/rust/pull/41168
|
|
---
|
|
src/liballoc_jemalloc/build.rs | 2 +-
|
|
src/liballoc_jemalloc/lib.rs | 10 +++++-----
|
|
2 files changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/src/liballoc_jemalloc/build.rs b/src/liballoc_jemalloc/build.rs
|
|
index ae040a2..f3a0eeb 100644
|
|
--- a/src/liballoc_jemalloc/build.rs
|
|
+++ b/src/liballoc_jemalloc/build.rs
|
|
@@ -129,7 +129,7 @@ fn main() {
|
|
// should be good to go!
|
|
cmd.arg("--with-jemalloc-prefix=je_");
|
|
cmd.arg("--disable-tls");
|
|
- } else if target.contains("dragonfly") {
|
|
+ } else if target.contains("dragonfly") || target.contains("musl") {
|
|
cmd.arg("--with-jemalloc-prefix=je_");
|
|
}
|
|
|
|
diff --git a/src/liballoc_jemalloc/lib.rs b/src/liballoc_jemalloc/lib.rs
|
|
index a7a67ef..83cc1ef 100644
|
|
--- a/src/liballoc_jemalloc/lib.rs
|
|
+++ b/src/liballoc_jemalloc/lib.rs
|
|
@@ -35,23 +35,23 @@ mod imp {
|
|
// request it as unprefixing cause segfaults (mismatches in allocators).
|
|
extern "C" {
|
|
#[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios",
|
|
- target_os = "dragonfly", target_os = "windows"),
|
|
+ target_os = "dragonfly", target_os = "windows", target_env = "musl"),
|
|
link_name = "je_mallocx")]
|
|
fn mallocx(size: size_t, flags: c_int) -> *mut c_void;
|
|
#[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios",
|
|
- target_os = "dragonfly", target_os = "windows"),
|
|
+ target_os = "dragonfly", target_os = "windows", target_env = "musl"),
|
|
link_name = "je_rallocx")]
|
|
fn rallocx(ptr: *mut c_void, size: size_t, flags: c_int) -> *mut c_void;
|
|
#[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios",
|
|
- target_os = "dragonfly", target_os = "windows"),
|
|
+ target_os = "dragonfly", target_os = "windows", target_env = "musl"),
|
|
link_name = "je_xallocx")]
|
|
fn xallocx(ptr: *mut c_void, size: size_t, extra: size_t, flags: c_int) -> size_t;
|
|
#[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios",
|
|
- target_os = "dragonfly", target_os = "windows"),
|
|
+ target_os = "dragonfly", target_os = "windows", target_env = "musl"),
|
|
link_name = "je_sdallocx")]
|
|
fn sdallocx(ptr: *mut c_void, size: size_t, flags: c_int);
|
|
#[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios",
|
|
- target_os = "dragonfly", target_os = "windows"),
|
|
+ target_os = "dragonfly", target_os = "windows", target_env = "musl"),
|
|
link_name = "je_nallocx")]
|
|
fn nallocx(size: size_t, flags: c_int) -> size_t;
|
|
}
|