I found a small formatting issue in the documentation that I would like to fix (and also learn from the process). Cloned my fork of julia and tried to run make docs
(as described in the contribution guide and the documentation readme).
The first issue was that Iβm on Ubuntu 16.04.6 I have only older gcc and gfortran (like in this issue). I want to avoid updating if itβs possible, so I ran with the suggested flag, but it fails.
ubuntu@cstsandbox:~/GIT/julia$ make docs
/home/ubuntu/GIT/julia/deps/llvm.mk:556: *** Attempting to use gcc4 LLVM tarball, but compiling with cxx11 string ABI; set "CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0" to avoid linker errors. Stop.
Makefile:60: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2
ubuntu@cstsandbox:~/GIT/julia$ make docs CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
Making install in src
/bin/mkdir -p '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/tools'
/usr/bin/install -c patchelf '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/tools'
Making install in tests
/bin/mkdir -p '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/share/doc/patchelf'
/usr/bin/install -c -m 644 /home/ubuntu/GIT/julia/deps/srccache/patchelf-0.9/README '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/share/doc/patchelf'
/bin/mkdir -p '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/share/man/man1'
/usr/bin/install -c -m 644 /home/ubuntu/GIT/julia/deps/srccache/patchelf-0.9/patchelf.1 '/home/ubuntu/GIT/julia/usr-staging/patchelf-0.9/home/ubuntu/GIT/julia/usr/share/man/man1'
Creating usr/etc/julia/startup.jl
Copying in usr/share/man/man1/julia.1
/home/ubuntu/GIT/julia/contrib/install.sh 755 /home/ubuntu/GIT/julia/contrib/julia-config.jl /home/ubuntu/GIT/julia/usr/share/julia/
PATH="/opt/ros/kinetic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ubuntu/GIT/julia/usr/tools" /home/ubuntu/GIT/julia/contrib/fixup-libgfortran.sh --verbose /home/ubuntu/GIT/julia/usr/lib
Discovered traces of libgfortran within . /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
Got SONAMES of libgcc_s.so.1 libgfortran.so.3 libquadmath.so.0
'/lib/x86_64-linux-gnu/libgcc_s.so.1' -> '/home/ubuntu/GIT/julia/usr/lib/libgcc_s.so.1'
'/usr/lib/x86_64-linux-gnu/libgfortran.so.3' -> '/home/ubuntu/GIT/julia/usr/lib/libgfortran.so.3'
'/usr/lib/x86_64-linux-gnu/libquadmath.so.0' -> '/home/ubuntu/GIT/julia/usr/lib/libquadmath.so.0'
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.a to libgcc_s.so.1
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.a to libgfortran.so.3
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.a to libquadmath.so.0
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.so to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.so to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.0.3.5.so to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.a to libgcc_s.so.1
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.a to libgfortran.so.3
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.a to libquadmath.so.0
not an ELF executable
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so.0 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so.0 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libopenblas64_.so.0 to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3 to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3.0.13 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3.0.13 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libcholmod.so.3.0.13 to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/liblapack* to libgcc_s.so.1
/home/ubuntu/GIT/julia/usr/lib/liblapack* doesn't exist, skipping
changing linkage of /home/ubuntu/GIT/julia/usr/lib/liblapack* to libgfortran.so.3
/home/ubuntu/GIT/julia/usr/lib/liblapack* doesn't exist, skipping
changing linkage of /home/ubuntu/GIT/julia/usr/lib/liblapack* to libquadmath.so.0
/home/ubuntu/GIT/julia/usr/lib/liblapack* doesn't exist, skipping
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgcc_s.so.1 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgcc_s.so.1 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgcc_s.so.1 to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgfortran.so.3 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgfortran.so.3 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libgfortran.so.3 to libquadmath.so.0
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libquadmath.so.0 to libgcc_s.so.1
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libquadmath.so.0 to libgfortran.so.3
changing linkage of /home/ubuntu/GIT/julia/usr/lib/libquadmath.so.0 to libquadmath.so.0
PERL base/pcre_h.jl
PERL base/errno_h.jl
PERL base/build_h.jl.phony
PERL base/file_constants.jl
PERL base/uv_constants.jl
PERL base/version_git.jl.phony
CC src/support/hashing.o
CC src/support/timefuncs.o
CC src/support/ptrhash.o
CC src/support/operators.o
CC src/support/utf8.o
CC src/support/ios.o
CC src/support/htable.o
CC src/support/bitvector.o
CC src/support/int2str.o
CC src/support/libsupportinit.o
CC src/support/arraylist.o
CC src/support/strtod.o
LINK src/support/libsupport.a
CC src/flisp/flisp.o
CC src/flisp/builtins.o
CC src/flisp/string.o
CC src/flisp/equalhash.o
CC src/flisp/table.o
CC src/flisp/iostream.o
CC src/flisp/julia_extensions.o
LINK src/flisp/libflisp.a
CC src/flisp/flmain.o
LINK src/flisp/flisp
FLISP src/julia_flisp.boot
FLISP src/julia_flisp.boot.inc
CC src/APInt-C.o
CC src/runtime_ccall.o
CC src/processor.o
CC src/rtutils.o
CC src/jltypes.o
CC src/gf.o
CC src/typemap.o
CC src/ast.o
CC src/builtins.o
CC src/module.o
CC src/interpreter.o
CC src/symbol.o
CC src/dlload.o
CC src/sys.o
CC src/init.o
CC src/task.o
CC src/array.o
CC src/dump.o
CC src/staticdata.o
CC src/toplevel.o
CC src/jl_uv.o
CC src/datatype.o
CC src/simplevector.o
CC src/runtime_intrinsics.o
CC src/precompile.o
CC src/threading.o
CC src/partr.o
CC src/stackwalk.o
CC src/gc.o
CC src/gc-debug.o
CC src/gc-pages.o
CC src/gc-stacks.o
CC src/method.o
CC src/jlapi.o
CC src/signal-handling.o
CC src/safepoint.o
CC src/jloptions.o
CC src/timing.o
CC src/subtype.o
CC src/crc32c.o
CC src/codegen.o
CC src/jitlayers.o
CC src/disasm.o
CC src/debuginfo.o
CC src/llvm-simdloop.o
CC src/llvm-ptls.o
CC src/llvm-muladd.o
CC src/llvm-final-gc-lowering.o
CC src/llvm-pass-helpers.o
CC src/llvm-late-gc-lowering.o
CC src/llvm-lower-handlers.o
CC src/llvm-gc-invariant-verifier.o
CC src/llvm-propagate-addrspaces.o
CC src/llvm-multiversioning.o
CC src/llvm-alloc-opt.o
CC src/cgmemmgr.o
/home/ubuntu/GIT/julia/src/cgmemmgr.cpp: In function βbool {anonymous}::check_fd_or_close(int)β:
/home/ubuntu/GIT/julia/src/cgmemmgr.cpp:99:9: warning: unused variable βerrβ [-Wunused-variable]
int err = fcntl(fd, F_SETFD, FD_CLOEXEC);
^
CC src/llvm-api.o
LINK usr/lib/libjulia.so.1.3
CC ui/repl.o
LINK usr/bin/julia
JULIA usr/lib/julia/corecompiler.ji
essentials.jl
ctypes.jl
generator.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
pair.jl
traits.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refvalue.jl
indices.jl
array.jl
abstractarray.jl
bitarray.jl
bitset.jl
abstractdict.jl
abstractset.jl
iterators.jl
namedtuple.jl
docs/core.jl
ordering.jl
sort.jl
compiler/utilities.jl
compiler/validation.jl
compiler/inferenceresult.jl
compiler/params.jl
compiler/inferencestate.jl
compiler/typeutils.jl
compiler/typelimits.jl
compiler/typelattice.jl
compiler/tfuncs.jl
compiler/abstractinterpretation.jl
compiler/typeinfer.jl
compiler/optimize.jl
compiler/ssair/driver.jl
compiler/ssair/ir.jl
compiler/ssair/domtree.jl
compiler/ssair/slot2ssa.jl
compiler/ssair/queries.jl
compiler/ssair/passes.jl
compiler/ssair/inlining.jl
compiler/ssair/verify.jl
compiler/ssair/legacy.jl
compiler/bootstrap.jl
JULIA usr/lib/julia/sys.ji
coreio.jl
exports.jl
essentials.jl
ctypes.jl
gcutils.jl
generator.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
expr.jl
pair.jl
traits.jl
range.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refvalue.jl
refpointer.jl
checked.jl
indices.jl
array.jl
abstractarray.jl
subarray.jl
views.jl
baseext.jl
ntuple.jl
abstractdict.jl
iterators.jl
namedtuple.jl
hashing.jl
rounding.jl
float.jl
twiceprecision.jl
complex.jl
rational.jl
multinverses.jl
abstractarraymath.jl
arraymath.jl
simdloop.jl
reduce.jl
reshapedarray.jl
reinterpretarray.jl
bitarray.jl
bitset.jl
multimedia.jl
some.jl
dict.jl
abstractset.jl
set.jl
char.jl
strings/basic.jl
strings/string.jl
strings/substring.jl
build_h.jl
version_git.jl
osutils.jl
c.jl
io.jl
iostream.jl
iobuffer.jl
intfuncs.jl
strings/strings.jl
strings/search.jl
strings/unicode.jl
strings/util.jl
strings/io.jl
parse.jl
shell.jl
regex.jl
pcre.jl
show.jl
arrayshow.jl
methodshow.jl
cartesian.jl
multidimensional.jl
permuteddimsarray.jl
broadcast.jl
missing.jl
version.jl
sysinfo.jl
libc.jl
env.jl
linked_list.jl
condition.jl
threads.jl
lock.jl
task.jl
weakkeydict.jl
logging.jl
libuv.jl
uv_constants.jl
asyncevent.jl
stream.jl
filesystem.jl
process.jl
grisu/grisu.jl
secretbuffer.jl
floatfuncs.jl
math.jl
reducedim.jl
accumulate.jl
ordering.jl
sort.jl
fastmath.jl
Enums.jl
gmp.jl
mpfr.jl
combinatorics.jl
hashing2.jl
irrationals.jl
mathconstants.jl
printf.jl
meta.jl
channels.jl
deepcopy.jl
download.jl
summarysize.jl
errorshow.jl
stacktraces.jl
initdefs.jl
threadcall.jl
uuid.jl
loading.jl
util.jl
asyncmap.jl
experimental.jl
deprecated.jl
docs/basedocs.jl
client.jl
docs/Docs.jl
Base βββββββββββ 40.266117 seconds
Base64 βββββββββ 4.890895 seconds
CRC32c βββββββββ 0.020189 seconds
SHA ββββββββββββ 0.261920 seconds
FileWatching βββ 0.166978 seconds
Unicode ββββββββ 0.020302 seconds
Mmap βββββββββββ 0.160835 seconds
Serialization ββ 1.698913 seconds
Libdl ββββββββββ 0.051900 seconds
Markdown βββββββ 1.692182 seconds
LibGit2 ββββββββ 4.279436 seconds
Logging ββββββββ 0.433673 seconds
Sockets ββββββββ 2.135535 seconds
Printf βββββββββ 0.010385 seconds
Profile ββββββββ 0.227014 seconds
Dates ββββββββββ 2.721841 seconds
DelimitedFiles β 0.196677 seconds
Random βββββββββ 1.166304 seconds
UUIDs ββββββββββ 0.036538 seconds
Future βββββββββ 0.011941 seconds
LinearAlgebra ββ 15.347899 seconds
SparseArrays βββ 5.809731 seconds
SuiteSparse ββββ 2.081104 seconds
Distributed ββββ 8.332770 seconds
SharedArrays βββ 0.258903 seconds
Pkg ββββββββββββ 15.974677 seconds
Test βββββββββββ 1.204891 seconds
REPL βββββββββββ 1.131055 seconds
Statistics βββββ 0.231655 seconds
Stdlibs total ββ 70.585196 seconds
Sysimage built. Summary:
Total βββββββ 110.853972 seconds
Base: βββββββ 40.266117 seconds 36.3236%
Stdlibs: ββββ 70.585196 seconds 63.674%
JULIA usr/lib/julia/sys-o.a
Generating precompile statements... 876 generated in 109.240483 seconds (overhead 77.010875 seconds)
Killed
*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***
sysimage.mk:85: recipe for target '/home/ubuntu/GIT/julia/usr/lib/julia/sys-o.a' failed
make[1]: *** [/home/ubuntu/GIT/julia/usr/lib/julia/sys-o.a] Error 1
Makefile:84: recipe for target 'julia-sysimg-release' failed
make: *** [julia-sysimg-release] Error 2
I donβt have experience with makefiles or compiling a complete language, so Iβm stuck at this point
I really just want to build the documentation, is it even possible? If not, how to solve the compilation error? (I scrolled through the issues, but didnβt find helpful one for this.)
While writing this post, I tried to run doc/make.jl
itself, but that didnβt work either.
Edit: make clean
or make cleanall
didnβt solved it.