[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30282: package julia build error
From: |
Pjotr Prins |
Subject: |
bug#30282: package julia build error |
Date: |
Fri, 16 Mar 2018 15:07:56 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
After some investigation I have found Julia's build system to be a
challenge. The problem is that, to 'control' the environment, the
developers have chosen to fixate all dependencies by pulling them in
and patching them (including LLVM). The only time I got a successful
build outside Guix was by using the exact gcc/g++/gfortran-4.7
compilers (no earlier and no later versions) and letting Julia have
its way downloading and building openblas, etc. All Julia tests pass
if it is done this way.
I tried to build Julia in a Guix environment - adding dependencies one
by one - and this failed spectularly too. Turns out that Julia is very
specific about the compilers and dependencies it uses, which is OK,
but it downloads dependencies from source and patches them, which is
not great. Worst, the whole build system is based on defaults - so if
you change anything things start failing.
I.e., you try to change anything, such as using the system openblas
libs, and the Julia build system gets confused. It should work,
according to the docs, but I can't even get it to a compiled stage
this way. These are the things Julia 0.6.0 downloads and builds:
ls deps/scratch/
arpack-ng-3.3.0
cmake-3.7.1-Linux-x86_64
curl-7.53.1
dsfmt-2.2.3
fftw-3.3.6-pl1-double
fftw-3.3.6-pl1-single
gmp-6.1.2
libgit2-2fcb8705e584ca61f6c4657525c9d2713f6a39d2
libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2
libunwind-1.1-julia2
libuv-52d72a52cc7ccd570929990f010ed16e2ec604c8
llvm-3.9.1
mbedtls-2.3.0-gpl
mpfr-3.1.5
openblas-85636ff1a015d04d3a8f960bc644b85ee5157135
openlibm-1581174c85f7b645b15ba1ac1c3a98fb601f0fe7
openspecfun-39699a1c1824bf88410cabb8a7438af91ea98f4c
patchelf-0.9
pcre2-10.23
SuiteSparse-4.4.5
utf8proc-40e605959eb5cb90b2587fa88e3b661558fbc55a
ls deps/patches/
arpack-tests-blasint.patch llvm-3.7.1.patch
llvm-D28759-loopclearance.patch
compiler-rt-3.7.1.patch llvm-3.7.1_symlinks.patch
llvm-D28786-callclearance.patch
dSFMT.c.patch llvm-3.8.0_bindir.patch
llvm-D9168_argument_alignment.patch
dSFMT.h.patch llvm-3.8.0_ppc64_SUBFC8.patch
llvm-nodllalias.patch
gmp-exception.patch llvm-3.8.0_threads.patch
llvm-PR22923.patch
instcombine-llvm-3.3.patch llvm-3.8.0_winshlib.patch
llvm-PR26180.patch
int128-vector.llvm-3.3.patch llvm-3.8.1-version.patch
llvm-PR27046.patch
libgit2-agent-nonfatal.patch llvm-3.9.0_cygwin.patch
llvm-PR276266.patch
libgit2-free-config.patch llvm-3.9.0_D27296-libssp.patch
llvm-PR277939.patch
libgit2-gitconfig-symlink.patch llvm-3.9.0_threads.patch
llvm-PR278088.patch
libgit2-mbedtls.patch llvm-3.9.0_win64-reloc-dwarf.patch
llvm-PR278321.patch
libgit2-mbedtls-verify.patch llvm-arm-fix-prel31.patch
llvm-PR278923.patch
libgit2-mbedtls-writer-fix.patch llvm-D14260.patch
llvm-PR29010-i386-xmm.patch
libgit2-remote-push-NULL.patch llvm-D17165-D18583.patch
llvm-r282182.patch
libgit2-ssh.patch llvm-D17326_unpack_load.patch
llvm-rL279933-ppc-atomicrmw-lowering.patch
libssh2-encryptedpem.patch llvm-D17712.patch
llvm-rL293230-icc17-cmake.patch
libssh2-netinet-in.patch llvm-D21271-instcombine-tbaa-3.7.patch
llvm-win64-reloc-dwarf.patch
libunwind-arm-dyn.patch llvm-D21271-instcombine-tbaa-3.8.patch
mbedtls-ssl.h.patch
libunwind-arm-pc-offset.patch llvm-D23597_sdag_names.patch
openblas-clangasmbug.patch
libunwind-dwarf-ver.patch llvm-D24300_ptx_intrinsics.patch
openblas-cross-compile.patch
libunwind-freebsd-mapper.patch llvm-D25865-cmakeshlib.patch
openblas-freebsd.patch
libunwind-prefer-extbl.patch llvm-D27389.patch
openblas-power-assembly-fixes.patch
lldb-3.7.1.patch llvm-D27397.patch
osx-10.10.llvm-3.3.patch
llvm-3.3.patch llvm-D27609-AArch64-UABS_G3.patch
pcre-mingw.patch
llvm-3.7.0.patch llvm-D27629-AArch64-large_model.patch
SuiteSparse-winclang.patch
llvm-3.7.1_2.patch llvm-D28009.patch
win64-int128.llvm-3.3.patch
llvm-3.7.1_3.patch llvm-D28215_FreeBSD_shlib.patch
llvm-3.7.1_destsharedlibdir.patch llvm-D28221-avx512.patch
I mean, seriously!
As I wrote before, the test of the current Guix build probably fails due to the
openblas linkage Guix uses (openblas output does change and depends on build
choices). Not sure which switch is causing it, but it should be fixable. There
are more tests failing, however, that need fixing.
For version 7 Julia promises no longer to patch LLVM, see
https://discourse.julialang.org/t/why-is-source-build-julia-required-to-use-gpu-packages/9747/2
So, unless someone feels incensed to fix things, I propose to hold out until
Julia7 and maybe have another go again.
Pj.
- bug#30282: package julia build error, Ludovic Courtès, 2018/03/12
- bug#30282: package julia build error, Pjotr Prins, 2018/03/13
- bug#30282: package julia build error, Pjotr Prins, 2018/03/13
- bug#30282: package julia build error, Ludovic Courtès, 2018/03/13
- bug#30282: package julia build error, Andreas Enge, 2018/03/13
- bug#30282: package julia build error, Pjotr Prins, 2018/03/13
- bug#30282: package julia build error,
Pjotr Prins <=
- bug#30282: package julia build error, Ludovic Courtès, 2018/03/17
- bug#30282: package julia build error, Pjotr Prins, 2018/03/19