JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.77k stars 5.49k forks source link

32bit OpenBLAS build with 64bit Julia by default on OSX 10.6.8 #3838

Closed cmcbride closed 10 years ago

cmcbride commented 11 years ago

On recent master branch:

[nibbler julia]% cat .git/refs/heads/master c575520aa51331b771af8c3a077cc06013a8505f

Julia builds in 64-bit, but OpenBLAS appears to build in 32-bit:

[nibbler julia]% ./julia ERROR: OpenBLAS was not built with 64bit integer support. You're seeing this error because Julia was built with USE_BLAS64=1 Please rebuild Julia with USE_BLAS64=0 Quitting.

@ViralBShah Thinks this might be due to gcc. For reference: [nibbler julia]% gcc --version i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

staticfloat commented 11 years ago

10.8.3 On Aug 6, 2013 12:47 PM, "Cameron McBride" notifications@github.com wrote:

I use 8.33 homebrew pcre with no problems.

What OSX version, @staticfloat https://github.com/staticfloat ?

— Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/3838#issuecomment-22204606 .

cmcbride commented 11 years ago

0d39c663f84bcf38157548d1b8d4cb833a263f02 still works for my setup (10.6.8 with the MacPorts PCRE installed on system that Julia avoids).

vtjnash commented 11 years ago

regex.jl:7-21

immutable Regex
    pattern::ByteString
    options::Uint32
    regex::Array{Uint8} <== The problem is with this cached data
end

The problem isn't which version of PCRE we have, the problem is we need to use exactly the same version when compiling the sys.ji file as we use when running julia. I suspect @stevengj results were simply a red herring. (especially since we recently switched from typically using Homebrew and ignoring Macports at sys.ji build time, to using julia's at all times)

3873 could perhaps be of use, to test the value of Base.PCRE.VERSION against the result of calling pcre at boot

staticfloat commented 11 years ago

@vtjnash Did you ever figure out what about PCRE causes these problems? I was not able to determine, but I could take another look.

vtjnash commented 11 years ago

the problem is that we sometimes link against /usr/local/lib and sometimes don't. if the version of PCRE changes between linking (building sys.ji) and runtime, the compiled regexes are invalid.

staticfloat commented 11 years ago

So the problem was never that we were configuring pcre incorrectly? Just that build-time and runtime pcre were not the same?

vtjnash commented 11 years ago

right

staticfloat commented 10 years ago

Closed by #4959

ghost commented 10 years ago

Sorry to respond to an old and closed topic, but this problem exists also on openSUSE 13.1. I have an openblas library in my LD_LIBRARY_PATH which was compiled without the support of 64 bit integers. This problem is solved as suggested before by running:

LD_LIBRARY_PATH='' ./julia

Another solution is to recompile the system version of openblas using the following flag:

make INTERFACE64=1