-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARM build failing during bootstrap on Raspberry Pi 2 #10235
Comments
ccing @ViralBShah for advice and the proper tag :) |
As an additional data point: I did a completely clean build on the RPi2 and got the exact same error in the exact same place, so it's at least reproducible. |
There is a typo in the first line of ARM.inc. A |
Gah. Thanks, @ViralBShah - I don't know how I missed that. Rebuilding now. |
Turns out that line was not used anywhere, which is why nothing ever barfed. I have removed it now. Sorry about that. |
So - that seems to indicate that fixing it will NOT fix this error? :( |
...and indeed it has no discernible effect. Same error. |
@ViralBShah @StefanKarpinski - can you help me understand why defining a method dispatch would result in a BoundsError on its parameters, as is apparently happening here? The offending line (102) of version.jl is as follows:
|
OK, so line 102 in the error message isn't really line 102. I added some debugging statements in base/version.jl that moved the method dispatch down a line, and it's still complaining about 102:
What |
I pulled the latest everything and left it building earlier today (Samsung ARM Chromebook). Built fine, but this is with llvm-svn. |
@ihnorton do you think the issue I'm seeing is llvm-related? |
No idea. I'm building w 3.5 to see. Was about 1/2 through sysimg last time
|
Worked fine.
|
I am using llvm 3.5 just fine on my ARM chromebook. It is quite possible there is some memory corruption elsewhere, or that it is running out of memory. But if it was running out, I would have expected some other error. |
Doubtful its OOM. I've got a gig of ram and configured a gig of swap. I was On Feb 19, 2015, at 19:49, Viral B. Shah notifications@github.com wrote: I am using llvm 3.5 just fine on my ARM chromebook. It is quite possible — |
Try valgrind to see if something comes up? |
I don't suppose the sys.so is interchangeable? On Feb 19, 2015, at 19:43, Isaiah notifications@github.com wrote: Worked fine. LINK usr/lib/julia/sys.so — |
No harm trying! |
I don't know how to use valgrind. On Feb 19, 2015, at 19:53, Viral B. Shah notifications@github.com wrote: Try valgrind to see if something comes up? — |
I tried changing ARM.inc to have |
PS: I'm happy to give access to my rpi (via ssh) if anyone here would like to take a shot at getting this build working... |
I'm experiencing the same error trying to build on an oDroid:
|
I upgraded from wheezy to jessie, and now the build fails at a different point:
llvm as installed by apt:
This was in the section
|
@sbromberger that one's actually not an ARM-specific problem, see #10376 |
@tkelman ah, cool - I guess I have to wait for that PR to be merged before I can retry? |
Yeah, unless you want to try building 3.6 on your rpi, or there's a deb/ppa for 3.6 on arm somewhere. edit: you could also try checking out the commit immediately preceding 1d0b067 |
Thanks. 3.6 doesn't appear in an |
You could try changing the LLVM_VER in ARM.inc and leaving the build for a couple of days. :-) |
Hah. The bug might well be fixed before the compile finishes :) |
@ViralBShah is there a way to limit the number of julia processes spawned during |
|
@tkelman thanks. The RPi2 ran out of memory (and swap) with normal |
Hi, could you give a link for downloading these Julia binaries for RPI2? I would ne happy to have a test. Thank you again, regards. |
So close with
|
Something is probably still not set correctly for OpenBLAS. |
@baruchel - https://www.dropbox.com/s/6cuvzv2z1knbxah/julia-0.4-rpi2.tgz?dl=0 is the full (350+MB) build dir, and https://www.dropbox.com/s/l97tv8zm97vxcag/julia?dl=0 is the julia binary by itself (though I can't imagine it would work without supporting libs). |
@baruchel
@ViralBShah
And unfortunately my testall failed as well but different from @sbromberger's error. Mine is due to a missing module?
@sbromberger Since those tests took so long -- only to fail -- is it possible for me to comment out the ones that I think worked without messing up any other tests to be run downstream? I'd like to speed up subsequent testalls. I'll try to mess with it later tonight. |
Can someone submit a patch to On tests, I usually run the tests all one at a time. See various arm tagged issues, and file a new one if required. IIRC, on my setup, all linear algebra tests passed. |
I updated the build on my chromebook yesterday. The current Make.arm works On Wed, Apr 22, 2015 at 2:06 PM, Viral B. Shah notifications@github.com
|
Should we update Make.arm to use llvm 3.6.0? |
It didn't work. I had to use the precompiled bins from llvm.org. On Apr 22, 2015, at 11:57, Viral B. Shah notifications@github.com wrote: Should we update Make.arm to use llvm 3.6.0? — |
@sbromberger Can you provide a PR to README.arm.md providing these alternate steps? I am building on a scaleway.com arm machine, and can't get sys.ji to build. I have built LLVM 3.6.0 from source. BTW, scaleway arm machines are free until May 1.
|
that seems to be due to an autodetection issue with llvm. the build passes for me with the following patch:
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 3883359..4f7378d 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -5419,7 +5419,7 @@ extern "C" void jl_init_codegen(void)
#ifdef USE_MCJIT
jl_mcjmm = new SectionMemoryManager();
#endif
- const char *mattr[] = {
+ const char *mattr[] = { "-neon",
#ifndef USE_MCJIT
// Temporarily disable Haswell BMI2 features due to LLVM bug.
"-bmi2", "-avx2", |
@ViralBShah will propose a PR this morning. Stand by. ETA: #10986 |
I have succesfully built Julia on a RPi2 using the instructions above. For completeness, |
Per #10235 (comment), provide build instructions for Raspberry Pi 2. Update README.arm.md
I did some more tests. As for existing issues, I can reproduce #10124 and #10127. I do not see JuliaLang/LinearAlgebra.jl#181 in my build. I am now trying something similar to #8402 to get a complete picture. In the next few weeks we will be building a small cluster of Raspberry Pi's, for demonstration purposes. It is a poor man's supercomputer... It would be cool to have julia working for some demos - that is my interest here. |
RPi1 is ARMv6, RPi2 is ARMv7. |
true, but Viral is probably correct that it would work (as I understand it, the RPi2 system was designed to be highly compatible with the RPi1 system) /proc/cpuinfo says RPi2 is a 0xc07 llvm lib/Support/Host.cpp does not list this, so it gets detected as "generic" llvm lib/Target/ARM/ARM.td reveals that "generic" does not have a vfp, which make the calling convention incorrect (and the processor feature set selection suboptimal) |
For completeness, I did run a lot of tests two weeks ago on a Pi 2. The output was similar to #8402, but slightly better. I found more errors by uncommenting tests that failed. In addition to errors that have been reported, I encountered at least the following: two segmentation faults (strings.jl and readdlm.jl), an LLVM error (bitarray.jl), various issues with rationalize() (numbers.jl), and a 'mismatch of non-finite elements' error (pinv.jl). |
Many of these are already filed as separate issues, with the |
I am aware that you already, all of you, did a great job! Since Julia seems to be already usable for some simple tasks on the RPI2, do you think that some "release" package could be made available? Either some statically-linked binary or some archive containing only the binary with the necessary libraries (in some directory ready to be uncompressed into /opt/julia for instance)? That would be really useful. Thank you again to all, best regards, b. |
It is certainly on my TODO. However, the distribution package was crashing (even though the source was working). Will try again. Once I have something working, I will put it out. I guess we can announce alpha support for |
Per JuliaLang#10235 (comment), provide build instructions for Raspberry Pi 2. Update README.arm.md
I suspect that the build should be a lot smoother now. It would be nice to see if |
Just to confirm: a regular make just works on my Raspberry Pi 2 and leads to a functional REPL. LLVM 3.6.1 was built in the process. |
ARM.inc:
Make.user:
The text was updated successfully, but these errors were encountered: