Skip to content

Commit 98bedcb

Browse files
cuviperpietroalbini
authored andcommitted
std: Use target_pointer_width for BACKTRACE_ELF_SIZE
The former code used `target.contains("64")` to detect Elf64 targets, but this is inaccurate in a few cases: - `s390x-unknown-linux-gnu` is 64-bit - `sparcv9-sun-solaris` is 64-bit - `x86_64-unknown-linux-gnux32` is 32-bit Instead the `std` build script can use `CARGO_CFG_TARGET_POINTER_WIDTH` to reliably detect 64-bit targets for libbacktrace. Also update to backtrace-sys 0.1.24 for rust-lang/backtrace-rs#122.
1 parent 3a35445 commit 98bedcb

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/libstd/build.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ fn build_libbacktrace(target: &str) -> Result<(), ()> {
104104
} else {
105105
build.file("../libbacktrace/elf.c");
106106

107-
if target.contains("64") {
107+
let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap();
108+
if pointer_width == "64" {
108109
build.define("BACKTRACE_ELF_SIZE", "64");
109110
} else {
110111
build.define("BACKTRACE_ELF_SIZE", "32");

0 commit comments

Comments
 (0)