Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upLLVM 4.0 Upgrade #40123
Conversation
rust-highfive
assigned
brson
Feb 27, 2017
This comment has been minimized.
This comment has been minimized.
|
r? @brson (rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
|
@TimNN you can probably work faster than going through @bors by selectively adding I'd recommend doing that for a couple of the cross targets at least and then probably some of the other builders as well (such as emscripten) My guess is that AppVeyor will be one of the most difficult pieces to update as part of this upgrade. Unfortunately we don't have any extra capacity there for running tests so it may be difficult to do so on the PR before bors :( |
This comment has been minimized.
This comment has been minimized.
|
The debuginfo failures all occur because I'm unsure what the best fix would be here ( |
This comment has been minimized.
This comment has been minimized.
|
mean that gdb outputs In any case, requiring |
This comment has been minimized.
This comment has been minimized.
|
I vaguely remember about statics being optimized away the last summer already, when I wrote debuginfo tests for unions (one of the failing tests in this PR). |
This comment has been minimized.
This comment has been minimized.
It means that gdb prints Apparently I made some assumptions that weren't quite correct. The symbols exist (output of
Since this is apparently indeed debuginfo related I guess cc @michaelwoerister, @dylanmckay |
This comment has been minimized.
This comment has been minimized.
|
The generated IR, in case that helps anyone: https://gist.github.com/TimNN/92152a2f8062909805657d1bb4131998 |
This comment has been minimized.
This comment has been minimized.
|
The failed build of the
I saw the following panics:
Do they ring a bell for anyone? |
This comment has been minimized.
This comment has been minimized.
|
The |
TimNN
force-pushed the
TimNN:llvm40
branch
from
7bf22e0
to
f6f33f2
Feb 27, 2017
This comment has been minimized.
This comment has been minimized.
|
The android image fails with an LLVM assertion:
There are also some warnings (see below for an example), of which I am unsure how relevant / important they are.
|
This comment has been minimized.
This comment has been minimized.
|
@TimNN the former may be a bug in LLVM? (or just something we've never exposed ourselves before). The latter is normal, I believe it's happening on builds today. |
This comment has been minimized.
This comment has been minimized.
|
Oh we've also got ~10 extra capacity on Travis so feel free to test more than one row at a time if you'd like :) |
amboar
referenced this pull request
Feb 28, 2017
Closed
1.14.0 powerpc64le test failures: smoke_dtor, test_typed_arena_drop_small_count #39015
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton: Have you ever seen something like the qemu failures in #40123 (comment) before?
Ah, ok. I've been doing 3 at a time (when not debugging emscripten), but I guess I can run a few more :) |
This comment has been minimized.
This comment has been minimized.
|
The
I guess the fix here is to backport (part of?) rust-lang/llvm@58731be as well. |
This comment has been minimized.
This comment has been minimized.
|
I've been investigating the emscripten failures, see below for the findings. The one thing that both test have in common is that they use fixed sized arrays (
The
(with this code:) use std::mem;
#[repr(packed)]
#[derive(Copy, Clone, PartialEq, Debug)]
struct Foo {
bar: u8,
baz: u64
}
pub fn main() {
let foos = [Foo { bar: 1, baz: 2 }; 10];
assert_eq!(mem::size_of::<[Foo; 10]>(), 90);
for i in 0..10 {
println!("{:?}, {:?}", foos[i], Foo { bar: 1, baz: 2});
}
for &foo in &foos {
println!("{:?}, {:?}", foo, Foo { bar: 1, baz: 2 });
}
assert!(false);
}
The let mut x = E([0; 32]);
write_volatile(&mut x, E([1; 32]));
assert_eq!(read_volatile(&x), E([1; 32])); // line 61
assert_eq!(x, E([1; 32])); // line 62The output:
If line 61 is commented:
Note that other |
This comment has been minimized.
This comment has been minimized.
|
The QEMU failures don't look familiar but are perhaps indicative of the program segfaulting or otherwise exiting un-cleanly. Do you have the full logs I could help take a look at? The missing |
This comment has been minimized.
This comment has been minimized.
Ah, sorry, I linked the logs only from the original post, here they are: https://travis-ci.org/rust-lang/rust/jobs/205860539 |
This comment has been minimized.
This comment has been minimized.
|
Fascinating! Unfortunately I may not be of much help. Also thanks for the links, I should have looked around for them! Of the failures so far:
Some other tips I'd have is:
|
This comment has been minimized.
This comment has been minimized.
Yeah, I'm doing that right now :)
Alright, so the problem is, I think, that the following |
TimNN
force-pushed the
TimNN:llvm40
branch
2 times, most recently
from
a387dec
to
03412b9
Feb 28, 2017
This comment has been minimized.
This comment has been minimized.
|
@TimNN heh yeah that'd do it! I wonder if some more headers need to be copied from the NetBSD base system or something like that? Unfortunately I forget now at this point where I got those instructions from to build a NetBSD cross-compiler... |
This comment has been minimized.
This comment has been minimized.
|
Those warnings aren't new. I forget the cause. |
This comment has been minimized.
This comment has been minimized.
|
Some notes on the
|
This comment has been minimized.
This comment has been minimized.
|
Odd! I wouldn't entirely rule out a bug in qemu-test-{client,server} FWIW |
TimNN
force-pushed the
TimNN:llvm40
branch
2 times, most recently
from
a2f620f
to
934aa51
Mar 1, 2017
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
Yay, looks like all the builds timed out again, so things seem to be good to go. (I didn't verify all the logs this time). |
This comment has been minimized.
This comment has been minimized.
|
@TimNN looks great to me! I hope to branch beta later today, so want to pull out the fast-fail? I'll r+ this after the beta is branched. I'd also like to reiterate that you're at least my own personal "Rust Hero of the last N Months" where N is two and counting. If we delay this for 3 more days then it'll be a 2+ month PR! |
TimNN
force-pushed the
TimNN:llvm40
branch
from
516d3a0
to
8994277
Apr 24, 2017
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton: I removed the always fail commit.
Thanks a lot! All the positive encouragement and feedback has helped a lot in keeping me motivated to work on the upgrade :). |
This comment has been minimized.
This comment has been minimized.
Kixunil
commented
Apr 24, 2017
Mine too! :) |
This comment has been minimized.
This comment has been minimized.
|
@bors: r+ Beta's branched, let's do this! |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Apr 24, 2017
This comment has been minimized.
This comment has been minimized.
|
|
bors
merged commit 8994277
into
rust-lang:master
Apr 25, 2017
bors
referenced this pull request
Apr 25, 2017
Merged
appveyor: Upgrade to gcc for mingw 6.3.0 #41420
brson
added
the
relnotes
label
Apr 25, 2017
This comment has been minimized.
This comment has been minimized.
|
Thanks for slogging through this @TimNN. |
This comment has been minimized.
This comment has been minimized.
BatmanAoD
commented
Apr 25, 2017
|
Congratulations @TimNN! |
This comment has been minimized.
This comment has been minimized.
|
Thank you @TimNN! |
TimNN
deleted the
TimNN:llvm40
branch
Apr 25, 2017
This comment has been minimized.
This comment has been minimized.
|
|
cnd
added a commit
to gentoo/gentoo-rust
that referenced
this pull request
Apr 25, 2017
TimNN
referenced this pull request
Apr 27, 2017
Closed
can't build ole32-sys with nightly-gnu #41589
This comment has been minimized.
This comment has been minimized.
pkphilip
commented
May 6, 2017
|
Wow! Thanks a lot @TimNN! That is some effort! |
This comment has been minimized.
This comment has been minimized.
Kixunil
commented
May 6, 2017
|
I've just noticed that README mentions clang 3.x. Shouldn't this be updated? |
This comment has been minimized.
This comment has been minimized.
|
@Kixunil That part of the readme is about the C and C++ compiler used for compiling C and C++ dependencies during the build, not about the LLVM version. |
This comment has been minimized.
This comment has been minimized.
Kixunil
commented
May 6, 2017
|
@rkruppe I guess I'm too hungry and tired. Thank you for pointing that out! :) |
TimNN commentedFeb 27, 2017
•
edited
Since nobody has done this yet, I decided to get things started:
Todo:
rust-lang/llvmandrust-lang/compiler-rt.gitmodulesrust-lang/llvmwhich need backporting<optimized out>") failuresCloses #37609.
Test results:
Everything is green🎉