diff options
| author | Josh Stone <jistone@redhat.com> | 2018-08-14 21:08:42 -0700 |
|---|---|---|
| committer | Pietro Albini <pietro@pietroalbini.org> | 2018-09-01 10:25:04 +0200 |
| commit | 98bedcbfd0e1419df749e859937d994ccaa72c91 (patch) | |
| tree | c2169d4627bc66ffa6d8a41a9ff03f6b26beeb61 /src/libstd | |
| parent | 3a35445847d3fe68ba0aae0a642d0cd46af7f830 (diff) | |
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 alexcrichton/backtrace-rs#122.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/build.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstd/build.rs b/src/libstd/build.rs index 26d93f97e69..016e7adb4c9 100644 --- a/src/libstd/build.rs +++ b/src/libstd/build.rs @@ -104,7 +104,8 @@ fn build_libbacktrace(target: &str) -> Result<(), ()> { } else { build.file("../libbacktrace/elf.c"); - if target.contains("64") { + let pointer_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap(); + if pointer_width == "64" { build.define("BACKTRACE_ELF_SIZE", "64"); } else { build.define("BACKTRACE_ELF_SIZE", "32"); |
