On Wed, 15 Mar 2023 at 22:17, Jonathan Wakely <jwak...@redhat.com> wrote:

>
>
> On Wed, 15 Mar 2023 at 22:14, Ben Beasley <c...@musicinmybrain.net> wrote:
>
>> Thank you for prompting me to look at this more closely. A quick
>> investigation reveals:
>>
>> “Abseil libraries require C++14 as the current minimum standard. When
>> compiled with C++17 (either because it is the compiler's default or
>> explicitly requested), then Abseil requires C++17.”
>>
>>
>> https://github.com/abseil/abseil-cpp/blob/20230125.1/CMake/AbseilHelpers.cmake#L291
>>
>> The abseil-cpp package in Fedora has been compiled as C++17 for some
>> time—at first explicitly, but this would also now be the default if the
>> spec file did not configure a particular standard—so it seems dependent
>> packages already technically needed C++17, and it is mere happenstance that
>> this particular release is revealing incompatibilities.
>>
>
> I'm not sure if that's true, see my other email which crossed with yours.
> In the previous release absl::string_view would work for both C++14 and
> C++17, because USE_STD_STRING_VIEW was defined to 2, so adapted to the
> headers that included it.
>
> In the new release it is hardcoded to only work for C++17. That seems like
> a new change in the new version, not something that was already present.
>

Digging deeper, maybe it was true, and ilbc was just getting away with it
by chance.

Several member functions of absl::string_view are defined out-of-line in
abseil-cpp-20220623.1/absl/strings/string_view.cc but if the library is
built as C++17 then those won't be defined (because absl::string_view is
just an alias for std::string_view, so all the members come from
libstdc++). So all clients of abseil-cpp shared libs do need to be compiled
as C++17 or later. It looks like libilbc.so.3.0.4 doesn't actually use any
libasbl_*.so libs, so only uses libabsl headers, and that's why it "worked"
when the header was adaptive w.r.t. the string-view definition. It doesn't
care that there are no definitions for those string_view member functions,
because it happens to not use those specific member functions.
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to