RFA; configuring GCC --disable-libgomp causes libstdc++ abi check to fail.

Paolo Carlini paolo.carlini@oracle.com
Thu Sep 20 12:12:00 GMT 2012


Hi,

On 09/20/2012 02:03 PM, Iain Sandoe wrote:
> Hi Paolo,
>
> On 20 Sep 2012, at 11:00, Paolo Carlini wrote:
>>> I was running some checks on x86_64-linux-gnu (most recently r191461), and configured GCC with --disable-libgomp.
>>>
>>> This causes FAIL: libstdc++-abi/abi_check for both default and m32.
>>>
>>> The failure is in 11 missing symbols (listed at the end of this post), from two objects which are no longer built:
>>> libstdc++-v3/src/compatibility-parallel_list.o, libstdc++-v3/src/c++98/parallel_settings.o.
>> *If* (please double check) the symbols belong only to these two *.cc files,
> libstdc++-v3/src/c++98/compatibility-list.cc
>
> -- simply includes
>
> libstdc++-v3/src/c++98/compatibility-list.cc
>
> but the _M_ variants are in:
> libstdc++-v3/src/c++98/compatibility-list-2.cc
>
> the two parallel settings ones are here:
> libstdc++-v3/src/c++98/parallel-settings.cc
>
> ==
>
> The libstdc++-v3/src/c++98/parallel-settings.cc symbols are defined in 'namespace __gnu_parallel'
> but the remainder are in "namespace std".
Benjamin is the best person to sort out this, he did the work.
>> I think we are Ok because those (extension) library facilities -  so called parallel-mode - cannot work without omp support.
> I understand that some features might depend on the presence of other libraries -
> - what is not clear is whether those features can be part of an ABI without that ABI demanding that the library be present.
>
> .. there seem to be (at least) three possibilities.
>
> * the ABI *requires* libgomp.
>
> * there is/should be some way to identify that these components are optional.
>
> * the testsuite is incorrect in reporting an error if they are missing.
The testsuite can be definitely incorrect, but note that the testsuite 
can report errors in many, many other circumstances, like you change the 
locale model, for example. Really, the ABI which we are checking in the 
testsuite is about a default configuration: if you fiddle with the build 
options, you can see abi_check failures (some "bening" some "not" (if, 
as I believe, you are actually seeing a breakage of parallel-mode we are 
definitely talking about a "benign" one)) in *many* other circumstance 
besides libgomp, believe me ;)

Paolo.



More information about the Libstdc++ mailing list