[Bug 273339] Build of science/trilinos fails on 14 CURRENT: hidden symbol _ZNSt3__1r sB7v160006IcNS_11char_traitsIcEENS_9allocator IcEEEERNS_13basic_istreamIT_T0_EES9_RNS_12bas ic_stringIS6_S7_T1_EE isn't defined

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 31 Aug 2023 09:00:33 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273339

--- Comment #4 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Dimitry Andric from comment #3)
FWIW, the problem here was that
packages/stk/stk_util/stk_util/util/ci_string.hpp declares a bunch of operators
on std::istream and std::ostream, and to be able to do that, it includes
<iosfwd>, which is a "light-weight" version of <iostream>, that only contains
forward declarations.

However, once you get to packages/stk/stk_util/stk_util/util/ci_string.cpp, and
you want to _implement_ those operators on std::istream and std::ostream, you
actually need the full definitions of the iostream stuff. Hence, you heed to
include <iostream> there.

I noticed that meanwhile, upstream seems to have fixed this as a byproduct of a
huge commit named "STK: Snapshot 05-02-23 13:00 from Sierra
5.13.3-416-g059a4983". That adds separate includes of <ostream> and <istream>
instead, which is weird and superfluous, but should also work.

You might consider importing a more recent version of Trilinos, which should
have this fix already. If that is tricky to do, you can apply the temporary
patch I provided here.

-- 
You are receiving this mail because:
You are the assignee for the bug.