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

[libjulia] update to Julia 1.11.1; update 1.12.0-DEV version #9660

Merged
merged 4 commits into from
Oct 23, 2024

Conversation

fingolfin
Copy link
Member

No description provided.

fingolfin and others added 2 commits October 21, 2024 18:45
to avoid: non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs
@benlorenz
Copy link
Contributor

I set the llvm version to 17 (which was used in the previous build as well, down from the latest default version 18, thanks for the hint @gbaraldi) to avoid hitting JuliaLang/julia#54634 and JuliaLang/julia#56280 for almost all the apple builds.

to fix:

/workspace/srcdir/julia/src/jitlayers.cpp:665:54: error: no viable constructor or deduction guide for deduction of template arguments of 'tuple'
  665 |         incompletemodules.insert(std::pair(codeinst, std::tuple(std::move(params), waiting)));

maybe caused by our mix of a very recent clang with a very old sdk / libc++
@benlorenz
Copy link
Contributor

I added a patch to switch one std::tuple to std::make_tuple for julia 1.12, this should fix the last two failing builds, upstream JuliaLang/julia#56287.

Full error:
[21:31:55] /workspace/srcdir/julia/src/jitlayers.cpp:665:54: error: no viable constructor or deduction guide for deduction of template arguments of 'tuple'
[21:31:55]   665 |         incompletemodules.insert(std::pair(codeinst, std::tuple(std::move(params), waiting)));
[21:31:55]       |                                                      ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:626:5: note: candidate template ignored: requirement '__lazy_and<std::is_same<std::allocator_arg_t, jl_codegen_params_t>, std::__lazy_all<>>::value' was not satisfied [with _Tp = <>, _AllocArgT = typename remove_reference<jl_codegen_params_t &>::type, _Alloc = int, _Dummy = true]
[21:31:55]   626 |     tuple(_AllocArgT, _Alloc const& __a)
[21:31:55]       |     ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:678:7: note: candidate template ignored: substitution failure [with _Tp = <>, _Alloc = int, _Dummy = true]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   671 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   672 |                             _Dummy
[21:31:55]   673 |                          >::template __enable_implicit<_Tp const&...>(),
[21:31:55]   674 |                          bool
[21:31:55]   675 |                       >::type = false
[21:31:55]   676 |         >
[21:31:55]   677 |       _LIBCPP_INLINE_VISIBILITY
[21:31:55]   678 |       tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t)
[21:31:55]       |       ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:698:7: note: candidate template ignored: substitution failure [with _Tp = <>, _Alloc = int, _Dummy = true]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   690 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   691 |                             _Dummy
[21:31:55]   692 |                          >::template __enable_explicit<_Tp const&...>(),
[21:31:55]   693 |                          bool
[21:31:55]   694 |                       >::type = false
[21:31:55]   695 |         >
[21:31:55]   696 |       _LIBCPP_INLINE_VISIBILITY
[21:31:55]   697 |       explicit
[21:31:55]   698 |       tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t)
[21:31:55]       |       ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:784:9: note: candidate template ignored: substitution failure [with _Tp = <>, _Alloc = int, _Up = <>]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   776 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   777 |                              sizeof...(_Up) == sizeof...(_Tp) &&
[21:31:55]   778 |                              !_PackExpandsToThisTuple<_Up...>::value
[21:31:55]   779 |                          >::template __enable_implicit<_Up...>(),
[21:31:55]   780 |                          bool
[21:31:55]   781 |                       >::type = false
[21:31:55]   782 |              >
[21:31:55]   783 |         _LIBCPP_INLINE_VISIBILITY
[21:31:55]   784 |         tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u)
[21:31:55]       |         ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:804:9: note: candidate template ignored: substitution failure [with _Tp = <>, _Alloc = int, _Up = <>]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   795 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   796 |                              sizeof...(_Up) == sizeof...(_Tp) &&
[21:31:55]   797 |                              !_PackExpandsToThisTuple<_Up...>::value
[21:31:55]   798 |                          >::template __enable_explicit<_Up...>(),
[21:31:55]   799 |                          bool
[21:31:55]   800 |                       >::type = false
[21:31:55]   801 |              >
[21:31:55]   802 |         _LIBCPP_INLINE_VISIBILITY
[21:31:55]   803 |         explicit
[21:31:55]   804 |         tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u)
[21:31:55]       |         ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:616:5: note: candidate function template not viable: requires 1 argument, but 2 were provided
[21:31:55]   616 |     tuple(tuple const&) = default;
[21:31:55]       |     ^     ~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:617:5: note: candidate function template not viable: requires 1 argument, but 2 were provided
[21:31:55]   617 |     tuple(tuple&&) = default;
[21:31:55]       |     ^     ~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:642:5: note: candidate template ignored: requirement '_CheckArgsConstructor<true, void>::__enable_implicit()' was not satisfied [with _Tp = <typename remove_reference<jl_codegen_params_t &>::type, int>, _Dummy = true]
[21:31:55]   642 |     tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>::value))
[21:31:55]       |     ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:660:14: note: candidate template ignored: requirement '_CheckArgsConstructor<true, void>::__enable_explicit()' was not satisfied [with _Tp = <typename remove_reference<jl_codegen_params_t &>::type, int>, _Dummy = true]
[21:31:55]   660 |     explicit tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>::value))
[21:31:55]       |              ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:724:9: note: candidate template ignored: substitution failure [with _Tp = <>, _Up = <typename remove_reference<jl_codegen_params_t &>::type, int &>, _PackIsTuple = _PackExpandsToThisTuple<typename remove_reference<jl_codegen_params_t &>::type, int &>::value]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   711 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   712 |                              sizeof...(_Up) == sizeof...(_Tp)
[21:31:55]   713 |                              && !_PackIsTuple
[21:31:55]   714 |                          >::template __enable_implicit<_Up...>() ||
[21:31:55]   715 |                         _CheckArgsConstructor<
[21:31:55]   716 |                             _EnableImplicitReducedArityExtension
[21:31:55]   717 |                             && sizeof...(_Up) < sizeof...(_Tp)
[21:31:55]   718 |                             && !_PackIsTuple
[21:31:55]   719 |                          >::template __enable_implicit<_Up...>(),
[21:31:55]   720 |                          bool
[21:31:55]   721 |                       >::type = false
[21:31:55]   722 |              >
[21:31:55]   723 |         _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
[21:31:55]   724 |         tuple(_Up&&... __u)
[21:31:55]       |         ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:757:9: note: candidate template ignored: substitution failure [with _Tp = <>, _Up = <typename remove_reference<jl_codegen_params_t &>::type, int &>]: cannot reference member of primary template because deduced class template specialization 'tuple<>' is an explicit specialization
[21:31:55]   743 |                          _CheckArgsConstructor<
[21:31:55]       |                          ~~~~~~~~~~~~~~~~~~~~~
[21:31:55]   744 |                              sizeof...(_Up) <= sizeof...(_Tp)
[21:31:55]   745 |                              && !_PackExpandsToThisTuple<_Up...>::value
[21:31:55]   746 |                          >::template __enable_explicit<_Up...>() ||
[21:31:55]   747 |                          _CheckArgsConstructor<
[21:31:55]   748 |                             !_EnableImplicitReducedArityExtension
[21:31:55]   749 |                             && sizeof...(_Up) < sizeof...(_Tp)
[21:31:55]   750 |                             && !_PackExpandsToThisTuple<_Up...>::value
[21:31:55]   751 |                          >::template __enable_implicit<_Up...>(),
[21:31:55]   752 |                          bool
[21:31:55]   753 |                       >::type = false
[21:31:55]   754 |              >
[21:31:55]   755 |         _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
[21:31:55]   756 |         explicit
[21:31:55]   757 |         tuple(_Up&&... __u)
[21:31:55]       |         ^
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:823:9: note: candidate function template not viable: requires single argument '__t', but 2 arguments were provided
[21:31:55]   823 |         tuple(_Tuple&& __t) _NOEXCEPT_((is_nothrow_constructible<_BaseT, _Tuple>::value))
[21:31:55]       |         ^     ~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:838:9: note: candidate function template not viable: requires single argument '__t', but 2 arguments were provided
[21:31:55]   838 |         tuple(_Tuple&& __t) _NOEXCEPT_((is_nothrow_constructible<_BaseT, _Tuple>::value))
[21:31:55]       |         ^     ~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:470:28: note: candidate function template not viable: requires 1 argument, but 2 were provided
[21:31:55]   470 | class _LIBCPP_TEMPLATE_VIS tuple
[21:31:55]       |                            ^~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:851:9: note: candidate function template not viable: requires 3 arguments, but 2 were provided
[21:31:55]   851 |         tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t)
[21:31:55]       |         ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:865:9: note: candidate function template not viable: requires 3 arguments, but 2 were provided
[21:31:55]   865 |         tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t)
[21:31:55]       |         ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:933:1: note: candidate function template not viable: requires 3 arguments, but 2 were provided
[21:31:55]   933 | tuple(allocator_arg_t, const _Alloc&, tuple<_Args...> const&) -> tuple<_Args...>;
[21:31:55]       | ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:935:1: note: candidate function template not viable: requires 3 arguments, but 2 were provided
[21:31:55]   935 | tuple(allocator_arg_t, const _Alloc&, tuple<_Args...>&&) -> tuple<_Args...>;
[21:31:55]       | ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[21:31:55] /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/include/c++/v1/tuple:613:23: note: candidate function template not viable: requires 0 arguments, but 2 were provided
[21:31:55]   613 |     _LIBCPP_CONSTEXPR tuple()
[21:31:55]       |                       ^
[21:31:55] 1 error generated.

LilithHafner pushed a commit to JuliaLang/julia that referenced this pull request Oct 22, 2024
this should be safer for the type deduction and fixes a build error for
macos on Yggdrasil
(JuliaPackaging/Yggdrasil#9660):

```
src/jitlayers.cpp:665:54: error: no viable constructor or deduction guide for deduction of template arguments of 'tuple'
  665 |         incompletemodules.insert(std::pair(codeinst, std::tuple(std::move(params), waiting)));
```
The Yggdrasil environment is a bit special with a rather new clang
(version 17) but an old macos sdk and I don't know exactly in which
circumstances this triggers. But I think `std::make_tuple` should be
more reliable when the tuple types are not specified.

cc: @fingolfin
@fingolfin fingolfin merged commit 97dc75c into master Oct 23, 2024
18 checks passed
@fingolfin fingolfin deleted the mh/libjulia branch October 23, 2024 10:31
avik-pal pushed a commit to avik-pal/Yggdrasil that referenced this pull request Oct 25, 2024
…ckaging#9660)

libjulia: prefer llvm 17 to avoid: non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs

Co-authored-by: Benjamin Lorenz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants