Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to compile with Intel compilers #8294

Closed
bdeonovic opened this issue Sep 10, 2014 · 48 comments · Fixed by #11251
Closed

Failed to compile with Intel compilers #8294

bdeonovic opened this issue Sep 10, 2014 · 48 comments · Fixed by #11251
Labels
building Build system, or building Julia or its dependencies

Comments

@bdeonovic
Copy link
Contributor

Tried compiling with intel MKL and intel compilers (not sure if issue has to do with those though). Make errored out with this:

fround.c(57): error: identifier "LONG_MAX" is undefined
      if(x < (double) LONG_MAX) { /* in <limits.h> is architecture dependent */
                      ^

compilation aborted for fround.c (code 2)
make[3]: *** [fround.o] Error 2
make[2]: *** [Rmath/src/libRmath-julia.so] Error 2
make[1]: *** [julia-release] Error 2
make: *** [release] Error 2
@ivarne
Copy link
Member

ivarne commented Sep 10, 2014

Which version of Julia did you try to compile? Can you provide the command you used to compile (along with Make.user or other modifications)?

@bdeonovic
Copy link
Contributor Author

I had some extra compile flags setup from compiling a previous program that might have been the issue. I am now re-compiling without those to see if that is the issue.

I did: git clone [email protected]:JuliaLang/julia.git to get julia (I imagine that is latest development version). and then in Make.user I had:

USEICC=1
USEIFC=1
USE_INTEL_MKL=1
USE_INTEL_MKL_FFT=1
USE_INTEL_LIBM=1

and then I just typed in make.

I also ran

source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64
export MKL_INTERFACE_LAYER=ILP64

@StefanKarpinski
Copy link
Member

This is supported and @ViralBShah recently did a bunch of work to make sure it was, so please do let us know of that does or doesn't fix things. Thanks for filing the issue.

@bdeonovic
Copy link
Contributor Author

Ran into a different error this time:

 LINK usr/bin/julia
Warning: could not import Core.eval into Main
*** glibc detected *** /Shared/Au/bdeonovic/bin/julia/usr/bin/julia: double free or corruption (out): 0x0000000000e77ad0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x76126)[0x7f01fdf39126]
/lib64/libc.so.6(+0x78c53)[0x7f01fdf3bc53]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x60e7b7)[0x7f01ff62d7b7]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x634151)[0x7f01ff653151]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0xc00ae0)[0x7f01ffc1fae0]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0xc04a56)[0x7f01ffc23a56]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0xc0496a)[0x7f01ffc2396a]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x5d7fd7)[0x7f01ff5f6fd7]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x5d7f60)[0x7f01ff5f6f60]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x5d7ef6)[0x7f01ff5f6ef6]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0xe1d8f)[0x7f01ff100d8f]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(jl_trampoline+0xa1)[0x7f01ff0fb8f1]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x15943f)[0x7f01ff17843f]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(+0x1591bf)[0x7f01ff1781bf]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(jl_load+0x64)[0x7f01ff177ff4]
/Shared/Au/bdeonovic/bin/julia/usr/bin/julia[0x40229b]
/Shared/Au/bdeonovic/bin/julia/usr/bin/julia[0x402086]
/Shared/Au/bdeonovic/bin/julia/usr/bin/../lib/libjulia.so(julia_trampoline+0x90)[0x7f01ff16a960]
/Shared/Au/bdeonovic/bin/julia/usr/bin/julia[0x4016c7]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f01fdee1cdd]
/Shared/Au/bdeonovic/bin/julia/usr/bin/julia[0x401589]
======= Memory map: ========
00400000-0040e000 r-xp 00000000 00:30 67861883                           /Shared/Au/bdeonovic/bin/julia/usr/bin/julia
0060d000-0060f000 rw-p 0000d000 00:30 67861883                           /Shared/Au/bdeonovic/bin/julia/usr/bin/julia
00d19000-00ee2000 rw-p 00000000 00:00 0                                  [heap]
7f01f5dfb000-7f01f5e1b000 rwxp 00000000 00:00 0 
7f01f5e3b000-7f01f603d000 rw-p 00000000 00:00 0 
7f01f603d000-7f01f60bd000 rwxp 00000000 00:00 0 
7f01f60bd000-7f01f6b41000 rw-p 00000000 00:00 0 
7f01f6b41000-7f01fc9d1000 r--p 00000000 08:01 25305303                   /usr/lib/locale/locale-archive
7f01fc9d1000-7f01fca1c000 r-xp 00000000 00:96 71833308                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libintlc.so.5
7f01fca1c000-7f01fcc1b000 ---p 0004b000 00:96 71833308                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libintlc.so.5
7f01fcc1b000-7f01fcc1e000 rw-p 0004a000 00:96 71833308                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libintlc.so.5
7f01fcc1e000-7f01fcc1f000 rw-p 00000000 00:00 0 
7f01fcc1f000-7f01fcc24000 r-xp 00000000 00:96 71833312                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libirng.so
7f01fcc24000-7f01fce24000 ---p 00005000 00:96 71833312                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libirng.so
7f01fce24000-7f01fce26000 rw-p 00005000 00:96 71833312                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libirng.so
7f01fce26000-7f01fd5cc000 r-xp 00000000 00:96 71833318                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libsvml.so
7f01fd5cc000-7f01fd7cc000 ---p 007a6000 00:96 71833318                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libsvml.so
7f01fd7cc000-7f01fd7f1000 rw-p 007a6000 00:96 71833318                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libsvml.so
7f01fd7f1000-7f01fda6b000 r-xp 00000000 00:96 71833306                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libimf.so
7f01fda6b000-7f01fdc6a000 ---p 0027a000 00:96 71833306                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libimf.so
7f01fdc6a000-7f01fdcad000 rw-p 00279000 00:96 71833306                   /share/build/Intel_tree/composer_xe_2013.2.146/compiler/lib/intel64/libimf.so
7f01fdcad000-7f01fdcc2000 r-xp 00000000 08:01 20971837                   /lib64/libz.so.1.2.3
7f01fdcc2000-7f01fdec1000 ---p 00015000 08:01 20971837                   /lib64/libz.so.1.2.3
7f01fdec1000-7f01fdec2000 r--p 00014000 08:01 20971837                   /lib64/libz.so.1.2.3
7f01fdec2000-7f01fdec3000 rw-p 00015000 08:01 20971837                   /lib64/libz.so.1.2.3
7f01fdec3000-7f01fe04d000 r-xp 00000000 08:01 20971533                   /lib64/libc-2.12.so
7f01fe04d000-7f01fe24c000 ---p 0018a000 08:01 20971533                   /lib64/libc-2.12.so
7f01fe24c000-7f01fe250000 r--p 00189000 08:01 20971533                   /lib64/libc-2.12.so
7f01fe250000-7f01fe251000 rw-p 0018d000 08:01 20971533                   /lib64/libc-2.12.so
7f01fe251000-7f01fe256000 rw-p 00000000 00:00 0 
7f01fe256000-7f01fe26c000 r-xp 00000000 08:01 20971620                   /lib64/libgcc_s-4.4.6-20120305.so.1
7f01fe26c000-7f01fe46b000 ---p 00016000 08:01 20971620                   /lib64/libgcc_s-4.4.6-20120305.so.1
7f01fe46b000-7f01fe46c000 rw-p 00015000 08:01 20971620                   /lib64/libgcc_s-4.4.6-20120305.so.1
7f01fe46c000-7f01fe554000 r-xp 00000000 08:01 25306956                   /usr/lib64/libstdc++.so.6.0.13
7f01fe554000-7f01fe754000 ---p 000e8000 08:01 25306956                   /usr/lib64/libstdc++.so.6.0.13
7f01fe754000-7f01fe75b000 r--p 000e8000 08:01 25306956                   /usr/lib64/libstdc++.so.6.0.13
7f01fe75b000-7f01fe75d000 rw-p 000ef000 08:01 25306956                   /usr/lib64/libstdc++.so.6.0.13
7f01fe75d000-7f01fe772000 rw-p 00000000 00:00 0 
7f01fe772000-7f01fe7f5000 r-xp 00000000 08:01 20971541                   /lib64/libm-2.12.so
7f01fe7f5000-7f01fe9f4000 ---p 00083000 08:01 20971541                   /lib64/libm-2.12.so
7f01fe9f4000-7f01fe9f5000 r--p 00082000 08:01 20971541                   /lib64/libm-2.12.so
signal (6): Aborted
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
unknown function (ip: -34392073)
unknown function (ip: -34369242)
unknown function (ip: -34358189)
unknown function (ip: -10299465)
unknown function (ip: -10145455)
unknown function (ip: -4064544)
unknown function (ip: -4048298)
unknown function (ip: -4048534)
unknown function (ip: -10522665)
unknown function (ip: -10522784)
unknown function (ip: -10522890)
jl_generate_fptr at /Shared/Au/bdeonovic/bin/julia/src/codegen.cpp:664
jl_trampoline_compile_function at /Shared/Au/bdeonovic/bin/julia/src/builtins.c:810
unknown function (ip: -15236033)
jl_parse_eval_all at /Shared/Au/bdeonovic/bin/julia/src/toplevel.c:544
jl_load at /Shared/Au/bdeonovic/bin/julia/src/toplevel.c:580
unknown function (ip: 4203163)
unknown function (ip: 4202630)
julia_trampoline at /Shared/Au/bdeonovic/bin/julia/src/init.c:1011
unknown function (ip: 4200135)
__libc_start_main at /lib64/libc.so.6 (unknown line)
unknown function (ip: 4199817)
/bin/sh: line 1:  9332 Aborted                 /Shared/Au/bdeonovic/bin/julia/usr/bin/julia --build /Shared/Au/bdeonovic/bin/julia/usr/lib/julia/sys0 sysimg.jl
make[1]: *** [/Shared/Au/bdeonovic/bin/julia/usr/lib/julia/sys0.o] Error 134
make: *** [release] Error 2

@ViralBShah
Copy link
Member

I will try this out. What version of the compilers and MKL are you using?

@ViralBShah ViralBShah changed the title Failed to compile Failed to compile with Intel compilers Sep 10, 2014
@ViralBShah
Copy link
Member

I assume that the second time you started with a fresh clone. If not, could you do so?

@bdeonovic
Copy link
Contributor Author

Yes with a fresh clone. I have mkl/11.0.2 and intel/13.1.0 intel compilers

@bdeonovic
Copy link
Contributor Author

Any news?

@ViralBShah
Copy link
Member

I have bigger problems now, which had not happened before:

icpc: command line warning #10159: invalid argument for option '-std'
icpc: command line warning #10006: ignoring unknown option '-Wcovered-switch-default'
icpc: command line warning #10006: ignoring unknown option '-Wno-maybe-uninitialized'
In file included from /home/viral/julia-icc/deps/llvm-3.3/include/llvm/Support/AlignOf.h(19),
                 from /home/viral/julia-icc/deps/llvm-3.3/include/llvm/ADT/SmallVector.h(17),
                 from /home/viral/julia-icc/deps/llvm-3.3/include/llvm/ADT/ArrayRef.h(14),
                 from /home/viral/julia-icc/deps/llvm-3.3/include/llvm/ADT/APInt.h(18),
                 from /home/viral/julia-icc/deps/llvm-3.3/include/llvm/ADT/APFloat.h(104),
                 from /home/viral/julia-icc/deps/llvm-3.3/lib/Support/APFloat.cpp(15):
/usr/include/c++/4.8/cstddef(41): catastrophic error: cannot open source file "bits/c++config.h"
  #include <bits/c++config.h>

@tkelman
Copy link
Contributor

tkelman commented Sep 11, 2014

A C++0x or C++11 switch was added somewhere not that long ago, I think with Keno's LLDB or libc++ work. We're going to need to do CI with the Intel compilers somehow if we want to avoid breaking support for them.

@ViralBShah
Copy link
Member

This fixed it. I think the machine got upgraded. But yes, in general, we probably want CI.

http://stackoverflow.com/questions/19660431/cannot-open-source-file-bits-cconfig-h-error-with-icpc

@ViralBShah
Copy link
Member

I can confirm that everything builds with icc 14.0.1.

@nolta
Copy link
Member

nolta commented Sep 21, 2014

With icc 12.1.3, i get an Rmath error

mlutils.c(107): error: floating-point operation result is out of range
  double NA_REAL = ML_NAN;
                   ^

mlutils.c(108): error: floating-point operation result is out of range
  double R_PosInf = ML_POSINF, R_NegInf = ML_NEGINF;
                    ^

mlutils.c(108): error: floating-point operation result is out of range
  double R_PosInf = ML_POSINF, R_NegInf = ML_NEGINF;
                                          ^

compilation aborted for mlutils.c (code 2)
make[3]: *** [mlutils.o] Error 2
make[2]: *** [Rmath/src/libRmath-julia.so] Error 2
make[1]: *** [julia-release] Error 2
make: *** [release] Error 2

@nolta
Copy link
Member

nolta commented Sep 21, 2014

My icc 12 error looks like https://software.intel.com/en-us/articles/floating-point-operation-result-out-of-range-in-static-initialization

Tried compiling w/ icc 13.1.1, and saw similar error as @bdeonovic, which superficially appeared to originate from llvm::LiveVariables::runOnMachineFunction.

Tried icc 14.0.1, and got julia to compile, but

$ make test-math
    JULIA test/math
     * math
/gss01/scratch/nolta/julia-14/usr/bin/julia: symbol lookup error: /gss01/scratch/nolta/julia-14/usr/bin/../lib/libopenspecfun.so: undefined symbol: complex_
make[1]: *** [math] Error 127
make: *** [test-math] Error 2

@Divisible8737
Copy link

I am also not able to build using icc 15.0.0 20140716, but seem to have gotten not nearly as far as @bdeonovic.

My OS/CPU details are:
System: Darwin (x86_64-apple-darwin13.3.0)
CPU: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz

I cloned this morning's version
commit 5d8c6d3
Merge: 13c6917 dafbc59
Author: Stefan Karpinski [email protected]
Date: Tue Sep 23 10:59:08 2014 -0400

Then I used these two lines in the bash shell:
source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64
export MKL_INTERFACE_LAYER=ILP64

Then I made a Make.user file with the following lines
USEICC = 1
USEIFC = 1
USE_INTEL_MKL = 1
USE_INTEL_MKL_FFT = 1
USE_INTEL_LIBM = 1

Then I finally entered
make -j 4

The result was
/Users/y9KAaixxegjR/julia/Make.inc:287: *** USE_LIBCPP only supported with clang. Try setting USE_LIBCPP=0. Stop.

@ViralBShah
Copy link
Member

What happens with make USE_LIBCPP=0 and the rest of the Make.user intact? Can you try on a fresh clone?

@ViralBShah ViralBShah added the building Build system, or building Julia or its dependencies label Sep 23, 2014
@Divisible8737
Copy link

Thanks for the fast response! With both USE_LIBCPP=0 and USEIFC = 0, I was able to build. But with the Make.user file switched to

USEICC = 0
USEIFC = 1
USE_INTEL_MKL = 1
USE_INTEL_MKL_FFT = 1
USE_INTEL_LIBM = 1

then I get the following:

mbp-2:CodingProjects y9KAaixxegjR$ git clone git://github.com/JuliaLang/julia.git
Cloning into 'julia'...
remote: Counting objects: 106111, done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 106111 (delta 24), reused 4 (delta 0)
Receiving objects: 100% (106111/106111), 43.02 MiB | 1.60 MiB/s, done.
Resolving deltas: 100% (79746/79746), done.
Checking connectivity... done.
mbp-2:CodingProjects y9KAaixxegjR$ cd julia
mbp-2:julia y9KAaixxegjR$ source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64 
mbp-2:julia y9KAaixxegjR$ export MKL_INTERFACE_LAYER=ILP64
mbp-2:julia y9KAaixxegjR$ make -j 4
Submodule 'deps/Rmath' (git://github.com/JuliaLang/Rmath.git) registered for path 'deps/Rmath'
Submodule 'deps/libmojibake' (git://github.com/JuliaLang/libmojibake.git) registered for path 'deps/libmojibake'
Submodule 'deps/libuv' (git://github.com/JuliaLang/libuv.git) registered for path 'deps/libuv'
Submodule 'deps/openlibm' (git://github.com/JuliaLang/openlibm.git) registered for path 'deps/openlibm'
Submodule 'deps/openspecfun' (git://github.com/JuliaLang/openspecfun.git) registered for path 'deps/openspecfun'
Submodule 'doc/juliadoc' (git://github.com/JuliaLang/JuliaDoc.git) registered for path 'doc/juliadoc'
Cloning into 'deps/Rmath'...
remote: Counting objects: 359, done.
remote: Total 359 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (359/359), 272.75 KiB | 0 bytes/s, done.
Resolving deltas: 100% (235/235), done.
Checking connectivity... done.
Submodule path 'deps/Rmath': checked out '226598f63af75e8bc3568f01e34932caebce6064'
Cloning into 'deps/libmojibake'...
remote: Counting objects: 149, done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 149 (delta 78), reused 135 (delta 69)
Receiving objects: 100% (149/149), 226.04 KiB | 0 bytes/s, done.
Resolving deltas: 100% (78/78), done.
Checking connectivity... done.
Submodule path 'deps/libmojibake': checked out 'bc357b276f1fd7124bbb31a4e212a30e57520eee'
Cloning into 'deps/libuv'...
remote: Counting objects: 20649, done.
remote: Compressing objects: 100% (7812/7812), done.
remote: Total 20649 (delta 12773), reused 20649 (delta 12773)
Receiving objects: 100% (20649/20649), 12.21 MiB | 1.21 MiB/s, done.
Resolving deltas: 100% (12773/12773), done.
Checking connectivity... done.
Submodule path 'deps/libuv': checked out 'a12eb3329cd2c0224ef631ea062fa16d119da47c'
Cloning into 'deps/openlibm'...
remote: Counting objects: 4104, done.
remote: Total 4104 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4104/4104), 4.14 MiB | 1.96 MiB/s, done.
Resolving deltas: 100% (1993/1993), done.
Checking connectivity... done.
Submodule path 'deps/openlibm': checked out '0b9d67e54a5b07e32a27b68cf0a01c33b515fc9b'
Cloning into 'deps/openspecfun'...
remote: Counting objects: 253, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 253 (delta 4), reused 0 (delta 0)
Receiving objects: 100% (253/253), 180.88 KiB | 0 bytes/s, done.
Resolving deltas: 100% (109/109), done.
Checking connectivity... done.
Submodule path 'deps/openspecfun': checked out 'f3036c094ae56fdf447092a871ea4fe27fdeec16'
Cloning into 'doc/juliadoc'...
remote: Counting objects: 152, done.
remote: Total 152 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (152/152), 40.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (70/70), done.
Checking connectivity... done.
Submodule path 'doc/juliadoc': checked out 'bab3c6ba9e613da94001e1d71f994143814a1422'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /opt/local/bin/gmkdir -p
checking for gawk... gawk
100   130    0   130    0     0    619      0 --:--:-- --:--:-- --:--:--   890
yes
checking whether make supports nested variables... yes
checking build system type... x86_64-apple-darwin13.4.0
checking host system type... x86_64-apple-darwin13.4.0
checking for gcc... clang -stdlib=libc++ -mmacosx-version-min=10.7
checking whether the C compiler works... amos/d1mach.f(80): remark #7922: The value was too small when converting to REAL(KIND=8); the result is in the denormalized range.   [1.79D-308]
      DATA DMACH(2) / 1.79D-308 /
----------------------^
  1 84306    1   855    0     0   1808      0  0:00:46 --:--:--  0:00:46  1808yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
100 84306  100 84306    0     0   128k      0 --:--:-- --:--:-- --:--:--  490k
o
checking whether we are using the GNU C compiler... yes
checking whether clang -stdlib=libc++ -mmacosx-version-min=10.7 accepts -g... yes
checking for clang -stdlib=libc++ -mmacosx-version-min=10.7 option to accept ISO C89... amos/zasyi.f(25): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
amos/zbesk.f(194): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
none needed
checking whether clang -stdlib=libc++ -mmacosx-version-min=10.7 understands -c and -o together...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0yes
checking for style of include used by make... GNU
checking dependency style of clang -stdlib=libc++ -mmacosx-version-min=10.7... amos/zbknu.f(41): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      CAZ = ZABS(COMPLEX(ZR,ZI))
-----------------^
gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking whether make supports nested variables... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /opt/local/bin/gsed
checking for grep that handles long lines and -e... /opt/local/bin/grep
checking for egrep... /opt/local/bin/grep -E
checking for fgrep... /opt/local/bin/grep -F
checking for ld used by clang -stdlib=libc++ -mmacosx-version-min=10.7... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /opt/local/bin/nm
checking the name lister (/opt/local/bin/nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-apple-darwin13.4.0 file names to x86_64-apple-darwin13.4.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin13.4.0 file names to toolchain format... func_convert_file_noop
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /opt/local/bin/nm output from clang -stdlib=libc++ -mmacosx-version-min=10.7 object... ok
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag...  "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -dylib -arch x86_64 -macosx_version_min 10.7.0 -o libconftest.dylib -single_module /var/folders/yd/wmdlg1gd7cgg4jckbdmdd8340000gn/T/conftest-817e2b.o -L/opt/intel/composer_xe_2015.0.077/compiler/lib -L/opt/intel/composer_xe_2015.0.077/mkl/lib -L/opt/intel/composer_xe_2015.0.077/compiler/lib -L/opt/intel/composer_xe_2015.0.077/mkl/lib -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib/darwin/libclang_rt.osx.a
no
checking for -exported_symbols_list linker flag... yes
  0 12.9M    0 48979    0     0  77198      0  0:02:56 --:--:--  0:02:56  392k "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.7.0 -o conftest -lcrt1.10.6.o /var/folders/yd/wmdlg1gd7cgg4jckbdmdd8340000gn/T/conftest-c0d2e8.o -force_load ./libconftest.a -L/opt/intel/composer_xe_2015.0.077/compiler/lib -L/opt/intel/composer_xe_2015.0.077/mkl/lib -L/opt/intel/composer_xe_2015.0.077/compiler/lib -L/opt/intel/composer_xe_2015.0.077/mkl/lib -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib/darwin/libclang_rt.osx.a
no
checking how to run the C preprocessor... clang -stdlib=libc++ -mmacosx-version-min=10.7 -E
amos/zuni1.f(56): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      RAST = FN/ZABS(COMPLEX(STR,STI))
---------------------^
  7  284k    7 23004    0     0  14046      0  0:00:20  0:00:01  0:00:19 28540checking for ANSI C header files... yes
checking for sys/types.h... amos/zunk2.f(108): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
        RAST = FN/ZABS(COMPLEX(STR,STI))
-----------------------^
yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... amos/zacai.f(29): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
yes
checking for objdir... .libs
checking if clang -stdlib=libc++ -mmacosx-version-min=10.7 supports -fno-rtti -fno-exceptions... yes
checking for clang -stdlib=libc++ -mmacosx-version-min=10.7 option to produce PIC... -fno-common -DPIC
checking if clang -stdlib=libc++ -mmacosx-version-min=10.7 PIC flag -fno-common -DPIC works... amos/zbesh.f(211): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
yes
checking if clang -stdlib=libc++ -mmacosx-version-min=10.7 static flag -static works... no
checking if clang -stdlib=libc++ -mmacosx-version-min=10.7 supports -c -o file.o 18 12.9M   18 2471k    0     0  1487k      0  0:00:08  0:00:01  0:00:07 2151kyes
checking if clang -stdlib=libc++ -mmacosx-version-min=10.7 supports -c -o file.o... (cached) yes
checking whether the clang -stdlib=libc++ -mmacosx-version-min=10.7 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin13.4.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for dlopen in -ldl... yes
checking for kstat_lookup in -lkstat... no
 35  284k   35  101k    0     0  38907      0  0:00:07  0:00:02  0:00:05 56551no
checking for gethostbyname in -lnsl... no
checking for perfstat_cpu in -lperfstat... no
checking for pthread_mutex_init in -lpthread... amos/zbuni.f(49): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      STR = ZABS(COMPLEX(CYR(1),CYI(1)))
-----------------^
yes
checking for clock_gettime in -lrt... no
checking for sendfile in -lsendfile... no
checking for socket in -lsocket... amos/zkscl.f(28): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
        AS = ZABS(COMPLEX(S1R,S1I))
------------------^
no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for dtrace... dtrace
checking if dtrace works... yes
checking if dtrace should instrument object files... no
checking for pkg-config... yes
amos/zrati.f(23): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
checking that generated files are newer than configure... done
configure: creating ./config.status
amos/zsqrt.f(13): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      ZM = ZABS(COMPLEX(AR,AI))
----------------^
amos/zuni2.f(88): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      RAST = FN/ZABS(COMPLEX(STR,STI))
---------------------^
 25 12.9M   25 3437k    0     0  1300k      0  0:00:10  0:00:02  0:00:08 1613kamos/zuoik.f(81): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AARG = ZABS(COMPLEX(ARGR,ARGI))
------------------^
amos/zacon.f(105): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZN = ZABS(COMPLEX(ZNR,ZNI))
-----------------^
100  284k  100  284k    0     0  72495      0  0:00:04  0:00:04 --:--:-- 91445
amos/zbesi.f(195): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0config.status: creating libuv.pc
config.status: creating Makefile
amos/zbinu.f(17): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
  0   425    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
config.status: executing depfiles commands
 32 12.9M   32 4281k    0     0  1166k      0  0:00:11  0:00:03  0:00:08 1355kamos/zlog.f(34): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
   50 ZM = ZABS(COMPLEX(AR,AI))
----------------^
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
amos/zs1s2.f(22): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AS1 = ZABS(COMPLEX(S1R,S1I))
-----------------^
config.status: executing libtool commands
amos/zwrsk.f(42): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      ACW = ZABS(COMPLEX(CWR(2),CWI(2)))
-----------------^
 38 12.9M   38 5161k    0     0  1110k      0  0:00:11  0:00:04  0:00:07 1248kamos/zairy.f(147): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0amos/zbesj.f(189): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0amos/zbiry.f(141): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
amos/zdiv.f(11): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      BM = 1.0D0/ZABS(COMPLEX(BR,BI))
----------------------^
amos/zmlri.f(21): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
amos/zseri.f(27): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AZ = ZABS(COMPLEX(ZR,ZI))
----------------^
  8 1486k    8  125k    0     0  53007      0  0:00:28  0:00:02  0:00:26  174kamos/zunhj.f(460): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
      AW2 = ZABS(COMPLEX(W2R,W2I))
-----------------^
  4 2282k    4  111k    0     0  87092      0  0:00:26  0:00:01  0:00:25  114kamos/zunk1.f(68): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL.   [ZABS]
        RAST = FN/ZABS(COMPLEX(STR,STI))
-----------------------^
ifort: command line warning #10006: ignoring unknown option '-shared'
100 1486k  100 1486k    0     0   440k      0  0:00:03  0:00:03 --:--:--  890k
 49 12.9M   49 6635k    0     0   999k      0  0:00:13  0:00:06  0:00:07  836kUndefined symbols for architecture x86_64:
  "_MAIN__", referenced from:
      _main in for_main.o
  "_complex_", referenced from:
      _zasyi_ in zasyi.f.o
      _zbesk_ in zbesk.f.o
      _zbknu_ in zbknu.f.o
      _zuni1_ in zuni1.f.o
      _zunk2_ in zunk2.f.o
      _zacai_ in zacai.f.o
      _zbesh_ in zbesh.f.o
      ...
ld: symbol(s) not found for architecture x86_64
make[3]: *** [libopenspecfun.dylib] Error 1
make[2]: *** [openspecfun/libopenspecfun.dylib] Error 2
make[2]: *** Waiting for unfinished jobs....
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2282k  100 2282k    0     0   471k      0  0:00:04  0:00:04 --:--:--  506k
100 1196k  100 1196k    0     0   365k      0  0:00:03  0:00:03 --:--:--  447k
100 12.9M  100 12.9M    0     0  1040k      0  0:00:12  0:00:12 --:--:-- 1431k
make[1]: *** [julia-release] Error 2
make: *** [release] Error 2

@Divisible8737
Copy link

Also, after I successfully built with USE_LIBCPP=0 and USEIFC = 0, I noticed that the FFT speed was not comparable to Matlab: Matlab appears to be using all the cores on my machine while Julia does not. It is encouraging, though, that while all 8 threads were lit up in the Matlab test and only 1 was for the identical Julia script, Julia was only ~1.35x slower.

@ViralBShah
Copy link
Member

I assume that the FFT issue is not connected to Intel compilers - at least the threading part. Could you file a separate issue for that? Using all threads may be even better!

@Divisible8737
Copy link

OK, I have posted this issue as "FFT speed vs Matlab #8455" #8455

@ViralBShah
Copy link
Member

I will try to get ICC 15.

@nolta
Copy link
Member

nolta commented Sep 29, 2014

I got a little carried away fixing the openspecfun error, and ending up converting the amos fortran code to julia.

@jiahao
Copy link
Member

jiahao commented Sep 29, 2014

👏

@tkelman
Copy link
Contributor

tkelman commented Sep 29, 2014

Nice! The fewer Fortran dependencies we have the better. PR soon?

@StefanKarpinski
Copy link
Member

Woah, cool. How's the performance?

@ViralBShah
Copy link
Member

@nolta That is super cool. When can we transition? :-)

openspecfun still has Faddeeva and rem_pio2 bits, which could easily be translated too, I am guessing.

@nolta
Copy link
Member

nolta commented Sep 29, 2014

Performance isn't great, unfortunately -- fortran is about 2.8x faster. Not sure if that's my fault or julia's.

@ViralBShah
Copy link
Member

This is a very useful performance test to have.

@nolta
Copy link
Member

nolta commented Sep 30, 2014

Ok, we're now down to 1.2x fortran.

@ihnorton
Copy link
Member

Wow. I think this wins the "best usecase for @goto" award by a country mile.

@StefanKarpinski
Copy link
Member

Not making it a total hassle to translate code like this is a very good reason to have gotos.

@tkelman
Copy link
Contributor

tkelman commented Sep 30, 2014

And actually hey while we're at it, does anything in base actually depend on special functions? Or would this be a good opportunity to delete something from base and have its replacement live in a package instead? Except for the load times...

@ViralBShah
Copy link
Member

LAPACK next, anyone? ;-)

@nolta
Copy link
Member

nolta commented Sep 30, 2014

I'm in favor of moving the specfuns out of Base.

@ViralBShah
Copy link
Member

Perhaps we should have a new issue for that. It should probably be done as part of a larger discussion on a minimal base.

@Divisible8737
Copy link

Just to keep this compile-with-intel issue alive, using
USEICC=1
USEIFC=1
still gives me the following error
*** USE_LIBCPP only supported with clang. Try setting USE_LIBCPP=0. Stop.

@tkelman
Copy link
Contributor

tkelman commented Feb 25, 2015

I believe we've fixed the openspecfun problem from #8294 (comment) - set USE_LIBCPP = 0 like the message said and you'll probably hit #9656 this time.

@Divisible8737
Copy link

Setting USE_LIBCPP = 0 in Make.user does not seem to change the error message. My Make.user file now looks like
USEICC = 1
USEIFC = 1
USE_INTEL_MKL = 1
USE_INTEL_MKL_FFT = 1
USE_INTEL_LIBM = 1
USE_LIBCPP = 0

but I get the same message
julia/Make.inc:314: *** USE_LIBCPP only supported with clang. Try setting USE_LIBCPP=0. Stop.

Should I actually go into the Make.inc file to make changes?

@tkelman
Copy link
Contributor

tkelman commented Feb 25, 2015

We may have the logic wrong somewhere. Or you may need to use override USE_LIBCPP = 0

@ViralBShah
Copy link
Member

How easy would it be to add an icc target to Travis?

@tkelman
Copy link
Contributor

tkelman commented Feb 26, 2015

You'll have to ask Travis that. Or maybe someone at Intel. I'm assuming there isn't exactly a downloadable tarball option for the whole Intel toolchain, last time I remember setting it up on Linux it was a non-trivial installation process.

What would be much more tractable would be installing icc, ifort and mkl on one (or two) of Elliot's buildbot VM's. With JuliaCI/julia-buildbot#1 we could even try to make it send github statuses for commits to master at least.

@ViralBShah
Copy link
Member

I think we can make our own tarball, so long as we use our license.

@tkelman
Copy link
Contributor

tkelman commented Feb 26, 2015

Generally I thought the compilers themselves are not going to be redistributable, only the libraries.

@ViralBShah
Copy link
Member

I thought that as a licensed user, we can install the compiler on any machine of our choice. The licenses are per developer, and so long as we have a valid license, we can have a tarball that puts the compiler in /opt along with the license, and then uses it in the travis run.

@tkelman
Copy link
Contributor

tkelman commented Feb 26, 2015

If that's how the license works, then I guess it's worth trying. But presumably we'd need to upload the tarball somewhere private and access-controlled rather than publicly visible to the entire internet, and use a secure key on Travis to download the file.

@ViralBShah
Copy link
Member

This is my interpretation, of course. Would love to hear what others have to say.

@nolta
Copy link
Member

nolta commented May 8, 2015

With intel 15.0.2 all the tests pass (on centos6).

@ViralBShah
Copy link
Member

Maybe we just make 15 the minimum release we support.

nolta added a commit that referenced this issue May 12, 2015
Recommend using v15 or greater. Older versions either fail to build
or fail the test suite.

closes #8294
closes #9656
closes #10181
mbauman pushed a commit to mbauman/julia that referenced this issue Jun 6, 2015
Recommend using v15 or greater. Older versions either fail to build
or fail the test suite.

closes JuliaLang#8294
closes JuliaLang#9656
closes JuliaLang#10181
tkelman pushed a commit to tkelman/julia that referenced this issue Jun 6, 2015
Recommend using v15 or greater. Older versions either fail to build
or fail the test suite.

closes JuliaLang#8294
closes JuliaLang#9656
closes JuliaLang#10181
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants