From: Pjotr Prins <pjotr.public12@thebird.nl>
To: Pjotr Prins <pjotr.public12@thebird.nl>
Cc: 30282@debbugs.gnu.org, Marco van Hulten <marco@hulten.org>
Subject: bug#30282: package julia build error
Date: Fri, 16 Mar 2018 15:07:56 +0100 [thread overview]
Message-ID: <20180316140756.GA30730@thebird.nl> (raw)
In-Reply-To: <20180313213557.GA15602@thebird.nl>
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.
next prev parent reply other threads:[~2018-03-16 14:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-28 22:43 bug#30282: package julia build error Marco van Hulten
2018-02-06 16:04 ` Ludovic Courtès
2018-02-07 11:56 ` Andreas Enge
2018-03-12 15:10 ` Ludovic Courtès
2018-03-13 9:57 ` Pjotr Prins
2018-03-13 11:58 ` Pjotr Prins
2018-03-13 17:02 ` Ludovic Courtès
2018-03-13 17:54 ` Andreas Enge
2018-03-13 21:35 ` Pjotr Prins
2018-03-16 14:07 ` Pjotr Prins [this message]
2018-03-17 18:39 ` Ludovic Courtès
2018-03-19 19:09 ` Pjotr Prins
2020-10-05 21:37 ` zimoun
2020-10-06 11:57 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180316140756.GA30730@thebird.nl \
--to=pjotr.public12@thebird.nl \
--cc=30282@debbugs.gnu.org \
--cc=marco@hulten.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).