Yggdrasil icon indicating copy to clipboard operation
Yggdrasil copied to clipboard

Trilinos stopped working on Windows on Julia 1.6.3

Open Keno opened this issue 3 years ago • 11 comments

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.

Keno avatar Nov 29 '21 23:11 Keno

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

giordano avatar Nov 29 '21 23:11 giordano

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?

Keno avatar Nov 29 '21 23:11 Keno

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.

giordano avatar Nov 29 '21 23:11 giordano

That should also not work on v1.7 then?

giordano avatar Nov 29 '21 23:11 giordano

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.

Keno avatar Nov 30 '21 00:11 Keno

Hmm, it works fine on 1.7-rc3

Keno avatar Nov 30 '21 00:11 Keno

Broken on 1.6.4, works on nightly.

Keno avatar Nov 30 '21 00:11 Keno

@staticfloat Could we be missing a backport?

Keno avatar Nov 30 '21 00:11 Keno

On master we have same CompilerSupportLibraries_jll as in v1.6.3. You mean some other fixes to Julia itself?

giordano avatar Nov 30 '21 00:11 giordano

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.

Keno avatar Nov 30 '21 00:11 Keno

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?

giordano avatar Nov 30 '21 00:11 giordano