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

Make failure on current master #13451

Closed
bermanmaxim opened this issue Oct 5, 2015 · 7 comments
Closed

Make failure on current master #13451

bermanmaxim opened this issue Oct 5, 2015 · 7 comments
Labels
domain:building Build system, or building Julia or its dependencies

Comments

@bermanmaxim
Copy link

Hello, I tried to build Julia using last master today, with make -j 4. I got no particular error, other than a makefile recipe failure... Last lines from ouput:

libtool: link: ranlib .libs/libfftw3f_threads.a
libtool: link: ( cd ".libs" && rm -f "libfftw3f_threads.la" && ln -s "../libfftw3f_threads.la" "libfftw3f_threads.la" )
Making all in tests
libtool: link: gcc -m64 -std=gnu99 -pthread -O3 -fomit-frame-pointer -mtune=native -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math -o .libs/bench bench-bench.o bench-hook.o bench-fftw-bench.o  ../threads/.libs/libfftw3f_threads.so /home/maxim/julia/deps/build/fftw-3.3.4-single/.libs/libfftw3f.so ../.libs/libfftw3f.so ../libbench2/libbench2.a -lm -pthread -Wl,-rpath -Wl,/home/maxim/julia/usr/lib
Making all in mpi
Making all in doc
Making all in FAQ
Making all in tools
libtool: link: gcc -m64 -std=gnu99 -pthread -O3 -fomit-frame-pointer -mtune=native -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math -o .libs/fftwf-wisdom fftwf_wisdom-fftw-wisdom.o ../tests/bench-bench.o ../tests/bench-fftw-bench.o  ../threads/.libs/libfftw3f_threads.so /home/maxim/julia/deps/build/fftw-3.3.4-single/.libs/libfftw3f.so ../.libs/libfftw3f.so ../libbench2/libbench2.a -lm -pthread -Wl,-rpath -Wl,/home/maxim/julia/usr/lib
Making all in m4
Makefile:78: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

This is on ubuntu x64 15.04, with an intel system. I tried to make cleanall a few times, but it didn't help or give me a more detailed error. Thanks for help

@ScottPJones
Copy link
Contributor

In the past, I've been told to try make distcleanall

@bermanmaxim
Copy link
Author

Thanks. Still same error after make distcleanall, last lines of output:

llvm[4]: ======= Finished Linking Release Unit test IR (without symbols)
llvm[4]: Compiling SmallVectorTest.cpp for Release build
llvm[4]: Compiling SparseBitVectorTest.cpp for Release build
llvm[4]: Compiling SparseMultiSetTest.cpp for Release build
llvm[4]: Compiling SparseSetTest.cpp for Release build
llvm[4]: Compiling StringMapTest.cpp for Release build
llvm[4]: Compiling StringRefTest.cpp for Release build
llvm[4]: Compiling TinyPtrVectorTest.cpp for Release build
llvm[4]: Compiling TripleTest.cpp for Release build
llvm[4]: Compiling TwineTest.cpp for Release build
llvm[4]: Compiling VariadicFunctionTest.cpp for Release build
llvm[4]: Compiling ilistTest.cpp for Release build
llvm[4]: Linking Release unit test ADT (without symbols)
llvm[4]: ======= Finished Linking Release Unit test ADT (without symbols)
llvm[2]: ***** Completed Release Build
Makefile:78: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

@pao pao added the domain:building Build system, or building Julia or its dependencies label Oct 5, 2015
@pao
Copy link
Member

pao commented Oct 5, 2015

I don't think either of those snippets contain the real error. From the partial build you have, can you please run make -j1 and post the output? If it's too long, throw it in a gist and link here. Thanks!

@bermanmaxim
Copy link
Author

Thanks @pao, I did not know that deactivating multithread make would make the error appear... So the real error was

make[2]: gfortran: Command not found
Make.inc:67: recipe for target 'amos/d1mach.f.o' failed
make[2]: *** [amos/d1mach.f.o] Error 127
Makefile:924: recipe for target 'build/openspecfun/libopenspecfun.so' failed
make[1]: *** [build/openspecfun/libopenspecfun.so] Error 2
Makefile:78: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

So gfortran was not there on a fresh ubuntu install... Which was my first error.

After getting gfortran, I encountered other compilation issues:

  • one related to OpenBLAS unable to detect architecture correctly, failing on new Macbook Pro OpenMathLib/OpenBLAS#529 (Broadwell architecture) which made me override OPENBLAS_TARGET_ARCH=HASWELL in Make.user)
  • after that, I got
    checking for suitable m4... configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons). Makefile:1798: recipe for target 'build/gmp-6.0.0/config.status' failed make[1]: *** [build/gmp-6.0.0/config.status] Error 1 so I did a separate sudo apt-get install m4
  • after that, cmake went missing too /bin/sh: 2: cmake: not found Makefile:2032: recipe for target 'build/libgit2/Makefile' failed make[1]: *** [build/libgit2/Makefile] Error 127 Makefile:78: recipe for target 'julia-deps' failed make: *** [julia-deps] Error 2 so I added it

and now it compiled... phew! Maybe the gfortran and cmake dependencies could be fetched automatically during make?

@tkelman
Copy link
Contributor

tkelman commented Oct 5, 2015

This is all documented at https://github.com/JuliaLang/julia#required-build-tools-and-external-libraries

gcc and make aren't installed on a minimal base distribution, you have to get those manually. gfortran can be a mess to build from source. cmake less so, and they have binaries that we could download, but it's also available through any package manager. More likely we'll eventually use cmake as a top-level configuration tool and set it up to error right away when required build tools are missing.

@tkelman tkelman closed this as completed Oct 5, 2015
@bermanmaxim
Copy link
Author

Oh, I missed the line Building Julia requires that the following software be installed:; maybe the line When compiled the first time, it will automatically download and build its external dependencies higher in the Readme should be clarified? Thanks and sorry for the noise...

@nalimilan
Copy link
Member

@bermanmaxim Feel free to make a pull request if you have ideas about how to make this clearer (you can edit the file directly from GitHub if you like).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:building Build system, or building Julia or its dependencies
Projects
None yet
Development

No branches or pull requests

5 participants