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

make files: remove ICC/IFC/MSVC cruft #35241

Closed
einzigsue opened this issue Mar 23, 2020 · 24 comments
Closed

make files: remove ICC/IFC/MSVC cruft #35241

einzigsue opened this issue Mar 23, 2020 · 24 comments
Labels
building Build system, or building Julia or its dependencies

Comments

@einzigsue
Copy link

einzigsue commented Mar 23, 2020

Hi There,
I am compiling julia 1.4.0 from source and found the error message

$JULIAHOME/deps/tools/jldownload $JULIAHOME/deps/srccache/LibUV.v2.0.0+1.29.1-julia-0..tar.gz https://github.com/JuliaPackaging/Yggdrasil/releases/download/LibUV-v2+1.29.1-julia+0/LibUV.v2.0.0+1.29.1-julia..tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   445  100   445    0     0    489      0 --:--:-- --:--:-- --:--:--   488
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found

where $JULIAHOME is the folder I did git checkout v1.4.0.

The url passed to jldownload is wrong, with an extra dot before .tar.gz.
Can someone quickly fix this?
Many thanks in advance
Yue

@ViralBShah ViralBShah added the building Build system, or building Julia or its dependencies label Mar 24, 2020
@steven-varga
Copy link

As it appears something is wrong with the download link/site. Following methods lead to the same error:

Is there an alternative way to compile Julia? ie: manually downloading dependencies...

@ViralBShah
Copy link
Member

Is there an alternative way to compile Julia? ie: manually downloading dependencies...

make USE_BINARYBUILDER=0

@ViralBShah
Copy link
Member

ViralBShah commented Mar 24, 2020

@einzigsue I suspect that some architecture detection is failing and that is leading to a malformed URL.

What system are you building on? Can you use the official binaries and share versioninfo()?

@einzigsue
Copy link
Author

I can build 1.3.1 successfully on the same machine and this is what versioninfo() says in my 1.3.1 build.
"""
julia> versioninfo()
Julia Version 1.3.1
Commit 2d57411* (2019-12-30 21:36 UTC)
Platform Info:
OS: Linux (x86_64-redhat-linux)
CPU: Intel(R) Xeon(R) Platinum 8268 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libimf
LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
"""

@einzigsue
Copy link
Author

v1.4.1 shares the error.

@ViralBShah
Copy link
Member

ViralBShah commented Apr 30, 2020

Something in deps/tools/bb-install.mk is not returning expected values - perhaps because the outputs are not matching what the tools expect. Could you try run those checks on your system and see what they give?

@ViralBShah
Copy link
Member

Perhaps will be addressed by #35653

@ViralBShah
Copy link
Member

Can you try the latest master?

@shanewstone
Copy link

This is still an issue for me while trying to build Julia 1.4.2 on Arch Linux.

@shanewstone
Copy link

shanewstone commented Aug 14, 2020

I should probably open a new issue, but I wanted to update my last, rather lacking, comment for posterity:

I have learned that I am experiencing the same error as above and in #35885 because I am trying to compile julia using icc and ifort (USEICC=1 and USEIFC=1) with USE_SYSTEM_DSFMT=0 and USE_SYSTEM_LIBUV=0.

If I understand correctly, then when bb-install.mk is called by libuv.mk or dsfmt.mk gfortran is also called, which I do not have installed. This leads to malformed URLs for libuv and dsfmt, because normalize_triplet.py cannot parse the information it is being fed.

If I install gfortran without changing anything else, then the error does not occur and I can compile julia just fine.

If I do not install gfortran and compile with USE_BINARYBUILDER=0, then I do not run into any issues and I can compile julia just fine.

@ViralBShah
Copy link
Member

Should be fixed.

@EliseJ
Copy link

EliseJ commented Feb 11, 2021

I ran into the same issue as shanewstone, using icc and ifx, Julia version 1.5.3.

@ViralBShah
Copy link
Member

I'm pretty sure we don't support building julia with icc.

@ViralBShah ViralBShah changed the title deps lib url is wrong normalize_triplet.py gets confused with non-gcc compilers Feb 11, 2021
@ViralBShah ViralBShah reopened this Feb 11, 2021
@EliseJ
Copy link

EliseJ commented Feb 11, 2021

in Make.inc
# Set to 1 to use Intel C, C++, and FORTRAN compilers
USEICC ?= 1
USEIFC ?= 1

@ViralBShah
Copy link
Member

Yes, that does exist. @vtjnash @staticfloat Any thoughts if we should just remove those sections? Nobody ever builds or tests with icc/ifc regularly - so it is always a cause for concern what bugs may lurk.

@ViralBShah
Copy link
Member

ViralBShah commented Feb 11, 2021

The build instructions do only mention gcc/clang: https://github.com/JuliaLang/julia/blob/master/doc/build/build.md

@staticfloat
Copy link
Member

I don't know anyone who has ever tried to build Julia with icc, so I don't know what issues there may or may not be. Jameson may know more.

@StefanKarpinski StefanKarpinski changed the title normalize_triplet.py gets confused with non-gcc compilers make files: remove ICC/IFC stuff Apr 29, 2021
@StefanKarpinski StefanKarpinski removed the building Build system, or building Julia or its dependencies label Apr 29, 2021
@StefanKarpinski
Copy link
Member

There's no real benefit to supporting ICC or IFC since, aside from Julia's runtime, which isn't particularly performance sensitive, code is always generated by LLVM, regardless of which C compiler Julia was compiled with. Early on we made some efforts to support other compilers, including ICC and MSVC, but that never worked very well, has completely bitrotted, and there's no compelling reason or will to get those things working. Even if someone did get them working, we'd then have to test all those combinations in CI to keep them working. Just a whole lot of upfront and ongoing work for zero benefit. The only reasonable course of action here is to delete the stuff in make files that even suggests that ICC, IFC or any other compilers besides gcc and clang are supported.

@StefanKarpinski StefanKarpinski changed the title make files: remove ICC/IFC stuff make files: remove ICC/IFC cruft Apr 29, 2021
@StefanKarpinski
Copy link
Member

Accordingly, I've changed this to be a build system maintenance issue: someone just needs to go through the make files and delete references to ICC, IFC and any other unsupported compilers.

@ViralBShah
Copy link
Member

ViralBShah commented Apr 29, 2021

Should MSVC also go?

@StefanKarpinski
Copy link
Member

Yes 👍🏻.

@StefanKarpinski StefanKarpinski changed the title make files: remove ICC/IFC cruft make files: remove ICC/IFC/MSVC cruft Apr 30, 2021
@ViralBShah
Copy link
Member

@musm @vtjnash @staticfloat @vchuravy - Double checking with a few more folks here that we no longer use the MSVC stuff in the Makefiles for our Windows builds. I can put together a PR getting rid of all this stuff.

@vchuravy
Copy link
Member

MSVC is not used or tested anywhere.

@ViralBShah
Copy link
Member

Ok - I was just wondering if our windows build sets it or something (even though it doesn't use MSVC).

@ViralBShah ViralBShah added the building Build system, or building Julia or its dependencies label Mar 14, 2022
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

No branches or pull requests

8 participants