[Pkg-julia-devel] backporting experimental to stretch

Boylan, Ross Ross.Boylan at ucsf.edu
Sun Apr 21 23:18:58 BST 2019


I think I  can answer my own question: No, relaxed requirements are not sufficient.  And a backport to stretch is, at best, difficult.

That is, the requirements can't be relaxed for either libutf8proc-dev or llvm-6.0-dev .
After backporting libutf8proc to get around the error of my previous message, I  got
the error shown further down.  This is probably the same as Debian Bug 905397 (Illegal inttop error) which was fixed in llvm-toolchain 1:6.0.1-3.

Then I tried to build a newer llvm, but it needs a newer dpkg-dev, and so perhaps it's time to stop :(.   Time for a new VM on the bleeding edge, or MS-Windows... 

Still not sure about the texlive-plain-generic.

Ross

Latest error:
make[3]: Entering directory '/home/ross/julia'
 cd /home/ross/julia/base && if ! /home/ross/julia/usr/bin/julia -O3 -C "generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" --output-o /home/ross/juli\
a/usr/lib/x86_64-linux-gnu/julia/sys-o.a.tmp  --startup-file=no --warn-overwrite=yes --sysimage /home/ross/julia/usr/lib/x86_64-linux-gnu/julia/sys.ji /home/ross/j\
ulia/contrib/generate_precompile.jl 1; then echo '*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***'; false;\
 fi
Generating precompile statements... 1060 generated in 124.010739 seconds (overhead  81.880332 seconds)
Illegal inttoptr
          %scevgep9 = ptrtoint i32 addrspace(13)* %scevgep to i64
Illegal inttoptr
          %scevgep1011 = ptrtoint i32 addrspace(13)* %scevgep10 to i64

signal (6): Aborted
in expression starting at no file:0
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
runOnFunction at ./src/./src/llvm-gc-invariant-verifier.cpp:178
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1 (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1 (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1 (unknown line)
operator() at ./src/./src/jitlayers.cpp:978 [inlined]
jl_dump_native at ./src/./src/jitlayers.cpp:987
jl_write_compiler_output at ./src/./src/precompile.c:93
jl_atexit_hook at ./src/./src/init.c:222
main at ./ui/./ui/repl.c:218
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/ross/julia/usr/bin/julia (unknown line)
unknown function (ip: 0xffffffffffffffff)
Allocations: 117824012 (Pool: 117801866; Big: 22146); GC: 255
Aborted
*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***
Makefile:217: recipe for target '/home/ross/julia/usr/lib/x86_64-linux-gnu/julia/sys-o.a' failed
make[3]: *** [/home/ross/julia/usr/lib/x86_64-linux-gnu/julia/sys-o.a] Error 1
make[3]: Leaving directory '/home/ross/julia'
Makefile:81: recipe for target 'julia-sysimg-release' failed
make[2]: *** [julia-sysimg-release] Error 2
make[2]: Leaving directory '/home/ross/julia'
______________________________________
From: Boylan, Ross
Sent: Saturday, April 20, 2019 5:01 PM
To: pkg-julia-devel at alioth-lists.debian.net
Subject: Re: backporting experimental to stretch

I tried it.  At least for libutf8proc, apparently at least 2.1 is required and the build fails without it.

Here's the complaint about a function, introduced in 2.1 according the the release history at http://juliastrings.github.io/utf8proc/releases/:

lia_extensions.c: In function ‘normalize’:
julia_extensions.c:277:14: warning: implicit declaration of function ‘utf8proc_decompose_custom’ [-Wimplicit-function-declaration]
     result = utf8proc_decompose_custom((uint8_t*) s, 0, NULL, 0, (utf8proc_option_t)options,
              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm-6.0/include/llvm/ADT/ilist_node_options.h:13:0,
                 from /usr/lib/llvm-6.0/include/llvm/ADT/ilist_node.h:19,
                 from /usr/lib/llvm-6.0/include/llvm/ADT/ilist_iterator.h:13,
                 from /usr/lib/llvm-6.0/include/llvm/ADT/simple_ilist.h:14,
                 from /usr/lib/llvm-6.0/include/llvm/ADT/ilist.h:27,
                 from /usr/lib/llvm-6.0/include/llvm/IR/BasicBlock.h:19,
                 from /usr/lib/llvm-6.0/include/llvm/IR/IRBuilder.h:23,
                 from /home/ross/julia/src/llvmcalltest.cpp:7:
/usr/lib/llvm-6.0/include/llvm/Config/abi-breaking.h:23:6: warning: "LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING" is not defined [-Wundef]
 #if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rm -rf /home/ross/julia/src/flisp/libflisp.a
 ar -rcs /home/ross/julia/src/flisp/libflisp.a /home/ross/julia/src/flisp/flisp.o /home/ross/julia/src/flisp/builtins.o /home/ross/julia/src/flisp/string.o /home/ross/ju\
lia/src/flisp/equalhash.o /home/ross/julia/src/flisp/table.o /home/ross/julia/src/flisp/iostream.o /home/ross/julia/src/flisp/julia_extensions.o
 gcc -march=x86-64 -m64 -ggdb2 -falign-functions -momit-leaf-frame-pointer -I../support -g -O2 -fdebug-prefix-map=/home/ross/julia=. -fstack-protector-strong -Wformat -W\
error=format-security -std=gnu99 -pipe -fPIC -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -DSYSTEM_LIBUNWIND -Wold-style-definition -Wstrict-prototypes -Wc++-compat -std=\
gnu99 -pipe -fPIC -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -DSYSTEM_LIBUNWIND  -I/home/ross/julia/usr/include -I/usr/include -I/home/ross/julia/usr/include  -DLIBRARY\
_EXPORTS -DUTF8PROC_EXPORTS -Wall -Wno-strict-aliasing -DUSE_COMPUTED_GOTO -fvisibility=hidden -Wpointer-arith -Wundef -Wold-style-definition -Wstrict-prototypes -Wc++-c\
ompat -Wl,-z,relro -Wl,-z,now /home/ross/julia/src/flisp/flisp.o /home/ross/julia/src/flisp/builtins.o /home/ross/julia/src/flisp/string.o /home/ross/julia/src/flisp/equ\
alhash.o /home/ross/julia/src/flisp/table.o /home/ross/julia/src/flisp/iostream.o /home/ross/julia/src/flisp/julia_extensions.o /home/ross/julia/src/flisp/flmain.o -o /h\
ome/ross/julia/src/flisp/flisp /home/ross/julia/src/flisp/libflisp.a /home/ross/julia/src/flisp/../support/libsupport.a /home/ross/julia/usr/lib/x86_64-linux-gnu/libuv.a\
 -lutf8proc  -lpthread -Wl,--no-as-needed -ldl -lrt -lpthread -Wl,--export-dynamic,--as-needed,--no-whole-archive -lunwind-generic -lunwind -Wl,--version-script=/home/ro\
ss/julia/src/julia.expmap
/home/ross/julia/src/flisp/julia_extensions.o: In function `normalize':
./src/flisp/julia_extensions.c:277: undefined reference to `utf8proc_decompose_custom'
./src/flisp/julia_extensions.c:286: undefined reference to `utf8proc_decompose_custom'
collect2: error: ld returned 1 exit status
Makefile:84: recipe for target '/home/ross/julia/src/flisp/flisp' failed
make[4]: *** [/home/ross/julia/src/flisp/flisp] Error 1
make[4]: Leaving directory '/home/ross/julia/src/flisp'
Makefile:228: recipe for target 'flisp/libflisp.a' failed
make[3]: *** [flisp/libflisp.a] Error 2
make[3]: Leaving directory '/home/ross/julia/src'
Makefile:43: recipe for target 'julia_flisp.boot.inc.phony' failed
make[2]: *** [julia_flisp.boot.inc.phony] Error 2
make[2]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/ross/julia/src'
make[2]: Leaving directory '/home/ross/julia'
dh_auto_build: make -j10 "INSTALL=install --strip-program=true" prefix=/usr sysconfdir=/etc DESTDIR=debian/tmp/ LLVM_CONFIG=/usr/bin/llvm-config-6.0 LLVM_VER=6.0 MULTIAR\
CH=x86_64-linux-gnu MULTIARCH_INSTALL=1 NO_GIT=1 "TAGGED_RELEASE_BANNER=Debian ⛬  julia/1.1.0+rblocal-2" USE_BLAS64=0 USE_LLVM_SHLIB=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_CURL=\
1 USE_SYSTEM_DSFMT=1 USE_SYSTEM_GMP=1 USE_SYSTEM_LAPACK=1 USE_SYSTEM_LIBGIT2=1 USE_SYSTEM_LIBSSH2=1 USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_LIBUV=0 USE_SYSTEM_LLVM=1 USE_SYSTE\
M_MBEDTLS=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_OPENSPECFUN=1 USE_SYSTEM_PATCHELF=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_SUITESPARSE=1 USE_SYSTEM_UTF8PROC=1 VERBOSE=1 MARCH=x86-64 JULI\
A_CPU_TARGET=generic\;sandybridge,-xsaveopt,clone_all\;haswell,-rdrnd,base\(1\) USE_SYSTEM_OPENLIBM=1 USE_SYSTEM_LIBM=0 LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAP\
ACK=-lopenblas LIBLAPACKNAME=libopenblas USE_INTEL_MKL=1 USE_BLAS64=1 LIBBLAS=-lmkl_rt LIBBLASNAME=libmkl_rt LIBLAPACK=-lmkl_rt LIBLAPACKNAME=libmkl_rt MKLROOT=/usr MKLL\
IB=/usr/lib/x86_64-linux-gnu returned exit code 2
debian/rules:126: recipe for target 'override_dh_auto_build-arch' failed
make[1]: *** [override_dh_auto_build-arch] Error 2
make[1]: Leaving directory '/home/ross/julia'
debian/rules:123: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

________________________________________
From: Boylan, Ross
Sent: Saturday, April 20, 2019 2:57:13 PM
To: pkg-julia-devel at alioth-lists.debian.net
Subject: backporting experimental to stretch

I'm interested in using the latest julia, but would prefer to keep my system at stretch.   So I thought I'd take the latest source (which is assume is what's in experimental) and try building it in my environment.

After using stretch-backports for a number of packages I appear to have the build-deps mostly in hand.  2 packages are near misses (but one of them is llvm), and one's just missing.
My guess is  that if I just relax the requirements in the control file, it will probably be good enough.

Does that seem reasonable?

DETAILS:
The exceptions are, running in the debian directory from https://salsa.debian.org/julia-team/julia.git
$ dpkg-checkbuilddeps control
dpkg-checkbuilddeps: error: Unmet build dependencies: llvm-6.0-dev (>= 1:6.0.1-11) libutf8proc-dev (>= 2.1.1) texlive-plain-generic
$ dpkg -l llvm-6.0-dev libutf8proc-dev texlive-plain-generic
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version                 Architecture            Description
+++-====================================-=======================-=======================-==============================================================================
ii  libutf8proc-dev:amd64                2.0.2-1                 amd64                   C library for processing UTF-8 Unicode data (development files)
ii  llvm-6.0-dev                         1:6.0-1~bpo9+1          amd64                   Modular compiler and toolchain technologies, libraries and headers
dpkg-query: no packages found matching texlive-plain-generic

I'm not sure what's up with texlive-plain-generic; maybe split out post-stretch?  If it was not stable enough for release, I suppose I need to get it.

Thanks, and thanks for making julia available on Debian.
Ross


More information about the Pkg-julia-devel mailing list