Avoid _Rb_tree_rotate_[left,right] symbols export

François Dumont frs.dumont@gmail.com
Sun May 14 20:37:00 GMT 2017


On 12/05/2017 13:03, Jonathan Wakely wrote:
> On 11/05/17 22:06 +0200, François Dumont wrote:
>> Hi
>>
>>    When versioned namespace is active we can avoid export of 
>> _Rb_tree_rotate_[left,right] symbols. I also took the opportunity to 
>> put static functions in the anonymous namespace rather than using 
>> static. Is this usage of static still planned to be deprecated ?
>
> No, I don't think so.

So not interested in replacing it with anonymous namespace ?

>
> A much simpler (but equivalent) change would be:
>
> --- a/libstdc++-v3/src/c++98/tree.cc
> +++ b/libstdc++-v3/src/c++98/tree.cc
> @@ -153,6 +153,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>   /* Static keyword was missing on _Rb_tree_rotate_left.
>      Export the symbol for backward compatibility until
>      next ABI change.  */
> +#if _GLIBCXX_INLINE_VERSION
> +  static
> +#endif

Surely simpler but why keeping this function if it is not used ?

> void
>   _Rb_tree_rotate_left(_Rb_tree_node_base* const __x,
>                       _Rb_tree_node_base*& __root)
> @@ -184,6 +187,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>   /* Static keyword was missing on _Rb_tree_rotate_right
>      Export the symbol for backward compatibility until
>      next ABI change.  */
> +#if _GLIBCXX_INLINE_VERSION
> +  static
> +#endif
>   void
>   _Rb_tree_rotate_right(_Rb_tree_node_base* const __x,
>                        _Rb_tree_node_base*& __root)
>
>
>
>>    * src/c++98/tree.cc [_GLIBCXX_INLINE_VERSION]
>>    (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Remove.
>>    * src/c++98/tree.cc (local_Rb_tree_increment, 
>> local_Rb_tree_decrement):
>>    Move to anonymous namespace.
>>    (local_Rb_tree_rotate_left, local_Rb_tree_rotate_right): Likewise.
>>
>> Tested under Linux x86_64 with versioned namespace.
>
> What about the normal configuration? It's much more important that the
> default configuration works. The versioned namespace that nobody uses
> doesn't matter.
>
>
Normal mode now tested too, success.

François



More information about the Libstdc++ mailing list