dev-libs/icu-69.1 is linked to libstdc++.so.6.
However, it has no RDEPEND to sys-devel/gcc nor to sys-libs/libcxx which provide for it.
Ideally it should depend on any one of them, so that users can choose which provider for libstdc++.so.6 they want to use.
It needs *a* C++ compiler, not necessarily gcc's g++. You can even mix and match Clang and libstdc++. ICU does not specifically need libstdc++ (as far as I know), it needs an implementation of the C++ standard library.
If you want to use libcxx (LLVM's project), you need to set that in your *FLAGS (CXXFLAGS and LDFLAGS(?)). It's not for USE flags or dependencies to control. clang even has a default-libcxx flag if you want to use that.
Adding a dependency in the ebuild wouldn't change any of this, it'd just force e.g. Clang to be installed?
TL;DR: You control this via *FLAGS, there's no need for an explicit dependency, and we try to avoid using USE flags for just flag changes.
Without setting a proper dependency in the ebuild however, installing a binary package of icu into a chroot using emerge --root= option, or downloading binary packages using --getbinpkgonly from a set up binary package server, will fail to install icu runtime dependency.
Hence, when executing a program depending on icu, I get a “cannot open shared object file” error. For example, with `newaliases` from mail-mta/postfix with USE-flag eai enabled:
newaliases: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Packages don't typically depend on a libc either because it's supposed to always be there.
And, just like glibc, gcc is in @system set and it's not normal if you're missing it.
(In reply to Ionen Wolkens from comment #3)
> Packages don't typically depend on a libc either because it's supposed to
> always be there.
> And, just like glibc, gcc is in @system set and it's not normal if you're
> missing it.
Agreed. But there is a valid use case for a container with just libstdc++. Let's repurpose this bug for a request to separately package libgcc and libstdc++ (or via USE flags on sys-devel/gcc).