Skip to content
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

version.jl fatal: No names found, cannot describe anything. #28

Closed
Lenskiy opened this issue Apr 30, 2013 · 17 comments
Closed

version.jl fatal: No names found, cannot describe anything. #28

Lenskiy opened this issue Apr 30, 2013 · 17 comments

Comments

@Lenskiy
Copy link

Lenskiy commented Apr 30, 2013

Getting the following messages
version.jl
fatal: No names found, cannot describe anything.
linalg.jl
Warning: replacing module Base
version.jl
fatal: No names found, cannot describe anything.

Similar issue was stated here JuliaLang/julia#2747

Building Julia outside of the homebrew environment does not produce such errors.

Despite the above fatal errors Julia builds but running the test
$brew test -v julia
produces the following output

==> /usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all

/usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all
From worker 4: * numbers
From worker 2: * core
From worker 9: * remote
From worker 5: * strings
From worker 7: * corelib
From worker 8: * hashing
From worker 6: * unicode
From worker 3: * keywordargs
From worker 9: * iostring
From worker 3: * arrayops
From worker 9: * linalg
From worker 6: * blas
From worker 8: * fft
From worker 2: * dsp
From worker 5: * sparse
From worker 6: * bitarray
From worker 7: * random
From worker 7: * math
From worker 8: * functional
From worker 7: * bigint
From worker 5: * sorting
From worker 8: * statistics
From worker 2: * spawn
From worker 7: * parallel
From worker 2: [stdio passthrough ok]
From worker 2: * priorityqueue
From worker 3: * arpack
From worker 2: * bigfloat
From worker 8: * file
From worker 7: * perf
From worker 8: * suitesparse
From worker 4: * version
Warning: Possible conflict in library symbol cholmod_start
Warning: Possible conflict in library symbol cholmod_sort
Warning: Possible conflict in library symbol cholmod_norm_sparse
Warning: Possible conflict in library symbol cholmod_check_sparse
Warning: Possible conflict in library symbol cholmod_sdmult
Warning: Possible conflict in library symbol cholmod_analyze
Warning: Possible conflict in library symbol cholmod_factorize
From worker 8: exception on 8: ERROR: type c_CholmodFactor has no field Perm
From worker 8: in CholmodFactor at linalg/cholmod.jl:243
From worker 8: in cholfact at linalg/cholmod.jl:646
From worker 8: in cholfact at linalg/cholmod.jl:880
From worker 8: in runtests at /usr/local/Cellar/julia/HEAD/share/julia/test/testdefs.jl:5
From worker 8: in anonymous at multi.jl:416
From worker 8: at suitesparse.jl:121
ERROR: type c_CholmodFactor has no field Perm
at suitesparse.jl:121
at /usr/local/Cellar/julia/HEAD/share/julia/test/runtests.jl:18
Error: julia: failed

@staticfloat
Copy link
Owner

These cholmod errors are likely because of an old version of suite-sparse. This formula needs to be updated to version 4.2.1. Can you change suite-sparse-julia.rb to instead point to http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.2.1.tar.gz, with sha1 ea6688bd6f6adf81e2e5aacdc71d7dcf9a5d208d, and see if it compiles? If it doesn't, I'll take a closer look at it next time I'm near an OSX machine.

Don't worry about the No names found, cannot describe anything. errors. Those are from git, complaining that the git checkout that homebrew does is highly unusual. It doesn't impact the usability of Julia at all.

@Lenskiy
Copy link
Author

Lenskiy commented May 1, 2013

I changed suite-sparse-julia.rb and suite-sparse64-julia.rb to SuiteSparse-4.2.1, these the errors I get this time

clang++ -mmacosx-version-min=10.6 -shared -Xlinker -all_load libsuitesparseconfig.a libspqr.a -o /private/tmp/julia-vWKO/usr/lib/libspqr.dylib -L/usr/local/opt/suite-sparse64-julia/lib -L/usr/local/opt/arpack64-julia/lib -L/usr/local/opt/openblas64-julia/lib -L/usr/local/opt/readline/lib -L/usr/local/lib -L/opt/X11/lib -headerpad_max_install_names -L/private/tmp/julia-vWKO/usr/lib -lcholmod -lcolamd -lamd -lopenblas &&
install_name_tool -id @rpath/libspqr.dylib /private/tmp/julia-vWKO/usr/lib/libspqr.dylib
Undefined symbols for architecture x86_64:
"_ccolamd", referenced from:
_cholmod_ccolamd in libcholmod.a(cholmod_ccolamd.o)
(maybe you meant: _cholmod_l_ccolamd, _cholmod_ccolamd )
...

I check the content of /private/tmp/julia-vWKO/usr/lib/ and there are the following libs
libamd.dylib
libcholmod.dylib
libcolamd.dylib

There is no libspqr.dylib.

Would you give me any further directions to dig in?

@staticfloat
Copy link
Owner

I have a suspicion that we need to add -DNCAMD -DNPARTITION to SPQR_CONFIG, and CHOLMOD_CONFIG. Ideally this would be in a patchfile, but it's difficult for me to generate those away from the homebrew build system.

We can attempt to do this by adding in more s.change_make_var calls inside the install call inside suite-sparse-julia.rb. Can you try adding these at the end of the inreplace block and see if it helps at all:

s.change_make_var! "SPQR_CONFIG", "-DNCAMD -DNPARTITION"
s.change_make_var! "CHOLMOD_CONFIG", "-DNCAMD -DNPARTITION"

@Lenskiy
Copy link
Author

Lenskiy commented May 2, 2013

I added the those lines to suite-sparse-julia.rb but the errors remain.
I see that as a result of running suite-sparse-julia.rb I get compiled static library libspqr.1.3.1.a.
However, the problem is that julia is looking for dynamic library
install_name_tool -id @rpath/libspqr.dylib /private/tmp/julia-BDDx/usr/lib/libspqr.dylib

We have to somehow tell SuiteSparse to compile dynamic lib.

@staticfloat
Copy link
Owner

I have updated my SuiteSparse formula with the changes, tested on an OSX 10.8.2 machine, and everything seems to be working. Try brew update'ing, completely removing suite-sparse, and reinstalling.

@Lenskiy
Copy link
Author

Lenskiy commented May 4, 2013

Thanks for spending time working on the formula!

I was not sure how to update tap formulas with brew update. I tried this way

brew untap staticfloat/julia
brew tap staticfloat/julia

I also wanted to try 64bit compilation, so I copied suite-sparse-julia.rb to suite-sparse64-julia.rb and have changed openblas-julia openblas64-julia at line 9.

The updated formula indeed works, I was able to compile and run julia.

While the installation process I got these suspicious lines

cp: /private/tmp/julia-QumN/usr/lib/libarpack*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libcamd*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libccolamd*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libfftw3*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libfftw3f*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libfftw3_threads*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libfftw3f_threads*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libgmp*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libpcre*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libz*.dylib*: No such file or directory
cp: /private/tmp/julia-QumN/usr/lib/libopenblas*.dylib*: No such file or directory

Running brew test -v julia I got this

Testing julia
==> /usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all
/usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all
    From worker 6:       * unicode
    From worker 4:       * numbers
    From worker 5:       * strings
    From worker 9:       * remote
    From worker 7:       * corelib
    From worker 8:       * hashing
    From worker 3:       * keywordargs
    From worker 2:       * core
    From worker 9:       * iostring
    From worker 3:       * arrayops
    From worker 9:       * linalg
    From worker 6:       * blas
    From worker 8:       * fft
    From worker 2:       * dsp
    From worker 5:       * sparse
    From worker 6:       * bitarray
    From worker 7:       * random
    From worker 7:       * math
    From worker 8:       * functional
    From worker 7:       * bigint
    From worker 8:       * sorting
    From worker 5:       * statistics
    From worker 2:       * spawn
    From worker 7:       * parallel
    From worker 2:         [stdio passthrough ok]
    From worker 2:       * priorityqueue
    From worker 3:       * arpack
    From worker 5:       * file
    From worker 2:       * perf
    From worker 4:       * suitesparse
    From worker 7:       * version
    From worker 7:       * pollfd
    From worker 3:       * mpfr
Warning: Possible conflict in library symbol cholmod_start
Warning: Possible conflict in library symbol cholmod_sort
Warning: Possible conflict in library symbol cholmod_norm_sparse
Warning: Possible conflict in library symbol cholmod_check_sparse
Warning: Possible conflict in library symbol cholmod_sdmult
Warning: Possible conflict in library symbol cholmod_analyze
Warning: Possible conflict in library symbol cholmod_factorize
    From worker 4:  exception on 4: ERROR: type c_CholmodFactor has no field Perm
    From worker 4:   in CholmodFactor at linalg/cholmod.jl:243
    From worker 4:   in cholfact at linalg/cholmod.jl:646
    From worker 4:   in cholfact at linalg/cholmod.jl:880
    From worker 4:   in runtests at /usr/local/Cellar/julia/HEAD/share/julia/test/testdefs.jl:5
    From worker 4:   in anonymous at multi.jl:416
    From worker 4:  at ??:121
ERROR: type c_CholmodFactor has no field Perm
at ??:121
at /usr/local/Cellar/julia/HEAD/share/julia/test/runtests.jl:19
Error: julia: failed

Will it somehow affect julia?

@Lenskiy Lenskiy closed this as completed May 4, 2013
@Lenskiy Lenskiy reopened this May 4, 2013
@Lenskiy
Copy link
Author

Lenskiy commented May 4, 2013

I tried to install 32bit and it passes the tests.
Here is what I've got

Testing julia
==> /usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all
/usr/local/Cellar/julia/HEAD/bin/julia runtests.jl all
    From worker 2:       * core
    From worker 5:       * strings
    From worker 8:       * hashing
    From worker 6:       * unicode
    From worker 3:       * keywordargs
    From worker 4:       * numbers
    From worker 9:       * remote
    From worker 7:       * corelib
    From worker 9:       * iostring
    From worker 3:       * arrayops
    From worker 9:       * linalg
    From worker 6:       * blas
    From worker 8:       * fft
    From worker 2:       * dsp
    From worker 5:       * sparse
    From worker 6:       * bitarray
    From worker 7:       * random
    From worker 7:       * math
    From worker 8:       * functional
    From worker 5:       * bigint
    From worker 7:       * sorting
    From worker 8:       * statistics
    From worker 2:       * spawn
    From worker 5:       * parallel
    From worker 2:         [stdio passthrough ok]
    From worker 2:       * priorityqueue
    From worker 3:       * arpack
    From worker 2:       * file
    From worker 8:       * perf
    From worker 5:       * suitesparse
    From worker 4:       * version
    From worker 3:       * pollfd
    From worker 4:       * mpfr
Warning: Possible conflict in library symbol cholmod_start
Warning: Possible conflict in library symbol cholmod_sort
Warning: Possible conflict in library symbol cholmod_norm_sparse
Warning: Possible conflict in library symbol cholmod_check_sparse
Warning: Possible conflict in library symbol cholmod_sdmult
Warning: Possible conflict in library symbol cholmod_analyze
Warning: Possible conflict in library symbol cholmod_factorize
Warning: Possible conflict in library symbol cholmod_check_factor
Warning: Possible conflict in library symbol cholmod_solve
Warning: Possible conflict in library symbol cholmod_check_dense
Warning: Possible conflict in library symbol cholmod_norm_dense
    SUCCESS

By the way what is red colored lines mean?

Shall we forget about 64 bit version?

@Lenskiy
Copy link
Author

Lenskiy commented May 4, 2013

I've analysed the compilation log (when compiled with --64bit) and there were a couple of strange lines like this one
screen shot 2013-05-04 at 9 56 40 pm

Do you think it can be the reason why testing fails?

@staticfloat
Copy link
Owner

Yes, that is likely why. I've updated the 64-bit build of Suite-Sparse-Julia to 4.2.1, that should solve the errors you mention above. Can you brew update and try again? (Calling brew update will automatically update all of your taps)

The 64-bit build of Julia is a funny distinction. It's not that it is any faster, or able to hold more memory overall than the 32-bit version. Rather, it means that the dimensions of arrays can be 64-bit (which most BLAS/LAPACK packages do not support) so that you can have arrays larger than 2^32 by 2^32. If you don't deal with such enormous matrices, the 64-bit version holds no benefit for you.

@Lenskiy
Copy link
Author

Lenskiy commented May 5, 2013

I've tried again, now it is not building at all. I am getting the same errors as before

install_name_tool -id @rpath/libspqr.dylib /private/tmp/julia-vWKO/usr/lib/libspqr.dylib
Undefined symbols for architecture x86_64:
"_ccolamd", referenced from:
_cholmod_ccolamd in libcholmod.a(cholmod_ccolamd.o)

Regarding the necessity of 64bit build, I agree that one rarely needs it. Although I have arrays in Matlab that reach 1Gb (1,000,000 of 128 vectors where each component is a double type) that is quite close to the limit of 4Gb in 32bits systems.

@staticfloat
Copy link
Owner

Can you verify that the lines adding in the -DNCAMD -DNPARTITION are present in suite-sparse64-julia.rb?

@BenLauwens
Copy link

I have the same problem (see issue 24) now. Both -DNCAMD -DNPARTITION are present in suite-sparse64-julia.rb.

@Lenskiy
Copy link
Author

Lenskiy commented May 6, 2013

Yep, having the same problem.

@staticfloat
Copy link
Owner

I figured this one out; my options were getting overridden by the same line that differentiates the 64 and 32-bit builds. I've uploaded a fix, should fix the 64-bit build for you all now!

@staticfloat
Copy link
Owner

Gotta love how github auto-closes issues like that. :P Just post here again if you keep on having trouble, I'm going to leave this closed for now

@Lenskiy
Copy link
Author

Lenskiy commented May 23, 2013

Perfectly builds 64bit version, no problem at all.

@BenLauwens
Copy link

It is also working for me. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants