Julia: Julia Build from Source / s390x Machine Architecture not Supported

Created on 21 Apr 2017  Â·  42Comments  Â·  Source: JuliaLang/julia

I've rebuilt the OpenBLAS package from source and adjusted the IBM s390x architecture under Ubuntu 16 and executed a "make USE_SYSTEM_BLAS=1 NO_LAPACK=1" at the Julia source distribution, receiving the following error message:

checking for ELF helper width... configure: error: Unknown ELF target: s390x
/data/shared/julia/downloads/julia-0.5.1/deps/unwind.mk:15: recipe for target 'build/libunwind-1.1-julia2/config.status' failed
make[1]: *** [build/libunwind-1.1-julia2/config.status] Error 1
Makefile:81: recipe for target 'julia

Are there plans to add the s390x architecture to the Julia language distribution? Is there a configuration option to avoid, or bypass this error at the package make process? Our platform is LinuxOne on system z.

Most helpful comment

IBMz mainframes are designed for big challenges.

All 42 comments

I don't think there's any plan to support it and it'll take someone with actual access to such system to do so. Assuming all of the dependencies can be supported on such arch already possibly with special flags/patches you should be able to check julia itself by specifying USE_SYSTEM_* for all of the dependencies.

Sounds from https://github.com/gperftools/gperftools/issues/761 like libunwind has not been ported to s390x. Do we have a way of building without libunwind?

I don't think we have a easy we do do that since don't currently do that on any platforms. You can try specifying USE_SYSTEM_LIBUNWIND=1 LIBUNWIND= which will hopefully get the deps build pass and then commenting out things (includes and the body of jl_unw_init and jl_unw_step etc).

Using the suggested build command, it got one step further:
make USE_SYSTEM_BLAS=1 NO_LAPACK=1 USE_SYSTEM_LIBUNWIND=1 LIBUNWIND=

Error:
Makefile:20: s390x/Make.files: No such file or directory make[2]: *** No rule to make target 's390x/Make.files'. Stop. /data/shared/julia/downloads/julia-0.5.1/deps/openlibm.mk:11: recipe for target 'build/openlibm-1581174c85f7b645b15ba1ac1c3a98fb601f0fe7/libopenlibm.so' failed make[1]: *** [build/openlibm-1581174c85f7b645b15ba1ac1c3a98fb601f0fe7/libopenlibm.so] Error 2 Makefile:81: recipe for target 'julia-deps' failed make: *** [julia-deps] Error 2

Is there any configuration adjustment that could fix this error?

USE_SYSTEM_LIBM

There's a list of USE_SYSTEM_* flags here. You should probably start with enabling as many of them as possible. (Note that you don't need to enable system openlibm and libm at the same time. You should probably leave out libuv too since it's pretty fundamental and we carry non-trivial patch. Others should be find when taken from system install, some may fail tests but the build should be ok.)

Thanks, the build made some good advance, compiling mostly all of the modules of Julia. Below my make command:
make USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 NO_LAPACK=1 USE_SYSTEM_LIBUNWIND=1 LIBUNWIND=

Error:
/data/shared/julia/downloads/julia-0.5.1/deps/srccache/pcre2-10.21/src/sljit/sljitLir.h:438:31: warning: 'sljit_set_compiler_memory_error' used but never defined
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_compiler_memory_error(struct sljit_comp
^

Makefile:2089: recipe for target 'src/libpcre2_8_la-pcre2_jit_compile.lo' failed
make[3]: *** [src/libpcre2_8_la-pcre2_jit_compile.lo] Error 1
Makefile:1212: recipe for target 'all' failed
make[2]: *** [all] Error 2
/data/shared/julia/downloads/julia-0.5.1/deps/pcre.mk:22: recipe for target 'build/pcre2-10.21/.libs/libpcre2-8.so' failed
make[1]: *** [build/pcre2-10.21/.libs/libpcre2-8.so] Error 2
Makefile:81: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

Any hints how to fix it?

Do you have a system pcre to replace this with?

There appears to be up to date package for Ubuntu so that's probably the easiest solution https://answers.launchpad.net/ubuntu/+source/pcre2/10.21-1/+build/9537783

It looks like the pcre jit has some known issues on s390x and distros have been disabling it (https://patchwork.alpinelinux.org/patch/3322/ for example). That would lead to some ccall's you'd need to comment out in the Julia code, probably.

I've done a new make with:
make USE_SYSTEM_*=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 NO_LAPACK=1 USE_SYSTEM_LIBUNWIND=1 LIBUNWIND=
Error: : error after a large compile step: conflicting types for 'sljit_create_compiler'
config.status: executing delete-old-chartables commands
CC src/libpcre2_8_la-pcre2_auto_possess.lo
CC src/libpcre2_8_la-pcre2_compile.lo
CC src/libpcre2_8_la-pcre2_config.lo
CC src/libpcre2_8_la-pcre2_context.lo
CC src/libpcre2_8_la-pcre2_dfa_match.lo
CC src/libpcre2_8_la-pcre2_error.lo
CC src/libpcre2_8_la-pcre2_find_bracket.lo
CC src/libpcre2_8_la-pcre2_jit_compile.lo
In file included from /data/shared/julia/downloads/julia-0.5.1/deps/srccache/pcre2-10.21/src/pcre2_jit_compile.c:79:0:
/data/shared/julia/downloads/julia-0.5.1/deps/srccache/pcre2-10.21/src/sljit/sljitLir.c:1718:49: error: conflicting types for 'sljit_create_compiler'
SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)

.... well USE_SYSTEM_* won't work it's not a valid/meaningful make invocation syntax, you need to actually replace those by the ones in the link I have.

Thanks for fixing the LIBUNWIND package dependency, adding the DISABLE_LIBUNWIND=1 parameter.
After building the kf/unwinddis branch I receive the following error. Any advice how to debug and isolate the issue with the "core dumped" message at inference.ji?

My llvm is at the following level:

dpkg -s llvm | grep '^Version:'
Version: 1:3.8-33ubuntu3.1
make cleanall 
make DISABLE_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 NO_LAPACK=1 USE_SYSTEM_LLVM=1

   PERL base/uv_constants.jl
Makefile:95: "WARNING: Generating boilerplate git version info"
Copying in usr/share/doc/julia/examples
Warning: git information unavailable; versioning information limited
    JULIA usr/lib/julia/inference.ji
Segmentation fault (core dumped)
Makefile:215: recipe for target '/data/shared/julia/julia-kf-unwinddis/usr/lib/julia/inference.ji' failed
make[1]: *** [/data/shared/julia/julia-kf-unwinddis/usr/lib/julia/inference.ji] Error 139
Makefile:100: recipe for target 'julia-inference' failed
make: *** [julia-inference] Error 2

I wouldn't bother with openblas at this stage of the port and just use the reference blas or atlas. But looks like this is now failing in the julia compiler as it builds the system image.

Perhaps the instructions here will help debug: https://docs.julialang.org/en/stable/devdocs/backtraces/#segfaults-during-bootstrap-sysimg-jl

OpenBLAS is in progress and currently partially enabled.

Latest build of merged master version of Jul.13 2017 excluding the LIBUNWIND package. Need some assistance to debug and isolate the issue with module /usr/lib/julia/inference.ji:

make debug DISABLE_LIBUNWIND=1 USE_SYSTEM_PCRE=1 PCRE= USE_SYSTEM_LIBM=1 NO_LAPACK=1 USE_SYSTEM_LLVM=1 USE_SYSTEM_BLAS=1 BLAS=

Error message at build:

    PERL base/uv_constants.jl
Makefile:95: "WARNING: Generating boilerplate git version info"
Copying in usr/share/doc/julia/examples
Warning: git information unavailable; versioning information limited
    JULIA usr/lib/julia/inference.ji
Segmentation fault (core dumped)
Makefile:215: recipe for target '/data/shared/julia/julia-master/usr/lib/julia/inference.ji' failed
make[1]: *** [/data/shared/julia/julia-master/usr/lib/julia/inference.ji] Error 139
Makefile:100: recipe for target 'julia-inference' failed
make: *** [julia-inference] Error 2

Attempt to debug:

root@47fe5fd7a3f8:/data/shared/julia/julia-master/base# gdb -x ../contrib/debug_bootstrap.gdb
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "s390x-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
../contrib/debug_bootstrap.gdb:1: Error in sourced command file:
../usr/bin/julia-debug: No such file or directory.

cd /data/shared/julia/julia-master
gdb --args ./usr/bin/julia-debug /data/shared/julia/julia-master/usr/lib/julia/inference.ji

oot@47fe5fd7a3f8:/data/shared/julia/julia-master# gdb --args ./usr/bin/julia-debug /data/shared/julia/julia-master/usr/lib/julia/inference.ji
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "s390x-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
./usr/bin/julia-debug: No such file or directory.
(gdb) r
Starting program:  /data/shared/julia/julia-master/usr/lib/julia/inference.ji
No executable file specified.
Use the "file" or "exec-file" command.
(gdb) bt
No stack.
(gdb) 


Debug Attempts:

Building with "--ignore-errors" flag, I get the following error:
"g++: error:" "/usr/lib/julia/sys-debug.o:" "No such file or directory" Julia

Seems to be similar to issue #18551

Question: Could the installation of LLVM version 3.9 (beta) solve this error?

When building with: "make verbose=1 debug" I receive the following messages:

inference.jl
error during bootstrap:
BoundsError(a=Array{Any, 1}[
  Array{Any, 1}[
  Core.Inference.VarState(typ=Core.Inference.Const(val=typeof(Core.Inference.typeinf_code)(), actual=false), undef=false),
...
Makefile:215: recipe for target '/data/shared/julia/julia-master/usr/lib/julia/inference.ji' failed
make[1]: *** [/data/shared/julia/julia-master/usr/lib/julia/inference.ji] Error 1
Makefile:100: recipe for target 'julia-inference' failed
make: *** [julia-inference] Error 2

Hints for debug and error isolation are welcome.

Getting the following error when building Julia from latest source distribution (Dec. 9, 2017) under the IBM system z platform (arch=s390x) with Ubuntu Linux 16.4 and LLVM at 3.9.1:

make DISABLE_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 NO_LAPACK=1 USE_SYSTEM_LLVM=0 ARCH=s390x

Error:

    JULIA usr/lib/julia/inference.ji
LLVM ERROR: Cannot select: 0x2aa330b0680: i64 = addrspacecast[0 -> 10] 0x2aa330b0610
  0x2aa330b0610: i64,ch = load<LD8[@"jl_global#3"](tbaa=<0x2aa33040918>)> 0x2aa330540c0, 0x2aa330bca60, undef:i64
    0x2aa330bca60: i64,ch = load<LD8[GOT]> 0x2aa330540c0, 0x2aa330bc9f0, undef:i64
      0x2aa330bc9f0: i64 = SystemZISD::PCREL_WRAPPER TargetGlobalAddress:i64<%jl_value_t** @"jl_global#3"> 0 [TF=1]
        0x2aa330b0a70: i64 = TargetGlobalAddress<%jl_value_t** @"jl_global#3"> 0 [TF=1]
      0x2aa330ad6d0: i64 = undef
    0x2aa330ad6d0: i64 = undef
In function: japi1_top-level scope_0
Makefile:205: recipe for target '/data/shared/downloads/julia/julia-master/usr/lib/julia/inference.ji' failed
make[1]: *** [/data/shared/downloads/julia/julia-master/usr/lib/julia/inference.ji] Error 1

Another back-end that doesn't support address spaces. Ref #22414, example workaround in #23611.

I got a step further doing a bypass of the regression tests by using:
make USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_LAPACK=1 USE_SYSTEM_LLVM=0 ARCH=s390x -B CFLAGS=-DNDEBUG
integrating the "s390x" adjusted Libunwind package from repository: https://github.com/linux-on-ibm-z/libunwind. Latest build attempt did throw the following error at a rather advanced point of the build flow:

master/deps/srccache/gmp-6.1.2 -D__GMP_WITHIN_GMP -DNDEBUG -c mpn/scan0.c  -fPIC -DPIC -o mpn/.libs/scan0.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/data/shared/downloads/julia/julia-master/deps/srccache/gmp-6.1.2 -D__GMP_WITHIN_GMP -DNDEBUG -c mpn/scan1.c  -fPIC -DPIC -o mpn/.libs/scan1.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/data/shared/downloads/julia/julia-master/deps/srccache/gmp-6.1.2 -D__GMP_WITHIN_GMP -DNDEBUG -c mpn/popcount.c  -fPIC -DPIC -o mpn/.libs/popcount.o
mpn/popcount.c: In function 'FNAME':
mpn/popcount.c:61:12: warning: implicit declaration of function 'POPHAM' [-Wimplicit-function-declaration]
       p0 = POPHAM (up[0], vp[0]);
            ^
mpn/popcount.c:61:27: error: 'vp' undeclared (first use in this function)
       p0 = POPHAM (up[0], vp[0]);
                           ^
mpn/popcount.c:61:27: note: each undeclared identifier is reported only once for each function it appears in
Makefile:885: recipe for target 'mpn/popcount.lo' failed
make[4]: *** [mpn/popcount.lo] Error 1
Makefile:957: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
Makefile:776: recipe for target 'all' failed
make[2]: *** [all] Error 2
/data/shared/downloads/julia/julia-master/deps/gmp.mk:31: recipe for target 'scratch/gmp-6.1.2/build-compiled' failed
make[1]: *** [scratch/gmp-6.1.2/build-compiled] Error 2 

I recommend doing USE_SYSTEM_GMP=1 and USE_SYSTEM_MPFR=1

Also, regarding the crashes you are seeing: the s390x system is a big-endian machine. There's a few places in the code where we assume little-endian. These are usually marked, but we haven't had a big-endian system to test any fixes and avoid bit-rot in that code.

Thanks @vtjnash. The system version of GMP solved the issue and the build made some advance. It stopped at an issue regarding the version of automake package already installed under the Ubuntu 16.04 Linux. Here the error message:

cd /data/shared/downloads/julia/julia-master/deps/srccache/curl-7.56.0 && /bin/bash /data/shared/downloads/julia/julia-master/deps/srccache/curl-7.56.0/missing automake-1.15 --foreign Makefile
configure.ac:128: error: version mismatch.  This is Automake 1.15,
configure.ac:128: but the definition used by this AM_INIT_AUTOMAKE
configure.ac:128: comes from Automake 1.15.1.  You should recreate
configure.ac:128: aclocal.m4 with aclocal and run automake again.
WARNING: 'automake-1.15' is probably too old.
         You should only need it if you modified 'Makefile.am' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'automake' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
Makefile:802: recipe for target '/data/shared/downloads/julia/julia-master/deps/srccache/curl-7.56.0/Makefile.in' failed

The system automake version is 1.15, see:

automake --version
automake (GNU automake) 1.15
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>

Julia definitely would need a work-over to make things work on a big-endian system and in order to make sure that things continue to work, we would need CI on a big-endian machine somewhere.

IBM offers a no charge account on the Linux system z platform for a use period of 3 month, for students and developers, a hosting offering that is known as LinuxONE Community Cloud. The service subscription can be done at the following web site [ https://developer.ibm.com/linuxone/ ]. It includes access to SuSE and Ubuntu Linux distributions. Previously I've done many open-source package ports onto the z platform, which almost all times completed successfully by doing a low-level build of all prerequisites, even when the CPU operates in "big-endian" mode. From this background, I feel rather confident that the port of Julia could work successfully. System z, specially the z14 model has very powerful multi-core processor which is promising environment for math and analytic tasks.

I'm afraid 3 months is kind of useless – it's really not worth the effort to get a CI system running smoothly on infrastructure that we're only going to be able to use for 3 months.

Don't get me wrong, I'd love to get Julia working on big-endian systems and run CI regularly to keep it working, but we just don't have the physical computing resources available to do that.

Three months is the default, trial duration, not a hard limit. Many OSS projects have been granted guest VMs that don't expire for legitimate purposes, such as CI testers.

That would be great if we could work something out like that. Beware, however, that the Julia test suite is a beast and causes problems on literally every CI system we use.

IBMz mainframes are designed for big challenges.

I'm currently focusing on "dockerized" installations on z, which is beneficial, as it does not harm the base Linux system, allowing such type of wild beast tests. Worst case of a crash, you just reboot from latest Docker container saved and you are ready for a new test, or experimental build. Docker and its dockerfile is also a good way to rebuild the image and install it on other instances of LinuxONE, in case of a trial account expiry. It also maps the way how a student will consume the service in a pre-packed environment.

I've manually installed "automake" at latest release 1.15.1 (as requested by the previous error). Confirming the version:

automake --version
automake (GNU automake) 1.15.1 

Julia build command:
make USE_SYSTEM_GMP=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_LAPACK=1 USE_SYSTEM_LLVM=0 ARCH=s390x -B CFLAGS=-DNDEBUG

The build advanced far beyond the previous error but again pointing to an issue with automake. Now requesting an older version of automake at level 1.14. Any idea how fix this error condition?

Build log:

bin/bash /data/shared/downloads/julia/julia-master/deps/srccache/arpack-ng-3.3.0/missing automake-1.14 --foreign Makefile
/data/shared/downloads/julia/julia-master/deps/srccache/arpack-ng-3.3.0/missing: line 81: automake-1.14: command not found
WARNING: 'automake-1.14' is missing on your system.
         You should only need it if you modified 'Makefile.am' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'automake' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
Makefile:413: recipe for target '/data/shared/downloads/julia/julia-master/deps/srccache/arpack-ng-3.3.0/Makefile.in' failed
make[2]: *** [/data/shared/downloads/julia/julia-master/deps/srccache/arpack-ng-3.3.0/Makefile.in] Error 127

Is your system clock set correctly? You shouldn't need autoconf unless the system time is considerably off.

Dear @vtjnash. Thanks for the direction. Checking here: The machine time looks accurate, the machine location is Poughkeepsie NY/US, the machine time is set to UTC, at Linux Ubuntu used for the build : date
Thu Dec 14 10:03:58 UTC 2017, which is 05:04 New York EST, 10:04:10 UTC Worldtime (via timeanddate.com). Any hints for adjustment of the time setting?

I've checked the system clock, which is fine. Next I've defined a system variable named APIVERSION with the value of 1.15.1 that matches the latest "automake" version installed in the Linux. After this change, the build went a step further and build process entered into a kind of "looping" condition. Here an attempt to break the loop with [ CTRL C]. A doubt. Why does it build the "curl" package, if usually this is part of the system environment? Support to isolate and fix this new error is welcome.

Makefile:826: recipe for target 'config.status' failed
make[8]: *** [config.status] Error 1
Makefile:512: recipe for target '../config.status' failed
make[7]: *** [../config.status] Interrupt
Makefile:576: recipe for target 'all-recursive' failed
make[6]: *** [all-recursive] Interrupt
Makefile:2207: recipe for target '/data/shared/downloads/julia/julia-master/deps/scratch/curl-7.56.0/docs/curl.1' failed
make[5]: *** [/data/shared/downloads/julia/julia-master/deps/scratch/curl-7.56.0/docs/curl.1] Interrupt
Makefile:1982: recipe for target 'install-am' failed
make[4]: *** [install-am] Interrupt
Makefile:1820: recipe for target 'install-recursive' failed
make[3]: *** [install-recursive] Interrupt
Makefile:910: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Interrupt
/data/shared/downloads/julia/julia-master/deps/curl.mk:51: recipe for target '/data/shared/downloads/julia/julia-master/usr-staging/curl-7.56.0.tgz' failed
make[1]: *** [/data/shared/downloads/julia/julia-master/usr-staging/curl-7.56.0.tgz] Interrupt
Makefile:83: recipe for target 'julia-deps' failed
make: *** [julia-deps] Interrupt

I've added some more packages to the Ubuntu system:

apt-get install fftw-dev; apt-get install libarpack2; apt-get install libarpack2-dev; apt-get install libmpfr4 
apt-get install libmpfr-dev; apt-get install libutf8proc1; apt-get install libutf8proc-dev

And added it as system available packages.
make USE_SYSTEM_FFTW=1 USE_SYSTEM_ARPACK=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_AUTOMAKE=1 USE_SYSTEM_CURL=1 USE_SYSTEM_GMP=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_LAPACK=1 USE_SYSTEM_LLVM=0 ARCH=s390x -B CFLAGS=-DNDEBUG

The build again went a step further, but stopped at the following error:

cp: 'flisp.boot' and '/data/shared/downloads/julia/julia-master/src/flisp/flisp.boot' are the same file
make[2]: *** [/data/shared/downloads/julia/julia-master/src/flisp/flisp.boot] Error 1
make[1]: *** [flisp/libflisp.a] Error 2
make: *** [julia_flisp.boot.inc.phony] Error 2

Any suggestion how to fix the build of "flisp"?

Is this error caused by the s390x environment? See similar issue #393. Any suggestion how to fix this error?

make cleanall 
make USE_SYSTEM_CURL=1 USE_SYSTEM_LIBUV=1 USE_SYSTEM_FFTW:=1 USE_SYSTEM_ARPACK=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_AUTOMAKE=1 USE_SYSTEM_CURL=1 USE_SYSTEM_GMP=1 USE_SYSTEM_MPFR=1 USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_LIBM=1 USE_SYSTEM_BLAS=1 USE_SYSTEM_LAPACK=1 USE_SYSTEM_LLVM=0 ARCH=s390x -B CFLAGS=-DNDEBUG 

My gcc environment is:

gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 

Error:

make[2]: *** No rule to make target '/usr/lib/libuv-julia.a', needed by '/data/shared/downloads/julia/julia-master/src/flisp/flisp'.  Stop.
make[1]: *** [flisp/libflisp.a] Error 2
make: *** [julia_flisp.boot.inc.phony] Error 2

Do you have libuv-devel installed?

You need libuv-julia-devel installed to satisfy the USE_SYSTEM_LIBUV dependency (note: this library is not available in most package managers)

Checking the Ubuntu package managers choices:

apt-cache search libuv
libuv0.10 - asynchronous event notification library - runtime library
libuv0.10-dbg - asynchronous event notification library - debugging symbols
libuv0.10-dev - asynchronous event notification library - development files
libuv1 - asynchronous event notification library - runtime library
libuv1-dbg - asynchronous event notification library - debugging symbols
libuv1-dev - asynchronous event notification library - development files

Installed are: 
libuv1 
apt-get install libuv1-dev
libuv1-dev is already the newest version (1.8.0-1).

Did not find any package named: libuv-julia-devel

What options do you recommend to run the make again?

I am closing this issue for now, since a lot has changed since this was tried. My suggestion is try afresh after the 0.7 release and create a fresh issue for S390 for whoever is attempting it.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

arshpreetsingh picture arshpreetsingh  Â·  3Comments

wilburtownsend picture wilburtownsend  Â·  3Comments

StefanKarpinski picture StefanKarpinski  Â·  3Comments

ararslan picture ararslan  Â·  3Comments

Keno picture Keno  Â·  3Comments