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

Julia <=1.8.5 fails to compile with GCC 13 #49581

Closed
xgqt opened this issue May 1, 2023 · 3 comments
Closed

Julia <=1.8.5 fails to compile with GCC 13 #49581

xgqt opened this issue May 1, 2023 · 3 comments
Labels
building Build system, or building Julia or its dependencies external dependencies Involves LLVM, OpenBLAS, or other linked libraries

Comments

@xgqt
Copy link
Contributor

xgqt commented May 1, 2023

The blame is on the very outdated LLVM 13 version that Julia 1.8.5 bundles.

Please see the Gentoo bug report for more info: https://bugs.gentoo.org/895710

In file included from /var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/lib/Support/Signals.cpp:14:
/var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/include/llvm/Support/Signals.h:119:8: error: variable or field 'CleanupOnSignal' declared void
  119 |   void CleanupOnSignal(uintptr_t Context);
      |        ^~~~~~~~~~~~~~~
/var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/include/llvm/Support/Signals.h:119:24: error: 'uintptr_t' was not declared in this scope
  119 |   void CleanupOnSignal(uintptr_t Context);
      |                        ^~~~~~~~~
/var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/include/llvm/Support/Signals.h:18:1: note: 'uintptr_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
   17 | #include <string>
  +++ |+#include <cstdint>
   18 | 

and

In file included from /var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/lib/Support/Signals.cpp:251:
/var/tmp/portage/dev-lang/julia-1.8.3-r4/work/julia-1.8.3/deps/srccache/llvm-julia-13.0.1-3/llvm/lib/Support/Unix/Signals.inc:348:44: error: 'void llvm::sys::CleanupOnSignal(uintptr_t)' should have been declared inside 'llvm::sys'
  348 | void sys::CleanupOnSignal(uintptr_t Context) {
      |                                            ^
@inkydragon inkydragon added building Build system, or building Julia or its dependencies external dependencies Involves LLVM, OpenBLAS, or other linked libraries labels May 1, 2023
@inkydragon
Copy link
Member

Julia's CI is still using GCC9 on most platforms, except for using GCC 12 on Windows.

https://github.com/JuliaCI/rootfs-images/blob/939120f806e3e5f39d1a43e29ebceea052b6d0b7/linux/package_linux.jl#L62

    curl -fL $(repo_release_url)/GCC.v9.1.0.$(host_triplet)-$(cross_tags).tar.gz | tar zx

@vchuravy
Copy link
Member

vchuravy commented May 1, 2023

very outdated LLVM 13

Released in Feb 2022, Julia 1.8 came out in August 2022.

Julia versions and LLVM versions are tightly matched so while it might seem like LLVM is outdated it is like saying that Clang 16 should be able to use LLVM 13.

@xgqt
Copy link
Contributor Author

xgqt commented May 1, 2023

This bug is already fixed on master by a fellow (retired) Gentoo dev :) See: JuliaLang/llvm-project@ff1681d
I do want to ask however: Why only GCC 9?

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 external dependencies Involves LLVM, OpenBLAS, or other linked libraries
Projects
None yet
Development

No branches or pull requests

3 participants