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

Update require build tools in README #18530

Merged
merged 4 commits into from
Sep 19, 2016
Merged

Update require build tools in README #18530

merged 4 commits into from
Sep 19, 2016

Conversation

omus
Copy link
Member

@omus omus commented Sep 15, 2016

I've been building Julia 0.5 from source in a Docker container and noticed that the required build tools needed a slight update:

Notes:
- LLVM fails to build unless you have Python 2.7+ installed:
- cmake fails to build libgit2 unless the version is at least 3.1.2.
  For details see: https://cmake.org/Bug/view.php?id=15386
@kshyatt kshyatt added docs This change adds or pertains to documentation building Build system, or building Julia or its dependencies labels Sep 15, 2016
@tkelman
Copy link
Contributor

tkelman commented Sep 15, 2016

the issue with cmake is linux specific, so the minimum version isn't the same everywhere

@omus
Copy link
Member Author

omus commented Sep 15, 2016

@tkelman fair criticism. Would changing it to cmake (>= 3.1.2 on Linux) be acceptable?

@vtjnash
Copy link
Member

vtjnash commented Sep 16, 2016

That sounds good to me. As a future note, when we switch to llvm-3.9+, we will need to update this again to say CMake >= 3.4.3

@tkelman
Copy link
Contributor

tkelman commented Sep 16, 2016

It's not true for all Linux distros though, only those with certain versions of openssl. Maybe just put this as a build troubleshooting note along with what the error looks like.

@omus
Copy link
Member Author

omus commented Sep 19, 2016

@tkelman I've added a row to build troubleshooting. I've left in the >= 3.1.2 for now as this version of CMake is rather old and it will only help users avoid this issue.

@@ -217,6 +217,7 @@ Install or contact your systems administrator to install a more recent version o
------------------------|---------------------
OpenBLAS build failure | Set one of the following build options in `Make.user` and build again: <ul><li> `OPENBLAS_TARGET_ARCH=BARCELONA` (AMD CPUs) or `OPENBLAS_TARGET_ARCH=NEHALEM` (Intel CPUs)<ul>Set `OPENBLAS_DYNAMIC_ARCH = 0` to disable compiling multiple architectures in a single binary.</ul></li><li> `OPENBLAS_NO_AVX2 = 1` disables AVX2 instructions, allowing OpenBLAS to compile with `OPENBLAS_DYNAMIC_ARCH = 1` using old versions of binutils </li><li> `USE_SYSTEM_BLAS=1` uses the system provided `libblas` <ul><li>Set `LIBBLAS=-lopenblas` and `LIBBLASNAME=libopenblas` to force the use of the system provided OpenBLAS when multiple BLAS versions are installed. </li></ul></li></ul><p> If you get an error that looks like ```../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1709: Error: no such instruction: `vpermpd $ 0xb1,%ymm0,%ymm0'```, then you need to set `OPENBLAS_DYNAMIC_ARCH = 0` or `OPENBLAS_NO_AVX2 = 1`, or you need a newer version of `binutils` (2.18 or newer). ([Issue #7653](https://github.com/JuliaLang/julia/issues/7653))
Illegal Instruction error | Check if your CPU supports AVX while your OS does not (e.g. through virtualization, as described in [this issue](https://github.com/JuliaLang/julia/issues/3263)).
<a name="LibGit2-Build-Failure"/> LibGit2 build failure | If LibGit2 configuration step reports `CMake Error at /usr/share/cmake-3.0/Modules/FindOpenSSL.cmake:294 (list):` then the version [OpenSSL and CMake are probably incompatible](https://cmake.org/Bug/view.php?id=15386). The recommended solution is to upgrade the version of CMake to 3.1.2 or above.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

versions of

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch

@tkelman
Copy link
Contributor

tkelman commented Sep 19, 2016

upgrading isn't strictly necessary yet if you don't hit this issue, and can be a bit messy unless you just use the cmake binaries. there will be a stricter minimum version when we switch to llvm 3.9 or higher.

many of the stable/LTS linux distros still have cmake 2.8.x which still works for now

@omus
Copy link
Member Author

omus commented Sep 19, 2016

Fair enough. I'll remove the version requirement out of the build tool section

@tkelman tkelman merged commit a0cec60 into JuliaLang:master Sep 19, 2016
@omus omus deleted the build-req branch September 19, 2016 21:14
tkelman pushed a commit that referenced this pull request Feb 22, 2017
* Update require build tools

Notes:
- LLVM fails to build unless you have Python 2.7+ installed:
- cmake fails to build libgit2 unless the version is at least 3.1.2.
  For details see: https://cmake.org/Bug/view.php?id=15386

* Fix Python link

* Add build troubleshooting row

* Remove CMake version requirement

(cherry picked from commit a0cec60)
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 docs This change adds or pertains to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants