Yggdrasil
Yggdrasil copied to clipboard
Trilinos stopped working on Windows on Julia 1.6.3
It works fine on 1.6.2 with identical versions of dependencies. Did we upgrade CompilerSupportLibraries? It would be worth figuring out what exactly the issue is, since we don't expect patch releases of Julia to break things.
Looks like it changed between v1.6.2 and v1.6.3, yes:
- https://github.com/JuliaLang/julia/blob/v1.6.2/stdlib/CompilerSupportLibraries_jll/Project.toml
- https://github.com/JuliaLang/julia/blob/v1.6.3/stdlib/CompilerSupportLibraries_jll/Project.toml
So this is a segfault in
std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Teuchos::RCPNode::extra_data_entry_t>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Teuchos::RCPNode::extra_data_entry_t> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Teuchos::RCPNode::extra_data_entry_t> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Teuchos::RCPNode::extra_data_entry_t> >*)
Did we accidentally bump the C++ ABI in that change?
I wonder if that's related to #2946. Its purpose was to force latest libgfortran for libgfortran5 in order to fix https://github.com/JuliaPackaging/BinaryBuilder.jl/issues/1055, but probably we're also getting gcc 6 for libgfortran3. I'm not sure that can be problematic though with regard to C++ ABI :thinking: Also, the fact that the problem is only on Windows confuses me.
That should also not work on v1.7 then?
I think the first thing to try is to do a windows rebuild of Trilinos and see if that's also broken. If so, Trilinos might just have a bug. If not, it's worth investigating futher.
Hmm, it works fine on 1.7-rc3
Broken on 1.6.4, works on nightly.
@staticfloat Could we be missing a backport?
On master we have same CompilerSupportLibraries_jll as in v1.6.3. You mean some other fixes to Julia itself?
Yes or a stdlib or something. If I replace libstdc++ in 1.6.4 with the libstdc++ from 1.6.2, everything goes through, so that's definitely the issue. However, putting in the libstdc++ from 1.7.0-rc3 (which works) into 1.6.4 does not fix it, so I don't think the issue is the libstdc++ itself - it must be something else we're building that has a mismatch with the libstdc++ version.
Trilinos depends also on OpenBLAS32 (which isn't even a standard library) and SuiteSparse, but I don't think any of them should be affected by the C++ string ABI?