-
Notifications
You must be signed in to change notification settings - Fork 140
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
Build failure on arm #18
Comments
Do we have access to any machines with these architectures? |
I have requested @sebastien-villemot to see if logins are possible. I think we should separate out Faddeeva and AMOS from openlibm, and keep it to just being a libm implementation. That way, Julia can then have a USE_SYSTEM_LIBM build option, which can be used on non x86 architectures. In any case, it would be nice to make openlibm work on the other architectures. |
I have a Raspberry Pi I can check ARM on, but I'm away from it for a couple of weeks. |
Would be great if you can try to build julia on ARM when you get to it. |
I'll need to set up a cross-compilation environment for a full build, but suspect I won't have enough RAM to run Julia if I do and we get lucky. I have a first run Pi with only 256 MB RAM. |
I tried to build Julia from source on my raspberry. Everything looks good until it comes to openblas. It tells that "This arch/CPU is not supported by OpenBLAS". Any ideas how to solve this? |
You need to build reference BLAS for now and link it with system blas etc. |
@riegaz The openblas project has now released an arm version. |
I also get a build failure when building the Fedora RPM package on arm7hl. Looks like x86 instructions have slipped in the build (maybe I've done something wrong). http://kojipkgs.fedoraproject.org//work/tasks/6329/6506329/build.log |
Failing on the Beaglebone Black (ARM):
|
I don't know what else you'll run into, but this should get you started:
Alternatively, you can just link julia against the system libm and skip building openlibm for now |
I would suggest simply using |
This is what I used last time I tried this: https://github.com/ihnorton/julia/compare/arm-make The base system built ok (note: using llvm-svn), but failed in bootstrap. |
Make is still attempting to build openlibm. I have created the following Make.user file in the project root. Perhaps I am configuring something incorrectly?
|
Can you try with
|
I get this on Ubuntu 14.04/arm32, after applying vtjnash's patch (above):
|
Removing all support for "long double" (which is just the same as "double" on ARM) fixed it for me: https://github.com/talex5/openlibm/commits/arm-hacks Note that I'm not actually trying to run Julia; I'm using it as the libm for an OCaml/Mirage unikernel. |
@talex5 Are you saying this code should be removed because |
The comment in
Since OCaml never uses long doubles anyway, this is fine for me. If you want to support 80-bit doubles on platforms with no native support, I guess you'd need to do more work. |
So, is removing long double support on ARM the correct solution? BTW, you don't need ARM hardware to debug this problem. You can just install an ARM cross-compiler (e.g. arm-linux-gnueabihf-gcc) and build with that. |
@talex5 So with this PR merged openlibm build on/for ARM for you? I'll give it a try then. Do the tests pass? |
It builds. I tried running test-double, and many tests fail with:
|
With the test for exceptions disabled and llrint calls removed (they make it hang), the output of
|
OK, so it looks not too far! :-) |
Builds on arm now, and powerpc is not a target of interest at this point! |
On Fedora arm the build works, but tests all fail with "Exception "Invalid operation" set". Any ideas? https://kojipkgs.fedoraproject.org//work/tasks/7049/8297049/build.log |
The failures may have to do with the long double and complex support I added yesterday. Let's keep this issue open. I also have an arm Chromebook. I can set things up for people to login to it for testing and generally helping with the arm ports. |
@ViralBShah Actually this build is using version 0.4, so it cannot be related with your changes from yesterday. |
And the result with 0.4.1 is very similar: |
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
This builds Openlibm on the Travis build host (x86) and also cross-compiles to ARM. Note: the tests currently fail on ARM, as noted in JuliaMath#18
@talex5 Is it fair to close this that openlibm works on ARM? @nalimilan reported some errors, but that URL is no longer valid. I suggest opening a new issue for specific breakages. |
@ViralBShah It build on ARM (and seems to work), but there are some failures in the unit tests, as reported above, so you might want to open a new issue for that. You can see the errors just by enabling the ARM tests in the Travis script and pushing to a new branch so it runs them. |
Good idea. Best to have a separate issue for various failing tests on different architectures and compilers. |
Openlibm fails to build on powerpc and arm. Failure is in compiling s_fma.c.
https://buildd.debian.org/status/package.php?p=julia&suite=sid
The text was updated successfully, but these errors were encountered: