Skip to content

conditionally modify darwin targets to macosx targets with versions - #60378

Merged
bors merged 2 commits into
rust-lang:masterfrom
froydnj:apple-target-modifications
May 8, 2019
Merged

conditionally modify darwin targets to macosx targets with versions#60378
bors merged 2 commits into
rust-lang:masterfrom
froydnj:apple-target-modifications

Conversation

@froydnj

Copy link
Copy Markdown
Contributor

We need this behavior so that Rust LLVM IR objects match the target triple for Clang LLVM IR objects. This matching then convinces the linker that yes, you really can do cross-language LTO with objects from different compilers.

The newly-added tests seem to pass locally on x86_64-unknown-linux-gnu. I haven't done a full test run or tried the new compiler in an cross-language LTO setup yet.

@rust-highfive

Copy link
Copy Markdown
Contributor

r? @eddyb

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 29, 2019
@michaelwoerister

Copy link
Copy Markdown
Member

cc me

@michaelwoerister

Copy link
Copy Markdown
Member

Ideally we would run the cross-language LTO tests for at least one macOS job. @rust-lang/infra, is there any chance we can enable building Clang (via --enable-lldb and --enable-lldb) and run x.py test src/test/run-make-fulldeps --test-args clang there? That would probably have caught the bug earlier.

@michaelwoerister

Copy link
Copy Markdown
Member

@alexcrichton

Copy link
Copy Markdown
Member

I don't think we have enough resources on CI to run more tests on OSX right now (especially building lots more LLVM binaries). If it works with what we have seems reasonable to turn on but otherwise we probably can't budget it at this time.

TBH it seems like this would have been good to discover the original bug but other than that it seems really unlikely to catch regressions. We've already got tests on other platforms to catch architectural problems with LTO, and a new OSX-specific bug coming up seems like it'd be pretty rare.

@michaelwoerister

Copy link
Copy Markdown
Member

TBH it seems like this would have been good to discover the original bug but other than that it seems really unlikely to catch regressions. We've already got tests on other platforms to catch architectural problems with LTO, and a new OSX-specific bug coming up seems like it'd be pretty rare.

I know there are resource constraints but in general I don't agree. Ideally I'd like every stable feature to be at least smoke-tested on every tier 1 platform.

That being said, I don't want to block this bugfix.

@alexcrichton, would you be able to review this PR? Or do you know who'd be a good fit? The changes look good to me and there test cases, but I know virtually nothing about macOS platform conventions.

@alexcrichton

Copy link
Copy Markdown
Member

@bors: r+

Looks good to me as well!

@froydnj

Copy link
Copy Markdown
ContributorAuthor

Hm, @bors did not seem to notice the r+?

@eddyb

eddyb commented May 4, 2019

Copy link
Copy Markdown
Contributor

@bors r=alexcrichton

(maybe it doesn't like the :?)

@bors

bors commented May 4, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 21fdfb7236e55195d74145973e56508904f29e82 has been approved by alexcrichton

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 4, 2019
@bors

bors commented May 4, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 21fdfb7236e55195d74145973e56508904f29e82 with merge df1dd3204592604a93b3cfae8d9630ba61dca6a1...

@bors

bors commented May 4, 2019

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-travis

@borsbors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 4, 2019
@rust-highfive

Copy link
Copy Markdown
Contributor

The job x86_64-apple of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:02:59] Memory: 8 GB
[00:02:59] Boot ROM Version: VMW71.00V.7581552.B64.1801142334
[00:02:59] Apple ROM Info: [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]Welcome to the Virtual Machine
[00:02:59] SMC Version (system): 2.8f0
[00:02:59] Serial Number (system): VMbom5jaI7LG
[00:02:59] [00:02:59] hw.ncpu: 4
[00:02:59] hw.byteorder: 1234
[00:02:59] hw.memsize: 8589934592
---
[02:03:20] status: exit code: 2
[02:03:20] command: "make"
[02:03:20] stdout:
[02:03:20] ------------------------------------------
[02:03:20] DYLD_LIBRARY_PATH="/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-address/sanitizer-address:/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib:" '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc' --out-dir /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-address/sanitizer-address -L /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-address/sanitizer-address -g -Z sanitizer=address -Z print-link-args -C rpath overflow.rs | "/Users/travis/build/rust-lang/rust/src/etc/cat-and-grep.sh" librustc_asan
[02:03:20] [[[ begin stdout ]]]
[02:03:20] [02:03:20] [[[ end stdout ]]]
[02:03:20] Error: cannot match: librustc_asan
[02:03:20] ------------------------------------------
[02:03:20] stderr:
[02:03:20] ------------------------------------------
[02:03:20] ------------------------------------------
[02:03:20] error: AddressSanitizer only works with the `x86_64-unknown-linux-gnu` or `x86_64-apple-darwin` target
[02:03:20] error: aborting due to previous error
[02:03:20] [02:03:20] [02:03:20] make[1]: *** [all] Error 1
[02:03:20] ------------------------------------------
[02:03:20] [02:03:20] [02:03:20] ---- [run-make] run-make-fulldeps/sanitizer-invalid-cratetype stdout ----
[02:03:20] ---- [run-make] run-make-fulldeps/sanitizer-invalid-cratetype stdout ----
[02:03:20] [02:03:20] error: make failed
[02:03:20] status: exit code: 2
[02:03:20] command: "make"
[02:03:20] stdout:
[02:03:20] ------------------------------------------
[02:03:20] DYLD_LIBRARY_PATH="/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-invalid-cratetype/sanitizer-invalid-cratetype:/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib:" '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc' --out-dir /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-invalid-cratetype/sanitizer-invalid-cratetype -L /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps/sanitizer-invalid-cratetype/sanitizer-invalid-cratetype -Z sanitizer=address --crate-type proc-macro --target x86_64-apple-darwin hello.rs 2>&1 | "/Users/travis/build/rust-lang/rust/src/etc/cat-and-grep.sh" '-Z sanitizer'
[02:03:20] [[[ begin stdout ]]]
[02:03:20] error: AddressSanitizer only works with the `x86_64-unknown-linux-gnu` or `x86_64-apple-darwin` target
[02:03:20] error: aborting due to previous error
[02:03:20] [02:03:20] [02:03:20] [02:03:20] [[[ end stdout ]]]
[02:03:20] Error: cannot match: -Z sanitizer
[02:03:20] ------------------------------------------
[02:03:20] stderr:
[02:03:20] ------------------------------------------
[02:03:20] ------------------------------------------
[02:03:20] make[1]: *** [all] Error 1
[02:03:20] ------------------------------------------
[02:03:20] [02:03:20] [02:03:20] ---
[02:03:20] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:519:22
[02:03:20] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[02:03:20] [02:03:20] [02:03:20] command did not execute successfully: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage0-tools-bin/compiletest" "--compile-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib" "--run-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib/rustlib/x86_64-apple-darwin/lib" "--rustc-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "--rustdoc-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustdoc" "--src-base" "/Users/travis/build/rust-lang/rust/src/test/run-make-fulldeps" "--build-base" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/run-make-fulldeps" "--stage-id" "stage2-x86_64-apple-darwin" "--mode" "run-make" "--target" "x86_64-apple-darwin" "--host" "x86_64-apple-darwin" "--llvm-filecheck" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/llvm/build/bin/FileCheck" "--nodejs" "/Users/travis/.nvm/versions/node/v6.12.3/bin/node" "--host-rustcflags" "-Crpath -O -Zunstable-options -Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options -Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "--docck-python" "/usr/local/bin/python2.7" "--lldb-python" "/usr/bin/python" "--lldb-version" "lldb-902.0.73.1\n Swift-4.1\n" "--lldb-python-dir" "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python" "--llvm-version" "8.0.0-rust-1.36.0-dev\n" "--cc" "/Users/travis/build/rust-lang/rust/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang" "--cxx" "/Users/travis/build/rust-lang/rust/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang++" "--cflags" "-ffunction-sections -fdata-sections -fPIC --target=x86_64-apple-darwin -stdlib=libc++" "--llvm-components" "aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets analysis arm armasmparser armasmprinter armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitwriter codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine fuzzmutate globalisel gtest gtest_main hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interpreter ipo irreader libdriver lineeditor linker lto mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430asmprinter msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxasmprinter nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option optremarks orcjit passes powerpc powerpcasmparser powerpcasmprinter powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata riscv riscvasmparser riscvasmprinter riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvutils runtimedyld scalaropts selectiondag sparc sparcasmparser sparcasmprinter sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target testingsupport textapi transformutils vectorize webassembly webassemblyasmparser webassemblyasmprinter webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo windowsmanifest x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xray" "--llvm-cxxflags" "-I/Users/travis/build/rust-lang/rust/src/llvm-project/llvm/include -I/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/llvm/build/include -std=c++11 -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" "--ar" "ar" "--llvm-bin-dir" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/llvm/build/bin" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[02:03:20] [02:03:20] [02:03:20] failed to run: /Users/travis/build/rust-lang/rust/build/bootstrap/debug/bootstrap test
[02:03:20] Build completed unsuccessfully in 0:49:00
[02:03:20] Build completed unsuccessfully in 0:49:00
[02:03:20] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:13080b5d
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat May 4 18:06:48 GMT 2019
---
travis_fold:start:after_failure.2
travis_time:start:181cf420
$ ls -lat $HOME/Library/Logs/DiagnosticReports/
total 1240
-rw-------@ 1 travis staff 1428 May 4 18:06 foo_2019-05-04-180626_Traviss-Mac-1044.crash
drwx------ 26 travis staff 884 May 4 18:06 .
-rw-------@ 1 travis staff 1417 May 4 18:05 m4_2019-05-04-180554_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 1432 May 4 18:05 bar_2019-05-04-180545_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10661 May 4 18:05 b_2019-05-04-180544_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 1444 May 4 18:05 bar_2019-05-04-180544_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 62244 May 4 17:33 a_2019-05-04-173340-1_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 37663 May 4 17:33 a_2019-05-04-173340_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 60387 May 4 17:33 a_2019-05-04-173331-1_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 37411 May 4 17:33 a_2019-05-04-173331_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10142 May 4 17:33 a_2019-05-04-173326_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 9873 May 4 17:33 a_2019-05-04-173320_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 9878 May 4 17:33 a_2019-05-04-173313_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 9792 May 4 17:33 a_2019-05-04-173312_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10034 May 4 17:32 a_2019-05-04-173236_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 63058 May 4 17:32 a_2019-05-04-173225_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 64224 May 4 17:32 a_2019-05-04-173221-1_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 63915 May 4 17:32 a_2019-05-04-173221-2_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 65082 May 4 17:32 a_2019-05-04-173221_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 11715 May 4 17:30 a_2019-05-04-173012_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 9897 May 4 17:29 a_2019-05-04-172920_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10304 May 4 17:28 a_2019-05-04-172809_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10214 May 4 17:27 a_2019-05-04-172718-1_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10491 May 4 17:27 a_2019-05-04-172717-1_Traviss-Mac-1044.crash
-rw-------@ 1 travis staff 10491 May 4 17:27 a_2019-05-04-172717_Traviss-Mac-1044.crash
drwx------+ 15 travis staff 510 Jan 25 2018 ..
travis_fold:end:after_failure.2
travis_fold:start:after_failure.3
travis_time:start:014388ee
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
travis_fold:start:crashlog
/Users/travis/Library/Logs/DiagnosticReports/a_2019-05-04-172717-1_Traviss-Mac-1044.crash
Process: a [45142]
Path: /Users/USER/*/a
Version: 0
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [45130]
Responsible: a [45142]
User ID: 501
Date/Time: 2019-05-04 17:27:11.647 +0000
OS Version: Mac OS X 10.13.3 (17D47)
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Time Awake Since Boot: 5100 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [0]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libstd-eab9b87ea2f8ecdb.dylib 0x0000000108993ade std::panicking::rust_panic_with_hook::h7727ab2ea491e89c + 142
1 a 0x000000010895f8c5 std::panicking::begin_panic::hb96124c01d149146 + 37
2 a 0x000000010895d3ec _$LT$backtrace..double..Double$u20$as$u20$core..ops..drop..Drop$GT$::drop::hcc2b5a39c3723dfb + 28
3 a 0x000000010895ce39 core::ptr::real_drop_in_place::ha38bdcda67050f55 + 9
4 a 0x000000010895d3c3 backtrace::double::h0c99cc05786c6af0 + 35
5 a 0x000000010895e539 backtrace::main::hcde7a1a1c3c85e77 + 4201 (backtrace.rs:103)
6 a 0x000000010895c8f6 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h500aa6ffbc5e418e + 6 (rt.rs:64)
7 libstd-eab9b87ea2f8ecdb.dylib 0x0000000108993558 std::panicking::try::do_call::h9fa7e6361b2e4d90 + 24
8 libstd-eab9b87ea2f8ecdb.dylib 0x00000001089a360f __rust_maybe_catch_panic + 31
9 libstd-eab9b87ea2f8ecdb.dylib 0x000000010899403e std::rt::lang_start_internal::h954b4be21ff606b2 + 542
10 a 0x000000010895ed79 main + 41
11 libdyld.dylib 0x00007fff6bdfa115 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x00007ffee72a42f8 rbx: 0x0000000000000002 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000002 rsi: 0x00000001089dbb62 rbp: 0x00007ffee72a43f0 rsp: 0x00007ffee72a4320
r8: 0xffffffff00000100 r9: 0x0000000108a0e9d0 r10: 0x000000000000002b r11: 0x0000000000000296
r12: 0x0000000000000000 r13: 0x00000001089da8c8 r14: 0x0000000108961460 r15: 0x00007ffee72a4400
rip: 0x0000000108993ade rfl: 0x0000000000010202 cr2: 0x0000000108c659b4
Logical CPU: 1
Error Code: 0x00000000
Trap Number: 6
Binary Images:
0x108959000 - 0x108960ff7 +a (0) <974C7262-E663-3C83-A0FC-537C36B6FB90> /Users/USER/*/a
0x10896f000 - 0x108a06fff +libstd-eab9b87ea2f8ecdb.dylib (0) <CF57B36F-7BEA-3E2A-9DCE-BF16C917A998> /Users/USER/*/libstd-eab9b87ea2f8ecdb.dylib
0x114cda000 - 0x114d2498f dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
0x7fff69664000 - 0x7fff69697fff libclosured.dylib (519.2.2) <48051216-5647-3643-B979-B77D0FD20011> /usr/lib/closure/libclosured.dylib
0x7fff69b76000 - 0x7fff69b77ff3 libSystem.B.dylib (1252) <47329E26-DC23-3EBA-9461-37755368327D> /usr/lib/libSystem.B.dylib
0x7fff69e2c000 - 0x7fff69e82fff libc++.1.dylib (400.9) <FCF5E1F6-2B04-3545-8004-F3AB32FED172> /usr/lib/libc++.1.dylib
0x7fff69e83000 - 0x7fff69ea7ff7 libc++abi.dylib (400.7) <217656D5-BC40-37FF-B322-91CB2AAD4F34> /usr/lib/libc++abi.dylib
0x7fff6b1f9000 - 0x7fff6b5ea3b7 libobjc.A.dylib (723) <37A7D77E-952C-3F5D-970B-3CDE349B2322> /usr/lib/libobjc.A.dylib
0x7fff6b6b7000 - 0x7fff6b6d3ffb libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
0x7fff6bc91000 - 0x7fff6bc95ff7 libcache.dylib (80) <354F3B7D-404E-3398-9EBF-65CA2CE65211> /usr/lib/system/libcache.dylib
0x7fff6bc96000 - 0x7fff6bca0ff3 libcommonCrypto.dylib (60118.30.2) <674286D3-7744-36A3-9AAA-49DFCD97A986> /usr/lib/system/libcommonCrypto.dylib
0x7fff6bca1000 - 0x7fff6bca8fff libcompiler_rt.dylib (62) <4487CFBA-A5D7-3282-9E6B-94CAD7BE507E> /usr/lib/system/libcompiler_rt.dylib
0x7fff6bca9000 - 0x7fff6bcb1ffb libcopyfile.dylib (146.30.2) <2C7C67D7-562B-3FFA-973D-BACF4C10E1EC> /usr/lib/system/libcopyfile.dylib
0x7fff6bcb2000 - 0x7fff6bd37fff libcorecrypto.dylib (562.30.10) <8A53EFE1-AFCA-3676-BEE1-FA5ED9F0E222> /usr/lib/system/libcorecrypto.dylib
0x7fff6bdbf000 - 0x7fff6bdf8ff7 libdispatch.dylib (913.30.4) <7D0E3183-282B-3FEE-A734-2C0ADC092084> /usr/lib/system/libdispatch.dylib
0x7fff6bdf9000 - 0x7fff6be16ff7 libdyld.dylib (519.2.2) <C50D02BC-A333-3313-B787-02F255A6783F> /usr/lib/system/libdyld.dylib
0x7fff6be17000 - 0x7fff6be17ffb libkeymgr.dylib (28) <6D84A96F-C65B-38EC-BDB5-21FD2C97E7B2> /usr/lib/system/libkeymgr.dylib
0x7fff6be25000 - 0x7fff6be25ff7 liblaunch.dylib (1205.30.29) <E66F58ED-C15E-3DFB-BC22-A861E13918C6> /usr/lib/system/liblaunch.dylib
0x7fff6be26000 - 0x7fff6be2affb libmacho.dylib (900.0.1) <756F2553-07B6-3B42-ACEA-2F0F1A5E8D0F> /usr/lib/system/libmacho.dylib
0x7fff6be2b000 - 0x7fff6be2dff3 libquarantine.dylib (86) <6AC8773F-3817-3D82-99C2-01BABB9C3CBB> /usr/lib/system/libquarantine.dylib
0x7fff6be2e000 - 0x7fff6be2fff3 libremovefile.dylib (45) <912FA211-DD8C-3C92-8424-21B89F8B10FD> /usr/lib/system/libremovefile.dylib
0x7fff6be30000 - 0x7fff6be47fff libsystem_asl.dylib (356.1.1) <94972913-9DF0-3C78-847C-43E58919E3DA> /usr/lib/system/libsystem_asl.dylib
0x7fff6be48000 - 0x7fff6be48fff libsystem_blocks.dylib (67) <F2493BB5-B1C6-3C4D-9F1F-1B402E0F1DB7> /usr/lib/system/libsystem_blocks.dylib
0x7fff6be49000 - 0x7fff6bed2ff7 libsystem_c.dylib (1244.30.3) <E0136C71-0648-36F0-9F84-82EA2748A8D7> /usr/lib/system/libsystem_c.dylib
0x7fff6bed3000 - 0x7fff6bed6ffb libsystem_configuration.dylib (963.30.1) <0F8D0B76-4F7D-34EC-AB6C-50F9465809DA> /usr/lib/system/libsystem_configuration.dylib
0x7fff6bed7000 - 0x7fff6bedaffb libsystem_coreservices.dylib (51) <21A488D0-2D07-344E-8631-CC8B2A246F35> /usr/lib/system/libsystem_coreservices.dylib
0x7fff6bedb000 - 0x7fff6bedcfff libsystem_darwin.dylib (1244.30.3) <2F750CB1-BC26-3FA3-AE59-553EE30D451B> /usr/lib/system/libsystem_darwin.dylib
0x7fff6bedd000 - 0x7fff6bee3ff7 libsystem_dnssd.dylib (878.30.4) <EB9BB165-45A4-367C-B33A-688D4F383A95> /usr/lib/system/libsystem_dnssd.dylib
0x7fff6bee4000 - 0x7fff6bf2dff7 libsystem_info.dylib (517.30.1) <7D79E167-4B5C-3833-81EE-3AF3FB53616D> /usr/lib/system/libsystem_info.dylib
0x7fff6bf2e000 - 0x7fff6bf53ff7 libsystem_kernel.dylib (4570.41.2) <5155A4C3-825B-3178-AC51-0D2D2F2A6618> /usr/lib/system/libsystem_kernel.dylib
0x7fff6bf54000 - 0x7fff6bf9ffcb libsystem_m.dylib (3146) <ABB1B85F-9FFE-31B8-AD4F-E39A30794A93> /usr/lib/system/libsystem_m.dylib
0x7fff6bfa0000 - 0x7fff6bfbffff libsystem_malloc.dylib (140.40.1) <36B22C99-D772-3039-9A4C-AA31389965E1> /usr/lib/system/libsystem_malloc.dylib
0x7fff6bfc0000 - 0x7fff6c064ff3 libsystem_network.dylib (1229.30.11) <40BAD301-8744-3AD8-A688-E7925C587B00> /usr/lib/system/libsystem_network.dylib
0x7fff6c065000 - 0x7fff6c06fffb libsystem_networkextension.dylib (767.40.1) <CEDC330D-28F0-3902-BEB0-10B92ACEC69F> /usr/lib/system/libsystem_networkextension.dylib
0x7fff6c070000 - 0x7fff6c079ff3 libsystem_notify.dylib (172) <98EA3D62-7C86-30DE-8261-D020D2F1EFF3> /usr/lib/system/libsystem_notify.dylib
0x7fff6c07a000 - 0x7fff6c081ff7 libsystem_platform.dylib (161.20.1) <C049250F-8C35-314D-810F-4E28AEAED983> /usr/lib/system/libsystem_platform.dylib
0x7fff6c082000 - 0x7fff6c08dfff libsystem_pthread.dylib (301.30.1) <ABA848E1-6978-3B42-A3A7-608B2C36FA93> /usr/lib/system/libsystem_pthread.dylib
0x7fff6c08e000 - 0x7fff6c091ff3 libsystem_sandbox.dylib (765.40.2) <922D3D15-AB4C-3F1A-A94F-39214AF1ADB3> /usr/lib/system/libsystem_sandbox.dylib
0x7fff6c092000 - 0x7fff6c093ff3 libsystem_secinit.dylib (30) <F06ADB8F-9E94-34A7-B3C9-2C22FDD14BAD> /usr/lib/system/libsystem_secinit.dylib
0x7fff6c094000 - 0x7fff6c09bff7 libsystem_symptoms.dylib (820.30.7) <DC3586C2-AA56-3419-88D3-FC0DBF08E3C0> /usr/lib/system/libsystem_symptoms.dylib
0x7fff6c09c000 - 0x7fff6c0afff7 libsystem_trace.dylib (829.30.14) <69EBF017-D40F-30D7-9B0B-BFC862D761A5> /usr/lib/system/libsystem_trace.dylib
0x7fff6c0b1000 - 0x7fff6c0b6ff7 libunwind.dylib (35.3) <6D4FCD49-D2A9-3233-95C7-A7635CE265F2> /usr/lib/system/libunwind.dylib
0x7fff6c0b7000 - 0x7fff6c0e3ff7 libxpc.dylib (1205.30.29) <F7E5F1BC-614B-39CB-B6CE-92A9C7B7EC0B> /usr/lib/system/libxpc.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
Calls made by this process:
Calls made by this process:
task_for_pid: 0
thread_create: 0
Calls made by all processes on this machine:
Calls made by all processes on this machine:
task_for_pid: 2376
thread_create: 0
VM Region Summary:
VM Region Summary:
ReadOnly portion of Libraries: Total=198.4M resident=0K(0%) swapped_out_or_unallocated=198.4M(100%)
Writable regions: Total=82.8M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=82.8M(100%)
VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Kernel Alloc Once 8K 2 MALLOC 18.5M 9 MALLOC guard page 16K 4 Stack Guard 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE (reserved) 128K 2 reserved VM address space (unallocated)
__DATA 4544K 44 __LINKEDIT 189.0M 5 __TEXT 9640K 44 =========== ======= ======= TOTAL 285.5M 109 TOTAL 285.5M 109 TOTAL, minus reserved VM space 285.3M 109 travis_fold:start:crashlog
travis_fold:start:crashlog
/Users/travis/Library/Logs/DiagnosticReports/a_2019-05-04-172717_Traviss-Mac-1044.crash
Process: a [45143]
Path: /Users/USER/*/a
Version: 0
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [45130]
Responsible: a [45143]
User ID: 501
Date/Time: 2019-05-04 17:27:11.659 +0000
OS Version: Mac OS X 10.13.3 (17D47)
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Time Awake Since Boot: 5100 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [0]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libstd-eab9b87ea2f8ecdb.dylib 0x0000000103585ade std::panicking::rust_panic_with_hook::h7727ab2ea491e89c + 142
1 a 0x00000001035548c5 std::panicking::begin_panic::hb96124c01d149146 + 37
2 a 0x00000001035523ec _$LT$backtrace..double..Double$u20$as$u20$core..ops..drop..Drop$GT$::drop::hcc2b5a39c3723dfb + 28
3 a 0x0000000103551e39 core::ptr::real_drop_in_place::ha38bdcda67050f55 + 9
4 a 0x00000001035523c3 backtrace::double::h0c99cc05786c6af0 + 35
5 a 0x0000000103553539 backtrace::main::hcde7a1a1c3c85e77 + 4201 (backtrace.rs:103)
6 a 0x00000001035518f6 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h500aa6ffbc5e418e + 6 (rt.rs:64)
7 libstd-eab9b87ea2f8ecdb.dylib 0x0000000103585558 std::panicking::try::do_call::h9fa7e6361b2e4d90 + 24
8 libstd-eab9b87ea2f8ecdb.dylib 0x000000010359560f __rust_maybe_catch_panic + 31
9 libstd-eab9b87ea2f8ecdb.dylib 0x000000010358603e std::rt::lang_start_internal::h954b4be21ff606b2 + 542
10 a 0x0000000103553d79 main + 41
11 libdyld.dylib 0x00007fff6bdfa115 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x00007ffeec6af2d8 rbx: 0x0000000000000002 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000002 rsi: 0x00000001035cdb62 rbp: 0x00007ffeec6af3d0 rsp: 0x00007ffeec6af300
r8: 0xffffffff00000100 r9: 0x00000001036009d0 r10: 0x000000000000002b r11: 0x0000000000000296
r12: 0x0000000000000000 r13: 0x00000001035cc8c8 r14: 0x0000000103556460 r15: 0x00007ffeec6af3e0
rip: 0x0000000103585ade rfl: 0x0000000000010206 cr2: 0x00000001012e2000
Logical CPU: 1
Error Code: 0x00000000
Trap Number: 6
Binary Images:
0x10354e000 - 0x103555ff7 +a (0) <974C7262-E663-3C83-A0FC-537C36B6FB90> /Users/USER/*/a
0x103561000 - 0x1035f8fff +libstd-eab9b87ea2f8ecdb.dylib (0) <CF57B36F-7BEA-3E2A-9DCE-BF16C917A998> /Users/USER/*/libstd-eab9b87ea2f8ecdb.dylib
0x110b00000 - 0x110b4a98f dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
0x7fff69664000 - 0x7fff69697fff libclosured.dylib (519.2.2) <48051216-5647-3643-B979-B77D0FD20011> /usr/lib/closure/libclosured.dylib
0x7fff69b76000 - 0x7fff69b77ff3 libSystem.B.dylib (1252) <47329E26-DC23-3EBA-9461-37755368327D> /usr/lib/libSystem.B.dylib
0x7fff69e2c000 - 0x7fff69e82fff libc++.1.dylib (400.9) <FCF5E1F6-2B04-3545-8004-F3AB32FED172> /usr/lib/libc++.1.dylib
0x7fff69e83000 - 0x7fff69ea7ff7 libc++abi.dylib (400.7) <217656D5-BC40-37FF-B322-91CB2AAD4F34> /usr/lib/libc++abi.dylib
0x7fff6b1f9000 - 0x7fff6b5ea3b7 libobjc.A.dylib (723) <37A7D77E-952C-3F5D-970B-3CDE349B2322> /usr/lib/libobjc.A.dylib
0x7fff6b6b7000 - 0x7fff6b6d3ffb libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
0x7fff6bc91000 - 0x7fff6bc95ff7 libcache.dylib (80) <354F3B7D-404E-3398-9EBF-65CA2CE65211> /usr/lib/system/libcache.dylib
0x7fff6bc96000 - 0x7fff6bca0ff3 libcommonCrypto.dylib (60118.30.2) <674286D3-7744-36A3-9AAA-49DFCD97A986> /usr/lib/system/libcommonCrypto.dylib
0x7fff6bca1000 - 0x7fff6bca8fff libcompiler_rt.dylib (62) <4487CFBA-A5D7-3282-9E6B-94CAD7BE507E> /usr/lib/system/libcompiler_rt.dylib
0x7fff6bca9000 - 0x7fff6bcb1ffb libcopyfile.dylib (146.30.2) <2C7C67D7-562B-3FFA-973D-BACF4C10E1EC> /usr/lib/system/libcopyfile.dylib
0x7fff6bcb2000 - 0x7fff6bd37fff libcorecrypto.dylib (562.30.10) <8A53EFE1-AFCA-3676-BEE1-FA5ED9F0E222> /usr/lib/system/libcorecrypto.dylib
0x7fff6bdbf000 - 0x7fff6bdf8ff7 libdispatch.dylib (913.30.4) <7D0E3183-282B-3FEE-A734-2C0ADC092084> /usr/lib/system/libdispatch.dylib
0x7fff6bdf9000 - 0x7fff6be16ff7 libdyld.dylib (519.2.2) <C50D02BC-A333-3313-B787-02F255A6783F> /usr/lib/system/libdyld.dylib
0x7fff6be17000 - 0x7fff6be17ffb libkeymgr.dylib (28) <6D84A96F-C65B-38EC-BDB5-21FD2C97E7B2> /usr/lib/system/libkeymgr.dylib
0x7fff6be25000 - 0x7fff6be25ff7 liblaunch.dylib (1205.30.29) <E66F58ED-C15E-3DFB-BC22-A861E13918C6> /usr/lib/system/liblaunch.dylib
0x7fff6be26000 - 0x7fff6be2affb libmacho.dylib (900.0.1) <756F2553-07B6-3B42-ACEA-2F0F1A5E8D0F> /usr/lib/system/libmacho.dylib
0x7fff6be2b000 - 0x7fff6be2dff3 libquarantine.dylib (86) <6AC8773F-3817-3D82-99C2-01BABB9C3CBB> /usr/lib/system/libquarantine.dylib
0x7fff6be2e000 - 0x7fff6be2fff3 libremovefile.dylib (45) <912FA211-DD8C-3C92-8424-21B89F8B10FD> /usr/lib/system/libremovefile.dylib
0x7fff6be30000 - 0x7fff6be47fff libsystem_asl.dylib (356.1.1) <94972913-9DF0-3C78-847C-43E58919E3DA> /usr/lib/system/libsystem_asl.dylib
0x7fff6be48000 - 0x7fff6be48fff libsystem_blocks.dylib (67) <F2493BB5-B1C6-3C4D-9F1F-1B402E0F1DB7> /usr/lib/system/libsystem_blocks.dylib
0x7fff6be49000 - 0x7fff6bed2ff7 libsystem_c.dylib (1244.30.3) <E0136C71-0648-36F0-9F84-82EA2748A8D7> /usr/lib/system/libsystem_c.dylib
0x7fff6bed3000 - 0x7fff6bed6ffb libsystem_configuration.dylib (963.30.1) <0F8D0B76-4F7D-34EC-AB6C-50F9465809DA> /usr/lib/system/libsystem_configuration.dylib
0x7fff6bed7000 - 0x7fff6bedaffb libsystem_coreservices.dylib (51) <21A488D0-2D07-344E-8631-CC8B2A246F35> /usr/lib/system/libsystem_coreservices.dylib
0x7fff6bedb000 - 0x7fff6bedcfff libsystem_darwin.dylib (1244.30.3) <2F750CB1-BC26-3FA3-AE59-553EE30D451B> /usr/lib/system/libsystem_darwin.dylib
0x7fff6bedd000 - 0x7fff6bee3ff7 libsystem_dnssd.dylib (878.30.4) <EB9BB165-45A4-367C-B33A-688D4F383A95> /usr/lib/system/libsystem_dnssd.dylib
0x7fff6bee4000 - 0x7fff6bf2dff7 libsystem_info.dylib (517.30.1) <7D79E167-4B5C-3833-81EE-3AF3FB53616D> /usr/lib/system/libsystem_info.dylib
0x7fff6bf2e000 - 0x7fff6bf53ff7 libsystem_kernel.dylib (4570.41.2) <5155A4C3-825B-3178-AC51-0D2D2F2A6618> /usr/lib/system/libsystem_kernel.dylib
0x7fff6bf54000 - 0x7fff6bf9ffcb libsystem_m.dylib (3146) <ABB1B85F-9FFE-31B8-AD4F-E39A30794A93> /usr/lib/system/libsystem_m.dylib
0x7fff6bfa0000 - 0x7fff6bfbffff libsystem_malloc.dylib (140.40.1) <36B22C99-D772-3039-9A4C-AA31389965E1> /usr/lib/system/libsystem_malloc.dylib
0x7fff6bfc0000 - 0x7fff6c064ff3 libsystem_network.dylib (1229.30.11) <40BAD301-8744-3AD8-A688-E7925C587B00> /usr/lib/system/libsystem_network.dylib
0x7fff6c065000 - 0x7fff6c06fffb libsystem_networkextension.dylib (767.40.1) <CEDC330D-28F0-3902-BEB0-10B92ACEC69F> /usr/lib/system/libsystem_networkextension.dylib
0x7fff6c070000 - 0x7fff6c079ff3 libsystem_notify.dylib (172) <98EA3D62-7C86-30DE-8261-D020D2F1EFF3> /usr/lib/system/libsystem_notify.dylib
0x7fff6c07a000 - 0x7fff6c081ff7 libsystem_platform.dylib (161.20.1) <C049250F-8C35-314D-810F-4E28AEAED983> /usr/lib/system/libsystem_platform.dylib
0x7fff6c082000 - 0x7fff6c08dfff libsystem_pthread.dylib (301.30.1) <ABA848E1-6978-3B42-A3A7-608B2C36FA93> /usr/lib/system/libsystem_pthread.dylib
0x7fff6c08e000 - 0x7fff6c091ff3 libsystem_sandbox.dylib (765.40.2) <922D3D15-AB4C-3F1A-A94F-39214AF1ADB3> /usr/lib/system/libsystem_sandbox.dylib
0x7fff6c092000 - 0x7fff6c093ff3 libsystem_secinit.dylib (30) <F06ADB8F-9E94-34A7-B3C9-2C22FDD14BAD> /usr/lib/system/libsystem_secinit.dylib
0x7fff6c094000 - 0x7fff6c09bff7 libsystem_symptoms.dylib (820.30.7) <DC3586C2-AA56-3419-88D3-FC0DBF08E3C0> /usr/lib/system/libsystem_symptoms.dylib
0x7fff6c09c000 - 0x7fff6c0afff7 libsystem_trace.dylib (829.30.14) <69EBF017-D40F-30D7-9B0B-BFC862D761A5> /usr/lib/system/libsystem_trace.dylib
0x7fff6c0b1000 - 0x7fff6c0b6ff7 libunwind.dylib (35.3) <6D4FCD49-D2A9-3233-95C7-A7635CE265F2> /usr/lib/system/libunwind.dylib
0x7fff6c0b7000 - 0x7fff6c0e3ff7 libxpc.dylib (1205.30.29) <F7E5F1BC-614B-39CB-B6CE-92A9C7B7EC0B> /usr/lib/system/libxpc.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
Calls made by this process:
Calls made by this process:
task_for_pid: 0
thread_create: 0
Calls made by all processes on this machine:
Calls made by all processes on this machine:
task_for_pid: 2376
thread_create: 0
VM Region Summary:
VM Region Summary:
ReadOnly portion of Libraries: Total=198.4M resident=0K(0%) swapped_out_or_unallocated=198.4M(100%)
Writable regions: Total=73.8M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=73.8M(100%)
VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Kernel Alloc Once 8K 2 MALLOC 9696K 9 MALLOC guard page 16K 5 Stack Guard 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE (reserved) 128K 2 reserved VM address space (unallocated)
__DATA 4544K 44 __LINKEDIT 189.0M 5 __TEXT 9640K 44 =========== ======= ======= TOTAL 276.5M 110 TOTAL 276.5M 110 TOTAL, minus reserved VM space 276.3M 110 travis_fold:start:crashlog
travis_fold:start:crashlog
/Users/travis/Library/Logs/DiagnosticReports/a_2019-05-04-172718-1_Traviss-Mac-1044.crash
Process: a [44322]
Path: /Users/USER/*/a
Version: 0
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [44317]
Responsible: a [44322]
User ID: 501
Date/Time: 2019-05-04 17:26:42.355 +0000
OS Version: Mac OS X 10.13.3 (17D47)
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Time Awake Since Boot: 5100 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [0]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 a 0x000000010e6628ae abort_on_c_abi::panic_in_ffi::h5d17554117e8ddd6 + 30
1 a 0x000000010e661ca9 std::panicking::try::do_call::h45c5cbbab5849d8f (.llvm.16517881753153639607) + 9
2 libstd-eab9b87ea2f8ecdb.dylib 0x000000010e69e60f __rust_maybe_catch_panic + 31
3 a 0x000000010e662b01 abort_on_c_abi::main::ha239c5d4a2ab8e27 + 593
4 a 0x000000010e6610f6 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::hc68263f5212c4ee9 + 6
5 libstd-eab9b87ea2f8ecdb.dylib 0x000000010e68e558 std::panicking::try::do_call::h9fa7e6361b2e4d90 + 24
6 libstd-eab9b87ea2f8ecdb.dylib 0x000000010e69e60f __rust_maybe_catch_panic + 31
7 libstd-eab9b87ea2f8ecdb.dylib 0x000000010e68f03e std::rt::lang_start_internal::h954b4be21ff606b2 + 542
8 a 0x000000010e662e09 main + 41
9 libdyld.dylib 0x00007fff6bdfa115 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x00007fa945c02bd0 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x00007ffee159cb38 rsi: 0x000000003fffffff rbp: 0x00007ffee159d590 rsp: 0x00007ffee159d590
r8: 0x00000000945c02c2 r9: 0x0000000000000004 r10: 0x0000000115d9f8c0 r11: 0x00007fff6c0b196c
r12: 0x000000010e9a2000 r13: 0x0000000000000000 r14: 0x00007ffee159d6b0 r15: 0x00007ffee159d5f8
rip: 0x000000010e6628ae rfl: 0x0000000000010202 cr2: 0x000000010e6d56b8
Logical CPU: 3
Error Code: 0x00000000
Trap Number: 6
Binary Images:
0x10e660000 - 0x10e663ff7 +a (0) <CCE4CAAB-BB94-358E-945E-0225E49E5467> /Users/USER/*/a
0x10e66a000 - 0x10e701fff +libstd-eab9b87ea2f8ecdb.dylib (0) <CF57B36F-7BEA-3E2A-9DCE-BF16C917A998> /Users/USER/*/libstd-eab9b87ea2f8ecdb.dylib
0x115d4d000 - 0x115d9798f dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
0x7fff69664000 - 0x7fff69697fff libclosured.dylib (519.2.2) <48051216-5647-3643-B979-B77D0FD20011> /usr/lib/closure/libclosured.dylib
0x7fff69b76000 - 0x7fff69b77ff3 libSystem.B.dylib (1252) <47329E26-DC23-3EBA-9461-37755368327D> /usr/lib/libSystem.B.dylib
0x7fff69e2c000 - 0x7fff69e82fff libc++.1.dylib (400.9) <FCF5E1F6-2B04-3545-8004-F3AB32FED172> /usr/lib/libc++.1.dylib
0x7fff69e83000 - 0x7fff69ea7ff7 libc++abi.dylib (400.7) <217656D5-BC40-37FF-B322-91CB2AAD4F34> /usr/lib/libc++abi.dylib
0x7fff6b1f9000 - 0x7fff6b5ea3b7 libobjc.A.dylib (723) <37A7D77E-952C-3F5D-970B-3CDE349B2322> /usr/lib/libobjc.A.dylib
0x7fff6b6b7000 - 0x7fff6b6d3ffb libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
0x7fff6bc91000 - 0x7fff6bc95ff7 libcache.dylib (80) <354F3B7D-404E-3398-9EBF-65CA2CE65211> /usr/lib/system/libcache.dylib
0x7fff6bc96000 - 0x7fff6bca0ff3 libcommonCrypto.dylib (60118.30.2) <674286D3-7744-36A3-9AAA-49DFCD97A986> /usr/lib/system/libcommonCrypto.dylib
0x7fff6bca1000 - 0x7fff6bca8fff libcompiler_rt.dylib (62) <4487CFBA-A5D7-3282-9E6B-94CAD7BE507E> /usr/lib/system/libcompiler_rt.dylib
0x7fff6bca9000 - 0x7fff6bcb1ffb libcopyfile.dylib (146.30.2) <2C7C67D7-562B-3FFA-973D-BACF4C10E1EC> /usr/lib/system/libcopyfile.dylib
0x7fff6bcb2000 - 0x7fff6bd37fff libcorecrypto.dylib (562.30.10) <8A53EFE1-AFCA-3676-BEE1-FA5ED9F0E222> /usr/lib/system/libcorecrypto.dylib
0x7fff6bdbf000 - 0x7fff6bdf8ff7 libdispatch.dylib (913.30.4) <7D0E3183-282B-3FEE-A734-2C0ADC092084> /usr/lib/system/libdispatch.dylib
0x7fff6bdf9000 - 0x7fff6be16ff7 libdyld.dylib (519.2.2) <C50D02BC-A333-3313-B787-02F255A6783F> /usr/lib/system/libdyld.dylib
0x7fff6be17000 - 0x7fff6be17ffb libkeymgr.dylib (28) <6D84A96F-C65B-38EC-BDB5-21FD2C97E7B2> /usr/lib/system/libkeymgr.dylib
0x7fff6be25000 - 0x7fff6be25ff7 liblaunch.dylib (1205.30.29) <E66F58ED-C15E-3DFB-BC22-A861E13918C6> /usr/lib/system/liblaunch.dylib
0x7fff6be26000 - 0x7fff6be2affb libmacho.dylib (900.0.1) <756F2553-07B6-3B42-ACEA-2F0F1A5E8D0F> /usr/lib/system/libmacho.dylib
0x7fff6be2b000 - 0x7fff6be2dff3 libquarantine.dylib (86) <6AC8773F-3817-3D82-99C2-01BABB9C3CBB> /usr/lib/system/libquarantine.dylib
0x7fff6be2e000 - 0x7fff6be2fff3 libremovefile.dylib (45) <912FA211-DD8C-3C92-8424-21B89F8B10FD> /usr/lib/system/libremovefile.dylib
0x7fff6be30000 - 0x7fff6be47fff libsystem_asl.dylib (356.1.1) <94972913-9DF0-3C78-847C-43E58919E3DA> /usr/lib/system/libsystem_asl.dylib
0x7fff6be48000 - 0x7fff6be48fff libsystem_blocks.dylib (67) <F2493BB5-B1C6-3C4D-9F1F-1B402E0F1DB7> /usr/lib/system/libsystem_blocks.dylib
0x7fff6be49000 - 0x7fff6bed2ff7 libsystem_c.dylib (1244.30.3) <E0136C71-0648-36F0-9F84-82EA2748A8D7> /usr/lib/system/libsystem_c.dylib
0x7fff6bed3000 - 0x7fff6bed6ffb libsystem_configuration.dylib (963.30.1) <0F8D0B76-4F7D-34EC-AB6C-50F9465809DA> /usr/lib/system/libsystem_configuration.dylib
0x7fff6bed7000 - 0x7fff6bedaffb libsystem_coreservices.dylib (51) <21A488D0-2D07-344E-8631-CC8B2A246F35> /usr/lib/system/libsystem_coreservices.dylib
0x7fff6bedb000 - 0x7fff6bedcfff libsystem_darwin.dylib (1244.30.3) <2F750CB1-BC26-3FA3-AE59-553EE30D451B> /usr/lib/system/libsystem_darwin.dylib
0x7fff6bedd000 - 0x7fff6bee3ff7 libsystem_dnssd.dylib (878.30.4) <EB9BB165-45A4-367C-B33A-688D4F383A95> /usr/lib/system/libsystem_dnssd.dylib
0x7fff6bee4000 - 0x7fff6bf2dff7 libsystem_info.dylib (517.30.1) <7D79E167-4B5C-3833-81EE-3AF3FB53616D> /usr/lib/system/libsystem_info.dylib
0x7fff6bf2e000 - 0x7fff6bf53ff7 libsystem_kernel.dylib (4570.41.2) <5155A4C3-825B-3178-AC51-0D2D2F2A6618> /usr/lib/system/libsystem_kernel.dylib
0x7fff6bf54000 - 0x7fff6bf9ffcb libsystem_m.dylib (3146) <ABB1B85F-9FFE-31B8-AD4F-E39A30794A93> /usr/lib/system/libsystem_m.dylib
0x7fff6bfa0000 - 0x7fff6bfbffff libsystem_malloc.dylib (140.40.1) <36B22C99-D772-3039-9A4C-AA31389965E1> /usr/lib/system/libsystem_malloc.dylib
0x7fff6bfc0000 - 0x7fff6c064ff3 libsystem_network.dylib (1229.30.11) <40BAD301-8744-3AD8-A688-E7925C587B00> /usr/lib/system/libsystem_network.dylib
0x7fff6c065000 - 0x7fff6c06fffb libsystem_networkextension.dylib (767.40.1) <CEDC330D-28F0-3902-BEB0-10B92ACEC69F> /usr/lib/system/libsystem_networkextension.dylib
0x7fff6c070000 - 0x7fff6c079ff3 libsystem_notify.dylib (172) <98EA3D62-7C86-30DE-8261-D020D2F1EFF3> /usr/lib/system/libsystem_notify.dylib
0x7fff6c07a000 - 0x7fff6c081ff7 libsystem_platform.dylib (161.20.1) <C049250F-8C35-314D-810F-4E28AEAED983> /usr/lib/system/libsystem_platform.dylib
0x7fff6c082000 - 0x7fff6c08dfff libsystem_pthread.dylib (301.30.1) <ABA848E1-6978-3B42-A3A7-608B2C36FA93> /usr/lib/system/libsystem_pthread.dylib
0x7fff6c08e000 - 0x7fff6c091ff3 libsystem_sandbox.dylib (765.40.2) <922D3D15-AB4C-3F1A-A94F-39214AF1ADB3> /usr/lib/system/libsystem_sandbox.dylib
0x7fff6c092000 - 0x7fff6c093ff3 libsystem_secinit.dylib (30) <F06ADB8F-9E94-34A7-B3C9-2C22FDD14BAD> /usr/lib/system/libsystem_secinit.dylib
0x7fff6c094000 - 0x7fff6c09bff7 libsystem_symptoms.dylib (820.30.7) <DC3586C2-AA56-3419-88D3-FC0DBF08E3C0> /usr/lib/system/libsystem_symptoms.dylib
0x7fff6c09c000 - 0x7fff6c0afff7 libsystem_trace.dylib (829.30.14) <69EBF017-D40F-30D7-9B0B-BFC862D761A5> /usr/lib/system/libsystem_trace.dylib
0x7fff6c0b1000 - 0x7fff6c0b6ff7 libunwind.dylib (35.3) <6D4FCD49-D2A9-3233-95C7-A7635CE265F2> /usr/lib/system/libunwind.dylib
0x7fff6c0b7000 - 0x7fff6c0e3ff7 libxpc.dylib (1205.30.29) <F7E5F1BC-614B-39CB-B6CE-92A9C7B7EC0B> /usr/lib/system/libxpc.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
Calls made by this process:
Calls made by this process:
task_for_pid: 0
thread_create: 0
Calls made by all processes on this machine:
Calls made by all processes on this machine:
task_for_pid: 2376
thread_create: 0
VM Region Summary:
VM Region Summary:
ReadOnly portion of Libraries: Total=198.4M resident=0K(0%) swapped_out_or_unallocated=198.4M(100%)
Writable regions: Total=73.4M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=73.4M(100%)
VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Kernel Alloc Once 8K 2 MALLOC 9260K 8 MALLOC guard page 16K 5 Stack Guard 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE 4K 2 VM_ALLOCATE (reserved) 128K 2 reserved VM address space (unallocated)
__DATA 4544K 44 __LINKEDIT 189.0M 5 __TEXT 9624K 44 =========== ======= ======= TOTAL 276.0M 109 TOTAL 276.0M 109 TOTAL, minus reserved VM space 275.9M 109 travis_fold:start:crashlog
travis_fold:start:crashlog
/Users/travis/Library/Logs/DiagnosticReports/a_2019-05-04-172809_Traviss-Mac-1044.crash
Process: a [46831]
Path: /Users/USER/*/a
Version: 0
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [46829]
Responsible: a [46831]
User ID: 501
Date/Time: 2019-05-04 17:28:08.161 +0000
OS Version: Mac OS X 10.13.3 (17D47)
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Anonymous UUID: A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Time Awake Since Boot: 5200 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
abort() called
abort() called
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff6bf49e3e __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6c088150 pthread_kill + 333
2 libsystem_c.dylib 0x00007fff6bea6312 abort + 127
3 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035b9af9 std::sys::unix::abort_internal::hadb7421ad5d397a3 + 9
4 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035a9b70 rust_oom + 32
5 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035cae09 alloc::alloc::handle_alloc_error::h2824bdf05f4ed422 + 9
6 a 0x000000010357e39f default_alloc_error_hook::main::hbf2d06db626d002e + 767
7 a 0x000000010357dba6 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::hbe0a0621cbf1919f + 6
8 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035aa558 std::panicking::try::do_call::h9fa7e6361b2e4d90 + 24
9 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035ba60f __rust_maybe_catch_panic + 31
10 libstd-eab9b87ea2f8ecdb.dylib 0x00000001035ab03e std::rt::lang_start_internal::h954b4be21ff606b2 + 542
11 a 0x000000010357e4f9 main + 41
12 libdyld.dylib 0x00007fff6bdfa115 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x00007fffa4b20340 rcx: 0x00007ffeec681508 rdx: 0x0000000000000000
rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00007ffeec681540 rsp: 0x00007ffeec681508
r8: 0x0000000000000000 r9: 0x0000000000000002 r10: 0x0000000000000000 r11: 0x0000000000000206
r12: 0x0000000000000307 r13: 0x0000000000000000 r14: 0x0000000000000006 r15: 0x000000000000002d
rip: 0x00007fff6bf49e3e rfl: 0x0000000000000206 cr2: 0x00007fffa4afe148
Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133
Binary Images:
0x10357c000 - 0x10357eff7 +a (0) <89415638-26CA-3B94-954B-EFC0E7176D1A> /Users/USER/*/a
0x103586000 - 0x10361dfff +libstd-eab9b87ea2f8ecdb.dylib (0) <CF57B36F-7BEA-3E2A-9DCE-BF16C917A998> /Users/USER/*/libstd-eab9b87ea2f8ecdb.dylib
0x1065ae000 - 0x1065f898f dyld (519.2.2) <6695F30B-4E88-3C0B-9867-7D738C44A3E6> /usr/lib/dyld
0x7fff69664000 - 0x7fff69697fff libclosured.dylib (519.2.2) <48051216-5647-3643-B979-B77D0FD20011> /usr/lib/closure/libclosured.dylib
0x7fff69b76000 - 0x7fff69b77ff3 libSystem.B.dylib (1252) <47329E26-DC23-3EBA-9461-37755368327D> /usr/lib/libSystem.B.dylib
0x7fff69e2c000 - 0x7fff69e82fff libc++.1.dylib (400.9) <FCF5E1F6-2B04-3545-8004-F3AB32FED172> /usr/lib/libc++.1.dylib
0x7fff69e83000 - 0x7fff69ea7ff7 libc++abi.dylib (400.7) <217656D5-BC40-37FF-B322-91CB2AAD4F34> /usr/lib/libc++abi.dylib
0x7fff6b1f9000 - 0x7fff6b5ea3b7 libobjc.A.dylib (723) <37A7D77E-952C-3F5D-970B-3CDE349B2322> /usr/lib/libobjc.A.dylib
0x7fff6b6b7000 - 0x7fff6b6d3ffb libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
0x7fff6bc91000 - 0x7fff6bc95ff7 libcache.dylib (80) <354F3B7D-404E-3398-9EBF-65CA2CE65211> /usr/lib/system/libcache.dylib
0x7fff6bc96000 - 0x7fff6bca0ff3 libcommonCrypto.dylib (60118.30.2) <674286D3-7744-36A3-9AAA-49DFCD97A986> /usr/lib/system/libcommonCrypto.dylib
0x7fff6bca1000 - 0x7fff6bca8fff libcompiler_rt.dylib (62) <4487CFBA-A5D7-3282-9E6B-94CAD7BE507E> /usr/lib/system/libcompiler_rt.dylib
0x7fff6bca9000 - 0x7fff6bcb1ffb libcopyfile.dylib (146.30.2) <2C7C67D7-562B-3FFA-973D-BACF4C10E1EC> /usr/lib/system/libcopyfile.dylib
0x7fff6bcb2000 - 0x7fff6bd37fff libcorecrypto.dylib (562.30.10) <8A53EFE1-AFCA-3676-BEE1-FA5ED9F0E222> /usr/lib/system/libcorecrypto.dylib
0x7fff6bdbf000 - 0x7fff6bdf8ff7 libdispatch.dylib (913.30.4) <7D0E3183-282B-3FEE-A734-2C0ADC092084> /usr/lib/system/libdispatch.dylib
0x7fff6bdf9000 - 0x7fff6be16ff7 libdyld.dylib (519.2.2) <C50D02BC-A333-3313-B787-02F255A6783F> /usr/lib/system/libdyld.dylib
0x7fff6be17000 - 0x7fff6be17ffb libkeymgr.dylib (28) <6D84A96F-C65B-38EC-BDB5-21FD2C97E7B2> /usr/lib/system/libkeymgr.dylib
0x7fff6be25000 - 0x7fff6be25ff7 liblaunch.dylib (1205.30.29) <E66F58ED-C15E-3DFB-BC22-A861E13918C6> /usr/lib/system/liblaunch.dylib
0x7fff6be26000 - 0x7fff6be2affb libmacho.dylib (900.0.1) <756F2553-07B6-3B42-ACEA-2F0F1A5E8D0F> /usr/lib/system/libmacho.dylib
0x7fff6be2b000 - 0x7fff6be2dff3 libquarantine.dylib (86) <6AC8773F-3817-3D82-99C2-01BABB9C3CBB> /usr/lib/system/libquarantine.dylib
0x7fff6be2e000 - 0x7fff6be2fff3 libremovefile.dylib (45) <912FA211-DD8C-3C92-8424-21B89F8B10FD> /usr/lib/system/libremovefile.dylib
0x7fff6be30000 - 0x7fff6be47fff libsystem_asl.dylib (356.1.1) <94972913-9DF0-3C78-847C-43E58919E3DA> /usr/lib/system/libsystem_asl.dylib
0x7fff6be48000 - 0x7fff6be48fff libsystem_blocks.dylib (67) <F2493BB5-B1C6-3C4D-9F1F-1B402E0F1DB7> /usr/lib/system/libsystem_blocks.dylib
0x7fff6be49000 - 0x7fff6bed2ff7 libsystem_c.dylib (1244.30.3) <E0136C71-0648-36F0-9F84-82EA2748A8D7> /usr/lib/system/libsystem_c.dylib
0x7fff6bed3000 - 0x7fff6bed6ffb libsystem_configuration.dylib (963.30.1) <0F8D0B76-4F7D-34EC-AB6C-50F9465809DA> /usr/lib/system/libsystem_configuration.dylib
0x7fff6bed7000 - 0x7fff6bedaffb libsystem_coreservices.dylib (51) <21A488D0-2D07-344E-8631-CC8B2A246F35> /usr/lib/system/libsystem_coreservices.dylib
0x7fff6bedb000 - 0x7fff6bedcfff libsystem_darwin.dylib (1244.30.3) <2F750CB1-BC26-3FA3-AE59-553EE30D451B> /usr/lib/system/libsystem_darwin.dylib
0x7fff6bedd000 - 0x7fff6bee3ff7 libsystem_dnssd.dylib (878.30.4) <EB9BB165-45A4-367C-B33A-688D4F383A95> /usr/lib/system/libsystem_dnssd.dylib
0x7fff6bee4000 - 0x7fff6bf2dff7 libsystem_info.dylib (517.30.1) <7D79E167-4B5C-3833-81EE-3AF3FB53616D> /usr/lib/system/libsystem_info.dylib
0x7fff6bf2e000 - 0x7fff6bf53ff7 libsystem_kernel.dylib (4570.41.2) <5155A4C3-825B-3178-AC51-0D2D2F2A6618> /usr/lib/system/libsystem_kernel.dylib
0x7fff6bf54000 - 0x7fff6bf9ffcb libsystem_m.dylib (3146) <ABB1B85F-9FFE-31B8-AD4F-E39A30794A93> /usr/lib/system/libsystem_m.dylib
0x7fff6bfa0000 - 0x7fff6bfbffff libsystem_malloc.dylib (140.40.1) <36B22C99-D772-3039-9A4C-AA31389965E1> /usr/lib/system/libsystem_malloc.dylib
0x7fff6bfc0000 - 0x7fff6c064ff3 libsystem_network.dylib (1229.30.11) <40BAD301-8744-3AD8-A688-E7925C587B00> /usr/lib/system/libsystem_network.dylib
0x7fff6c065000 - 0x7fff6c06fffb libsystem_networkextension.dylib (767.40.1) <CEDC330D-28F0-3902-BEB0-10B92ACEC69F> /usr/lib/system/libsystem_networkextension.dylib
0x7fff6c070000 - 0x7fff6c079ff3 libsystem_notify.dylib (172) <98EA3D62-7C86-30DE-8261-D020D2F1EFF3> /usr/lib/system/libsystem_notify.dylib
0x7fff6c07a000 - 0x7fff6c081ff7 libsystem_platform.dylib (161.20.1) <C049250F-8C35-314D-810F-4E28AEAED983> /usr/lib/system/libsystem_platform.dylib
0x7fff6c082000 - 0x7fff6c08dfff libsystem_pthread.dylib (301.30.1) <ABA848E1-6978-3B42-A3A7-608B2C36FA93> /usr/lib/system/libsystem_pthread.dylib
0x7fff6c08e000 - 0x7fff6c091ff3 libsystem_sandbox.dylib (765.40.2) <922D3D15-AB4C-3F1A-A94F-39214AF1ADB3> /usr/lib/system/libsystem_sandbox.dylib
0x7fff6c092000 - 0x7fff6c093ff3 libsystem_secinit.dylib (30) <F06ADB8F-9E94-34A7-B3C9-2C22FDD14BAD> /usr/lib/system/libsystem_secinit.dylib
0x7fff6c094000 - 0x7fff6c09bff7 libsystem_symptoms.dylib (820.30.7) <DC3586C2-AA56-3419-88D3-FC0DBF08E3C0> /usr/lib/system/libsystem_symptoms.dylib
0x7fff6c09c000 - 0x7fff6c0afff7 libsystem_trace.dylib (829.30.14) <69EBF017-D40F-30D7-9B0B-BFC862D761A5> /usr/lib/system/libsystem_trace.dylib
0x7fff6c0b1000 - 0x7fff6c0b6ff7 libunwind.dylib (35.3) <6D4FCD49-D2A9-3233-95C7-A7635CE265F2> /usr/lib/system/libunwind.dylib
0x7fff6c0b7000 - 0x7fff6c0e3ff7 libxpc.dylib (1205.30.29) <F7E5F1BC-614B-39CB-B6CE-92A9C7B7EC0B> /usr/lib/system/libxpc.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
Calls made by this process:
Calls made by this process:
task_for_pid: 0
thread_create: 0
Calls made by all processes on this machine:

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@kennytm

kennytm commented May 4, 2019

Copy link
Copy Markdown
Member

@bors r-

This has broken address-sanitizer support.

@borsbors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 4, 2019
@froydnj

Copy link
Copy Markdown
ContributorAuthor

This has broken address-sanitizer support.

My plan here is to change the code that does the target triple checking:

// Sanitizers can only be used on some tested platforms with
// executables linked to `std`
constASAN_SUPPORTED_TARGETS:&[&str] = &["x86_64-unknown-linux-gnu",
"x86_64-apple-darwin"];
constTSAN_SUPPORTED_TARGETS:&[&str] = &["x86_64-unknown-linux-gnu",
"x86_64-apple-darwin"];
constLSAN_SUPPORTED_TARGETS:&[&str] = &["x86_64-unknown-linux-gnu"];
constMSAN_SUPPORTED_TARGETS:&[&str] = &["x86_64-unknown-linux-gnu"];
let supported_targets = match*sanitizer {
Sanitizer::Address => ASAN_SUPPORTED_TARGETS,
Sanitizer::Thread => TSAN_SUPPORTED_TARGETS,
Sanitizer::Leak => LSAN_SUPPORTED_TARGETS,
Sanitizer::Memory => MSAN_SUPPORTED_TARGETS,
};
if !supported_targets.contains(&&*self.sess.target.target.llvm_target){
self.sess.err(&format!("{:?}Sanitizer only works with the `{}` target",
sanitizer,
supported_targets.join("` or `")
));
return
}

to ask librustc_target for the Target associated with the textual target, and compare the Target's llvm_target to the Session's llvm_target. In an ideal world, that means both sides will go through translation to x86_64-apple-* and we can keep the magic of target translation in librustc_target.

@alexcrichton

Copy link
Copy Markdown
Member

Hm actually that's looking up in those tables with llvm_target, but I think that the value of --target from rustc itself may be more appropriate to look up?

@froydnj

Copy link
Copy Markdown
ContributorAuthor

Hm actually that's looking up in those tables with llvm_target, but I think that the value of --target from rustc itself may be more appropriate to look up?

Ah, that's a good point! You could make the tables contain Targets from those strings, or you could just propagate --target down and compare that instead of llvm_target. I'll see what seems easier.

@froydnj

Copy link
Copy Markdown
ContributorAuthor

Ah, I see, Session already provides access to Options, so accessing --target should not be a big deal!

froydnj added 2 commits May 7, 2019 11:09
This behavior matches clang's behavior, and makes cross-language LTO
possible.
Fixesrust-lang#60235.
@froydnj
froydnjforce-pushed the apple-target-modifications branch from 21fdfb7 to 97ba4c9CompareMay 7, 2019 15:11
@michaelwoerister

Copy link
Copy Markdown
Member

Thanks, @froydnj!

@bors r+

@bors

bors commented May 8, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 97ba4c9 has been approved by michaelwoerister

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 8, 2019
@bors

bors commented May 8, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 97ba4c9 with merge b92d360...

bors added a commit that referenced this pull request May 8, 2019
…oerister
conditionally modify darwin targets to macosx targets with versions
We need this behavior so that Rust LLVM IR objects match the target triple for Clang LLVM IR objects. This matching then convinces the linker that yes, you really can do cross-language LTO with objects from different compilers.
The newly-added tests seem to pass locally on x86_64-unknown-linux-gnu. I haven't done a full test run or tried the new compiler in an cross-language LTO setup yet.
@bors

bors commented May 8, 2019

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-travis, status-appveyor
Approved by: michaelwoerister
Pushing b92d360 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label May 8, 2019
@bors
bors merged commit 97ba4c9 into rust-lang:masterMay 8, 2019
@ehuss

ehuss commented May 9, 2019

Copy link
Copy Markdown
Contributor

This is causing warnings for me for very basic projects. For example:

fnmain(){}
rustc main.rs -Clto
warning: Linking two modules of different target triples: ' is 'x86_64-apple-macosx10.7.0' whereas 'main.7rcbfp3g-cgu.4' is 'x86_64-apple-darwin'
warning: Linking two modules of different target triples: ' is 'x86_64-apple-darwin' whereas 'main.7rcbfp3g-cgu.4' is 'x86_64-apple-macosx10.7.0'

This ends up breaking some of Cargo's testsuite.

@alexcrichton

Copy link
Copy Markdown
Member

I suspect this warning is printed by LLVM's own linker, @froydnj are you able to take a look into this and how to suppress/ignore the warnings?

@froydnj

Copy link
Copy Markdown
ContributorAuthor

I can reproduce the issue (only with rustc nightly, not the rustc from a build, for whatever reason). Dumping -Csave-temps, I see a bunch of *.no-opt.bc files that all have the x86_64-apple-darwin target triple, but then everything else has the x86_64-apple-macosx10.7.0 target triple. (I guess the *.no-opt.bc files come from compiling main.rs, but then when libstd enters the picture, the more specific target triple libstd files have "takes over"?)

Setting MACOSX_DEPLOYMENT_TARGET=10.9 in rustc's environment appears to make everything receive the correct target triple; any value of MACOSX_DEPLOYMENT_TARGET seems to work just fine.

Since MACOSX_STD_DEPLOYMENT_TARGET is set to 10.7 for compiling libstd, maybe rustc should just use x86_64-apple-macosx10.7.0 by default?

@alexcrichton

Copy link
Copy Markdown
Member

Yeah I think the issue is that rustc from our nightlies is built with MACOSX_STD_DEPLOYMENT_TARGET set to 10.7 which means the bitcode for libstd itself is set to 10.7, while the bitcode for user-generated code via Cargo has no version at all (causing the mismatch).

I'd be wary to switch to 10.7 everywhere because I don't really fully understand the implications of doing so. Even if we defaulted to 10.7 the warning would come up if the user configured to 10.9 for example during LTO.

Perhaps we could patch the listed target triple for a module on OSX when we LTO them? Basically just reset the target on darwin to whatever the current target is during rustc's compilation? That would meant that libstd would get updated to x86_64-apple-darwin (no version) during normal LTO, and otherwise it would be switched to x86_64-apple-macosx10.9.0 if configured

@froydnj

Copy link
Copy Markdown
ContributorAuthor

I'd be wary to switch to 10.7 everywhere because I don't really fully understand the implications of doing so. Even if we defaulted to 10.7 the warning would come up if the user configured to 10.9 for example during LTO.

I think this wouldn't happen, because AFAICT--just by looking at the bitcode files, not by examining the LLVM code--the previously 10.7 bitcode files get munged into 10.9 bitcode files when MACOSX_DEPLOYMENT_TARGET=10.9 is set.

Perhaps we could patch the listed target triple for a module on OSX when we LTO them? Basically just reset the target on darwin to whatever the current target is during rustc's compilation? That would meant that libstd would get updated to x86_64-apple-darwin (no version) during normal LTO, and otherwise it would be switched to x86_64-apple-macosx10.9.0 if configured

I think this could work. What's not clear to me is whether rustc can twiddle the target triple for the bitcode in this fashion. Clearly some target triple twiddling can happen (see the above bit about 10.7 -> 10.9 libstd files), but I think that's happening in the black box of LLVM.

@alexcrichton

Copy link
Copy Markdown
Member

Oh so if we defaulted all OSX targets to x86_64-apple-macosx10.7.0 then that means libstd would continue to have bitcode with those targets. If 10.9 is set as the deployment target that'd mean new LLVM modules would be generated with x86_64-apple-macosx10.9.0, right? (that'd cause LTO warnings because libstd is 10.7 and the user-compiled bitcode is 10.7)

The modules are linked here, and it's true yeah I'm just assuming that Module in LLVM has some way to just change the target on the fly, and that may not be true.

@froydnj

Copy link
Copy Markdown
ContributorAuthor

Oh so if we defaulted all OSX targets to x86_64-apple-macosx10.7.0 then that means libstd would continue to have bitcode with those targets. If 10.9 is set as the deployment target that'd mean new LLVM modules would be generated with x86_64-apple-macosx10.9.0, right? (that'd cause LTO warnings because libstd is 10.7 and the user-compiled bitcode is 10.7)

My understanding is that this is incorrect: we have libstd with bitcode for 10.7 today due to the compilation environment for Rust releases. Defautling to x86_64-apple-macosx10.7.0 wouldn't change that state of affairs.

Defaulting to x86_64-apple-macosx10.7.0 means that for "user" code, bitcode would be generated for that target and be compatible with the libstd bitcode. For users that have MACOSX_DEPLOYMENT_TARGET set in the environment, the user code and the libstd bitcode files will both be tagged with the appropriate, matching x86_64-apple-macosx$VERSION. So we shouldn't have any mismatch problems depending on whether MACOSX_DEPLOYMENT_TARGET is set or not.

I will try to verify that understanding today.

@alexcrichton

Copy link
Copy Markdown
Member

For users that have MACOSX_DEPLOYMENT_TARGET set in the environment, the user code and the libstd bitcode files will both be tagged with the appropriate, matching x86_64-apple-macosx$VERSION.

I believe this is true of user code, but unless we rewrite the target listed in the libstd bytecode I don't think that this is true of libstd code? (in that libstd will mention 10.7 no matter what unless it's changed after-the-fact)

@froydnj

Copy link
Copy Markdown
ContributorAuthor

For users that have MACOSX_DEPLOYMENT_TARGET set in the environment, the user code and the libstd bitcode files will both be tagged with the appropriate, matching x86_64-apple-macosx$VERSION.

I believe this is true of user code, but unless we rewrite the target listed in the libstd bytecode I don't think that this is true of libstd code? (in that libstd will mention 10.7 no matter what unless it's changed after-the-fact)

For users that have MACOSX_DEPLOYMENT_TARGET set in the environment, the "user" code bitcode files would be generated with the x86_64-apple-macosx$VERSION target. Which, naively, does not match x86_64-apple-macosx10.7.0 in the general case. But the warning message comes from:

https://github.com/rust-lang/llvm-project/blob/84abffda0e03b03c62bdfc3cfeda1c2cf1f88c85/llvm/lib/Linker/IRMover.cpp#L1334-L1340

Note that the check for triples is isCompatible, which for apple vendors ignores versions:

https://github.com/rust-lang/llvm-project/blob/84abffda0e03b03c62bdfc3cfeda1c2cf1f88c85/llvm/lib/Support/Triple.cpp#L1552-L1555

And the isCompatible check would be satisfied with a ("user") bitcode module with x86_64-apple-macosx10.9.0 being merged with a (libstd) bitcode module with x86_64-apple-macosx10.7.0.

So it would be OK (and possibly more correct, even) to default to x86_64-apple-macosx10.7.0.

@alexcrichton

Copy link
Copy Markdown
Member

Fascinating! Thanks for digging and finding that @froydnj!

froydnj added a commit to froydnj/rust that referenced this pull request May 13, 2019
Over in rust-lang#60378, we made `rustc` switch LLVM target triples dynamically
based on the `MACOSX_DEPLOYMENT_TARGET` environment variable. This
change was made to align with `clang`'s behavior, and therefore make
cross-language LTO feasible on OS X. Otherwise, `rustc` would produce
LLVM bitcode files with a target triple of `x86_64-apple-darwin`,
`clang` would produce LLVM bitcode files with a target triple of
`x86_64-apple-macosx$VERSION`, and the linker would complain.
This change worked fine, except for one corner case: if you didn't have
`MACOSX_DEPLOYMENT_TARGET` set, and you wanted to do LTO on just Rust
code, you'd get warning messages similar to:
```
warning: Linking two modules of different target triples: ' is 'x86_64-apple-macosx10.7.0' whereas 'main.7rcbfp3g-cgu.4' is 'x86_64-apple-darwin'
```
This message occurs because libstd is compiled with
`MACOSX_DEPLOYMENT_TARGET` set to 10.7. The LLVM bitcode distributed in
libstd's rlibs, then, is tagged with the target triple of
`x86_64-apple-macosx10.7.0`, while the bitcode `rustc` produces for
"user" code is tagged with the target triple of `x86_64-apple-darwin`.
It's not good to have LTO on just Rust code (probably much more common
than cross-language LTO) warn by default. These warnings also break
Cargo's testsuite.
This change defaults to acting as though `MACOSX_DEPLOYMENT_TARGET` was
set to 10.7. "user" code will then be given a target triple that is
equivalent to the target triple libstd bitcode is already using. The
above warning will therefore go away.
`rustc` already assumes that compiling without
`MACOSX_DEPLOYMENT_TARGET` means that we're compiling for a target
compatible with OS X 10.7 (e.g. that things like TLS work properly). So
this change is really just making things conform more closely to the
status quo.
(It's also worth noting that before and after this patch, compiling with
`MACOSX_DEPLOYMENT_TARGET` set to, say, 10.9, works just fine: target
triples with an "apple" version ignore OS versions when checking
compatibility, so bitcode with a `x86_64-apple-macosx10.7.0` triple works just
fine with bitcode with a `x86_64-apple-macosx10.9.0` triple.)
@nikomatsakisnikomatsakis added the beta-nominated Nominated for backporting to the compiler in the beta channel. label May 14, 2019
@nikomatsakis

Copy link
Copy Markdown
Contributor

I'm nominated for beta at the request of FF team -- this is blocking them from adopting cross-language ThinLTO. (This would have to be backported with #60788, which hasn't landed yet.)

Centril added a commit to Centril/rust that referenced this pull request May 14, 2019
…followup, r=estebank
default to $ARCH-apple-macosx10.7.0 LLVM triple for darwin targets
Over in rust-lang#60378, we made `rustc` switch LLVM target triples dynamically
based on the `MACOSX_DEPLOYMENT_TARGET` environment variable. This
change was made to align with `clang`'s behavior, and therefore make
cross-language LTO feasible on OS X. Otherwise, `rustc` would produce
LLVM bitcode files with a target triple of `x86_64-apple-darwin`,
`clang` would produce LLVM bitcode files with a target triple of
`x86_64-apple-macosx$VERSION`, and the linker would complain.
This change worked fine, except for one corner case: if you didn't have
`MACOSX_DEPLOYMENT_TARGET` set, and you wanted to do LTO on just Rust
code, you'd get warning messages similar to:
```
warning: Linking two modules of different target triples: ' is 'x86_64-apple-macosx10.7.0' whereas 'main.7rcbfp3g-cgu.4' is 'x86_64-apple-darwin'
```
This message occurs because libstd is compiled with
`MACOSX_DEPLOYMENT_TARGET` set to 10.7. The LLVM bitcode distributed in
libstd's rlibs, then, is tagged with the target triple of
`x86_64-apple-macosx10.7.0`, while the bitcode `rustc` produces for
"user" code is tagged with the target triple of `x86_64-apple-darwin`.
It's not good to have LTO on just Rust code (probably much more common
than cross-language LTO) warn by default. These warnings also break
Cargo's testsuite.
This change defaults to acting as though `MACOSX_DEPLOYMENT_TARGET` was
set to 10.7. "user" code will then be given a target triple that is
equivalent to the target triple libstd bitcode is already using. The
above warning will therefore go away.
`rustc` already assumes that compiling without
`MACOSX_DEPLOYMENT_TARGET` means that we're compiling for a target
compatible with OS X 10.7 (e.g. that things like TLS work properly). So
this change is really just making things conform more closely to the
status quo.
(It's also worth noting that before and after this patch, compiling with
`MACOSX_DEPLOYMENT_TARGET` set to, say, 10.9, works just fine: target
triples with an "apple" version ignore OS versions when checking
compatibility, so bitcode with a `x86_64-apple-macosx10.7.0` triple works just
fine with bitcode with a `x86_64-apple-macosx10.9.0` triple.)
@pnkfelix

Copy link
Copy Markdown
Contributor

discussed at T-compiler meeting. Declining to backport, based on the understanding that this would need to be backported in tandem with #60788, and we declined to backport that PR for the reasons given here

@pnkfelixpnkfelix removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label May 16, 2019
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

@froydnj@rust-highfive@michaelwoerister@alexcrichton@eddyb@bors@kennytm@ehuss@nikomatsakis@pnkfelix