Cannot build Julia -- openblas issues

Hi, I am trying to build Julia stable on OS X 10.12.4 (Intel core I7), with

GNU Fortran (Homebrew GCC 5.4.0_1) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.

GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING

I am failing to build because:

…/kernel/x86_64/dgemm_kernel_4x8_sandy.S:1849:1: error: unexpected token at start of statement

Writing Back

^
make[3]: *** [dtrmm_kernel_LN_SANDYBRIDGE.o] Error 1
make[2]: *** [libs] Error 1
*** Clean the OpenBLAS build with ‘make -C deps clean-openblas’. Rebuild with ‘make OPENBLAS_USE_THREAD=0’ if OpenBLAS had trouble linking libpthread.so, and with ‘make OPENBLAS_TARGET_ARCH=NEHALEM’ if there were errors building SandyBridge support. Both these options can also be used simultaneously. ***
make[1]: *** [build/openblas-12ab1804b6ebcd38b26960d65d254314d8bc33d6/libopenblas64_.dylib] Error 1
make: *** [julia-deps] Error 2

I tried the make -C deps clean-openblas and make OPENBLAS_TARGET_ARCH=NEHALEM and make OPENBLAS_USE_THREAD=0 but neither works (I get the same exact error).

This is due to https://github.com/xianyi/OpenBLAS/issues/942 and is fixed on master after https://github.com/JuliaLang/julia/pull/20842. I don’t think that fix has been backported, but you can apply that patch locally to fix your build.

How did it come up all at once today? I noticed it because Pkg.update() was throwing some issues, so I tried make cleanall && make with the error cropping up. Should I move to 0.6?

You probably updated your system compiler? It only happens with clang 3.9.

That’s entirely up to you (depending on package compatibility, whether you’re still dealing with 0.5 depwarns, etc). If you want to stick with 0.5, you can also use eg. gcc to compile Julia with. Or use the binaries from Download Julia

I’m happy to pass to 0.6 given it is going to get stable at the end of the month, though there is no git checkout release-0.6 (please note, I am interested in julia, not git) – would I be able to pin my installation with

git fetch origin release-0.6 && git merge FETCH_HEAD

after installing ‘as is’ today and then pinning once 0.6 becomes the new stable release?

You can say

git fetch origin
git checkout v0.6.0-pre.beta

To switch to the current beta release and the use:

git fetch origin
git checkout v0.6.0

To switch to the stable version. Right now development for 0.7 has not branched of master yet so the current equivalent of release-0.6 is master. In general it is recommend to stay on tags and not the release-* branches, since the tags are better tested.

Many thanks! I feel I am learning more about git that I ever wanted to ;)! incidentally, pinning release-* is suggested by the julia source download github page.

Learning git is quite rewarding :slight_smile: Staying on a releas-X branch is not wrong per se, but in my opinion it is safer use the official tags and only update when necessary.