Closed
Description
Failure here, relevant snippet:
failures:
---- [debuginfo-gdb] debuginfo-gdb/type-names.rs stdout ----
executing aarch64-unknown-linux-gnu/stage2/bin/rustc /«BUILDDIR»/rustc-1.11.0+dfsg1/src/test/debuginfo/type-names.rs -L aarch64-unknown-linux-gnu/test/debuginfo-gdb/ --target=aarch64-unknown-linux-gnu -L aarch64-unknown-linux-gnu/test/debuginfo-gdb/type-names.stage2-aarch64-unknown-linux-gnu.debuginfo-gdb.libaux -C prefer-dynamic -o aarch64-unknown-linux-gnu/test/debuginfo-gdb/type-names.stage2-aarch64-unknown-linux-gnu -C link-args=-Wl,-z,relro --cfg rtopt -C rpath -L aarch64-unknown-linux-gnu/rt -g
------stdout------------------------------
------stderr------------------------------
------------------------------------------
error: compilation failed!
status: signal: 11
command: aarch64-unknown-linux-gnu/stage2/bin/rustc /«BUILDDIR»/rustc-1.11.0+dfsg1/src/test/debuginfo/type-names.rs -L aarch64-unknown-linux-gnu/test/debuginfo-gdb/ --target=aarch64-unknown-linux-gnu -L aarch64-unknown-linux-gnu/test/debuginfo-gdb/type-names.stage2-aarch64-unknown-linux-gnu.debuginfo-gdb.libaux -C prefer-dynamic -o aarch64-unknown-linux-gnu/test/debuginfo-gdb/type-names.stage2-aarch64-unknown-linux-gnu -C link-args=-Wl,-z,relro --cfg rtopt -C rpath -L aarch64-unknown-linux-gnu/rt -g
stdout:
------------------------------------------
------------------------------------------
stderr:
------------------------------------------
------------------------------------------
thread '[debuginfo-gdb] debuginfo-gdb/type-names.rs' panicked at 'explicit panic', /«BUILDDIR»/rustc-1.11.0+dfsg1/src/tools/compiletest/src/runtest.rs:2243
stack backtrace:
1: 0x7fb4edc84f - std::sys::backtrace::tracing::imp::write::h46e546df6e4e4fe6
2: 0x7fb4ee9043 - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h077deeda8b799591
3: 0x7fb4ee8acf - std::panicking::default_hook::heb8b6fd640571a4f
4: 0x7fb4eb23d7 - std::panicking::rust_panic_with_hook::hd7b83626099d3416
5: 0x555e330577 - std::panicking::begin_panic::hf17b963d1d3f11f5
6: 0x555e3455cb - compiletest::runtest::ProcRes::fatal::h96be905edb55698f
7: 0x555e35785f - compiletest::runtest::TestCx::fatal_proc_rec::h8398deadc2d3481b
8: 0x555e35f287 - compiletest::runtest::TestCx::run_debuginfo_gdb_test_no_opt::h693619ce1093299a
9: 0x555e34d0a3 - compiletest::runtest::TestCx::run_revision::haae9eca9e8cfdcc0
10: 0x555e334b7b - _<F as alloc..boxed..FnBox<A>>::call_box::hb25f1d3f86806d7d
11: 0x7fb52be4f3 - std::panicking::try::call::h62a4455a05e6ba27
12: 0x7fb4ef3f8b - __rust_try
13: 0x7fb4ef3f23 - __rust_maybe_catch_panic
14: 0x7fb52be8f7 - _<F as alloc..boxed..FnBox<A>>::call_box::h665ae3a23f3a9576
15: 0x7fb4ee71a3 - std::sys::thread::Thread::new::thread_start::hf2eed4b6f7149599
16: 0x7fb4c18017 - <unknown>
failures:
[debuginfo-gdb] debuginfo-gdb/type-names.rs
test result: FAILED. 97 passed; 1 failed; 5 ignored; 0 measured
thread 'main' panicked at 'Some tests failed', /«BUILDDIR»/rustc-1.11.0+dfsg1/src/tools/compiletest/src/main.rs:293
stack backtrace:
1: 0x7fb4edc84f - std::sys::backtrace::tracing::imp::write::h46e546df6e4e4fe6
2: 0x7fb4ee9043 - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::h077deeda8b799591
3: 0x7fb4ee8bd7 - std::panicking::default_hook::heb8b6fd640571a4f
4: 0x7fb4eb23d7 - std::panicking::rust_panic_with_hook::hd7b83626099d3416
5: 0x555e330577 - std::panicking::begin_panic::hf17b963d1d3f11f5
6: 0x555e329c47 - compiletest::main::h9488a95819777ee7
7: 0x7fb4ee83d7 - std::panicking::try::call::hca715a47aa047c49
8: 0x7fb4ef3f8b - __rust_try
9: 0x7fb4ef3f23 - __rust_maybe_catch_panic
10: 0x7fb4ee7dbb - std::rt::lang_start::h162055cb2e4b9fe7
11: 0x7fb4ca3363 - <unknown>
/«BUILDDIR»/rustc-1.11.0+dfsg1/mk/tests.mk:760: recipe for target 'tmp/check-stage2-T-aarch64-unknown-linux-gnu-H-aarch64-unknown-linux-gnu-debuginfo-gdb.ok' failed
make[2]: *** [tmp/check-stage2-T-aarch64-unknown-linux-gnu-H-aarch64-unknown-linux-gnu-debuginfo-gdb.ok] Error 101
make[2]: *** Waiting for unfinished jobs....
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
michaelwoerister commentedon Sep 8, 2016
Looks like a segmentation fault. Maybe a problem in LLVM? The Rust side doesn't do anything architecture specific, as far as I know.
infinity0 commentedon Sep 8, 2016
We are using not-rust's-fork of LLVM for this, yes. I'll have to investigate further later.
TimNN commentedon Sep 8, 2016
This may be #36023, which was indeed fixed by backporting an llvm patch in #36117.
michaelwoerister commentedon Sep 8, 2016
@infinity0: If it's really the issue @TimNN mentions, is there something you can do about that?
infinity0 commentedon Sep 8, 2016
Yes, I can have it backported to Debian's LLVM no problem. I just need some time to test and check that it does fix the issue.
infinity0 commentedon Sep 9, 2016
OK, I'm fairly sure the patch @TimNN mentioned does not fix the issue, at least not by itself. (I don't have root on the arm64 machine I have access to, so I can't patch the system LLVM, but I set
--llvm-root
for the rustc build to the custom one I patched and built. So I should be doing things the right way.)infinity0 commentedon Sep 9, 2016
I have the build environment and all the build files intact however, so let me know if I can run extra things for a better diagnosis.
infinity0 commentedon Sep 10, 2016
Here's a backtrace:
I am using Debian's LLVM 3.8.1-12 with this patch applied. I ran the following commands to get the above backtrace:
infinity0 commentedon Sep 10, 2016
I can make the segfault go away (the test compiles) if I comment out the following two lines:
of course the test fails because it's missing the expected output, but perhaps this can help you diagnose the problem.
TimNN commentedon Sep 10, 2016
Could this be related to #36142?
infinity0 commentedon Sep 10, 2016
Possibly yes. If I read things right, "stdcall" is x86 specific so it shouldn't be present in a cross-platform test, or at least it should be enabled only for a particular platform. So the segfault is just a secondary here; though of course there could be a better error message instead of a segfault.
Looking through
git grep
, there are other tests that also have "stdcall" in them (e.g.run-pass/extern-methods.rs
), and probably should be disabled or put behind an architecture-specific gate.However after doing a bit more research I'm confused. On the successful Debian arm64 build of 1.10.0 we see:
Neither of these tests changed between 1.10.0 and 1.11.0 so I'm wondering (a) why 1.11.0 doesn't ignore
type-names
like 1.10.0 does, and (b) how it managed to runextern-methods
successfully...infinity0 commentedon Sep 11, 2016
On second thoughts, I don't think this is related to #36142. I can make the test pass by further commenting out the test case for
extern_stdcall_fn_with_return_value
, i.e.:in additional to the other patch above. So arm64 can compile and test
extern_stdcall_fn
just fine, but fails withextern_stdcall_fn_with_return_value
(which also has an extra argument).infinity0 commentedon Sep 11, 2016
Minimal test case, fails even on rustc 1.10 (with Debian's LLVM):
However this does seem like a Debian-specific issue; I can't reproduce this with upstream 1.10 or 1.11.
infinity0 commentedon Sep 12, 2016
Continued in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837533. I think in general rust should just remove these "stdcall" tests or move them into a separate test that is only run on the appropriate platforms.
5 remaining items