Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-16 Thread Jonathan Wakely

On 16/05/17 12:48 +0100, Jonathan Wakely wrote:

On 11/05/17 22:31 +0200, François Dumont wrote:

On 10/05/2017 22:44, François Dumont wrote:

On 10/05/2017 11:28, Jonathan Wakely wrote:

On 10/05/17 11:15 +0200, Paolo Carlini wrote:

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.


Please commit it then, François - thanks!



Done, don't hesitate to update the ChangeLog if I used some wrong terms.

I'll also send some changes requiring this bump.

François

I just realized that I forgot to commit the small _Rb_tree_impl 
change part. It is done now.


And also the regenerated configure script. I'll do that.



Like so, tested x86_64-linux and committed to trunk.

There seems to be a problem bootstrapping with the versioned-namespace
on ppc64le-linux, but I haven't tried to debug it.


commit 98d080cdac7052e2fa8a423cf6263fc3df5dd6d8
Author: Jonathan Wakely 
Date:   Tue May 16 12:53:01 2017 +0100

Regenerate libstdc++-v3/configure for versioned-namespace soname

	* configure: Regenerate.

diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 2406cb9..7c10c9e 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -79282,7 +79282,7 @@ $as_echo "#define _GLIBCXX_SYMVER_GNU 1" >>confdefs.h
 
 ;;
   gnu-versioned-namespace)
-libtool_VERSION=7:0:0
+libtool_VERSION=8:0:0
 SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
 
 $as_echo "#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1" >>confdefs.h


Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-16 Thread Jonathan Wakely

On 11/05/17 22:31 +0200, François Dumont wrote:

On 10/05/2017 22:44, François Dumont wrote:

On 10/05/2017 11:28, Jonathan Wakely wrote:

On 10/05/17 11:15 +0200, Paolo Carlini wrote:

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.


Please commit it then, François - thanks!



Done, don't hesitate to update the ChangeLog if I used some wrong terms.

I'll also send some changes requiring this bump.

François

I just realized that I forgot to commit the small _Rb_tree_impl change 
part. It is done now.


And also the regenerated configure script. I'll do that.




Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-11 Thread François Dumont

On 10/05/2017 22:44, François Dumont wrote:

On 10/05/2017 11:28, Jonathan Wakely wrote:

On 10/05/17 11:15 +0200, Paolo Carlini wrote:

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.


Please commit it then, François - thanks!



Done, don't hesitate to update the ChangeLog if I used some wrong terms.

I'll also send some changes requiring this bump.

François

I just realized that I forgot to commit the small _Rb_tree_impl change 
part. It is done now.


François



Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-10 Thread François Dumont

On 10/05/2017 11:28, Jonathan Wakely wrote:

On 10/05/17 11:15 +0200, Paolo Carlini wrote:

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.


Please commit it then, François - thanks!



Done, don't hesitate to update the ChangeLog if I used some wrong terms.

I'll also send some changes requiring this bump.

François



Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-10 Thread Jonathan Wakely

On 10/05/17 11:15 +0200, Paolo Carlini wrote:

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.


Please commit it then, François - thanks!



Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-10 Thread Paolo Carlini

Hi,

On 10/05/2017 11:12, Jonathan Wakely wrote:

Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

Sure, makes sense to me too.

Paolo.


Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-10 Thread Jonathan Wakely

On 09/05/17 22:03 +0200, François Dumont wrote:

On 05/05/2017 15:08, Jonathan Wakely wrote:

On 04/05/17 22:16 +0200, François Dumont wrote:

Hi

  Here is the patch to remove the useless _Is_pod_comparator 
_Rb_tree_impl template parameter. As this is an ABI breaking 
change it is limited to the versioned namespace mode and the patch 
also bump the namespace version.


  Working on this patch I wonder if the 
gnu-versioned-namespace.ver is really up to date. The list of 
export expressions is far smaller than the one in gnu.ver.


Because it uses wildcards that match all symbols, because using the
versioned namespace everything gets the same symbol version. We don't
need to assign different versions to different symbols.


Would the testsuite show that some symbols are not properly exported ?


Yes (as long as we have a test that exercises the feature).



  Bump version namespace.
  * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
  from __7 to __8. Bump GLIBCXX_7.0 into GLIBCXX_8.0.
  * include/bits/c++config: Adapt.
  * include/bits/regex.h: Adapt.
  * include/experimental/bits/fs_fwd.h: Adapt.
  * include/experimental/bits/lfts_config.h: Adapt.
  * include/std/variant: Adapt.
  * python/libstdcxx/v6/printers.py: Adapt.
  * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
  * include/bits/stl_tree.h (_Rb_tree_impl<>): Remove 
_Is_pod_comparator

  template parameter when version namespace is active.


The patch also needs to update libtool_VERSION in acinclude.m4 so that
the shared library goes from libstdc++.so.7 to libstdc++.so.8 (because
after this change we're absolutely not compatible with libstdc++.so.7


Ok, updated with attached patch. Ok to commit ?


Looks good to me. Paolo, what do you think about bumping the versioned
namespace and SONAME to 8?

It's not really important for this change, but I'd like to make the
new SSO std::string work for the versioned namespace, so we might want
it for that.




Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-09 Thread François Dumont

On 05/05/2017 15:08, Jonathan Wakely wrote:

On 04/05/17 22:16 +0200, François Dumont wrote:

Hi

   Here is the patch to remove the useless _Is_pod_comparator 
_Rb_tree_impl template parameter. As this is an ABI breaking change 
it is limited to the versioned namespace mode and the patch also bump 
the namespace version.


   Working on this patch I wonder if the gnu-versioned-namespace.ver 
is really up to date. The list of export expressions is far smaller 
than the one in gnu.ver.


Because it uses wildcards that match all symbols, because using the
versioned namespace everything gets the same symbol version. We don't
need to assign different versions to different symbols.


Would the testsuite show that some symbols are not properly exported ?


Yes (as long as we have a test that exercises the feature).



   Bump version namespace.
   * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
   from __7 to __8. Bump GLIBCXX_7.0 into GLIBCXX_8.0.
   * include/bits/c++config: Adapt.
   * include/bits/regex.h: Adapt.
   * include/experimental/bits/fs_fwd.h: Adapt.
   * include/experimental/bits/lfts_config.h: Adapt.
   * include/std/variant: Adapt.
   * python/libstdcxx/v6/printers.py: Adapt.
   * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
   * include/bits/stl_tree.h (_Rb_tree_impl<>): Remove 
_Is_pod_comparator

   template parameter when version namespace is active.


The patch also needs to update libtool_VERSION in acinclude.m4 so that
the shared library goes from libstdc++.so.7 to libstdc++.so.8 (because
after this change we're absolutely not compatible with libstdc++.so.7


Ok, updated with attached patch. Ok to commit ?

François

diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 8cb525b..61c8cb2 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -3763,7 +3763,7 @@ case $enable_symvers in
 	  [Define to use GNU versioning in the shared library.])
 ;;
   gnu-versioned-namespace)
-libtool_VERSION=7:0:0
+libtool_VERSION=8:0:0
 SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
 AC_DEFINE(_GLIBCXX_SYMVER_GNU_NAMESPACE, 1,
 	  [Define to use GNU namespace versioning in the shared library.])
diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
index 5fc627c..1721810 100644
--- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -19,7 +19,7 @@
 ## with this library; see the file COPYING3.  If not see
 ## .
 
-GLIBCXX_7.0 {
+GLIBCXX_8.0 {
 
   global:
 
@@ -27,7 +27,7 @@ GLIBCXX_7.0 {
 extern "C++"
 {
   std::*;
-  std::__7::*;
+  std::__8::*;
   std::random_device::*
 };
 
@@ -60,7 +60,7 @@ GLIBCXX_7.0 {
 # vtable
 _ZTVSt*;
 _ZTVNSt*;
-_ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw];
+_ZTVN9__gnu_cxx3__818stdio_sync_filebufI[cw]NSt3__811char_traitsI[cw];
 
 # thunk
 _ZTv0_n12_NS*;
@@ -75,51 +75,51 @@ GLIBCXX_7.0 {
 _ZTSNSt*;
 
 # locale
-_ZNSt3__79has_facetINS_*;
+_ZNSt3__89has_facetINS_*;
 
 # hash
-_ZNSt8__detail3__712__prime_listE;
-_ZNSt3tr18__detail3__712__prime_listE;
+_ZNSt8__detail3__812__prime_listE;
+_ZNSt3tr18__detail3__812__prime_listE;
 
 # thread/mutex/condition_variable/future
 __once_proxy;
 
 # std::__detail::_List_node_base
-_ZNSt8__detail3__715_List_node_base7_M_hook*;
-_ZNSt8__detail3__715_List_node_base9_M_unhookEv;
-_ZNSt8__detail3__715_List_node_base10_M_reverseEv;
-_ZNSt8__detail3__715_List_node_base11_M_transfer*;
-_ZNSt8__detail3__715_List_node_base4swapER*;
+_ZNSt8__detail3__815_List_node_base7_M_hook*;
+_ZNSt8__detail3__815_List_node_base9_M_unhookEv;
+_ZNSt8__detail3__815_List_node_base10_M_reverseEv;
+_ZNSt8__detail3__815_List_node_base11_M_transfer*;
+_ZNSt8__detail3__815_List_node_base4swapER*;
 
 # std::__convert_to_v
-_ZNSt3__714__convert_to_v*;
+_ZNSt3__814__convert_to_v*;
 
 # std::__copy_streambufs
-_ZNSt3__717__copy_streambufsI*;
-_ZNSt3__721__copy_streambufs_eofI*;
+_ZNSt3__817__copy_streambufsI*;
+_ZNSt3__821__copy_streambufs_eofI*;
 
 # __gnu_cxx::__atomic_add
 # __gnu_cxx::__exchange_and_add
-_ZN9__gnu_cxx3__712__atomic_addEPV[il][il];
-_ZN9__gnu_cxx3__718__exchange_and_addEPV[li][il];
+_ZN9__gnu_cxx3__812__atomic_addEPV[il][il];
+_ZN9__gnu_cxx3__818__exchange_and_addEPV[li][il];
 
 # __gnu_cxx::__pool
-_ZN9__gnu_cxx3__76__poolILb[01]EE13_M_initializeEv;
-_ZN9__gnu_cxx3__76__poolILb[01]EE16_M_reserve_blockE[jmy][jmy];
-_ZN9__gnu_cxx3__76__poolILb[01]EE16_M_reclaim_blockEPc[jmy];
-_ZN9__gnu_cxx3__76__poolILb[01]EE10_M_destroyEv;
-_ZN9__gnu_cxx3__76__poolILb1EE16_M_get_thread_idEv;
+_ZN9__gnu_cxx3__86__poolILb[01]EE13_M_initializeEv;
+

Re: Bump version namespace and remove _Rb_tree useless template parameter

2017-05-05 Thread Jonathan Wakely

On 04/05/17 22:16 +0200, François Dumont wrote:

Hi

   Here is the patch to remove the useless _Is_pod_comparator 
_Rb_tree_impl template parameter. As this is an ABI breaking change it 
is limited to the versioned namespace mode and the patch also bump the 
namespace version.


   Working on this patch I wonder if the gnu-versioned-namespace.ver 
is really up to date. The list of export expressions is far smaller 
than the one in gnu.ver.


Because it uses wildcards that match all symbols, because using the
versioned namespace everything gets the same symbol version. We don't
need to assign different versions to different symbols.

Would the testsuite show that some symbols 
are not properly exported ?


Yes (as long as we have a test that exercises the feature).



   Bump version namespace.
   * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
   from __7 to __8. Bump GLIBCXX_7.0 into GLIBCXX_8.0.
   * include/bits/c++config: Adapt.
   * include/bits/regex.h: Adapt.
   * include/experimental/bits/fs_fwd.h: Adapt.
   * include/experimental/bits/lfts_config.h: Adapt.
   * include/std/variant: Adapt.
   * python/libstdcxx/v6/printers.py: Adapt.
   * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
   * include/bits/stl_tree.h (_Rb_tree_impl<>): Remove _Is_pod_comparator
   template parameter when version namespace is active.


The patch also needs to update libtool_VERSION in acinclude.m4 so that
the shared library goes from libstdc++.so.7 to libstdc++.so.8 (because
after this change we're absolutely not compatible with libstdc++.so.7)




Bump version namespace and remove _Rb_tree useless template parameter

2017-05-04 Thread François Dumont

Hi

Here is the patch to remove the useless _Is_pod_comparator 
_Rb_tree_impl template parameter. As this is an ABI breaking change it 
is limited to the versioned namespace mode and the patch also bump the 
namespace version.


Working on this patch I wonder if the gnu-versioned-namespace.ver 
is really up to date. The list of export expressions is far smaller than 
the one in gnu.ver. Would the testsuite show that some symbols are not 
properly exported ?


Bump version namespace.
* config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
from __7 to __8. Bump GLIBCXX_7.0 into GLIBCXX_8.0.
* include/bits/c++config: Adapt.
* include/bits/regex.h: Adapt.
* include/experimental/bits/fs_fwd.h: Adapt.
* include/experimental/bits/lfts_config.h: Adapt.
* include/std/variant: Adapt.
* python/libstdcxx/v6/printers.py: Adapt.
* testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
* include/bits/stl_tree.h (_Rb_tree_impl<>): Remove _Is_pod_comparator
template parameter when version namespace is active.

Tested under Linux x86_64 with version namespace.

Ok to commit ?

François


diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
index 5fc627c..1721810 100644
--- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -19,7 +19,7 @@
 ## with this library; see the file COPYING3.  If not see
 ## .
 
-GLIBCXX_7.0 {
+GLIBCXX_8.0 {
 
   global:
 
@@ -27,7 +27,7 @@ GLIBCXX_7.0 {
 extern "C++"
 {
   std::*;
-  std::__7::*;
+  std::__8::*;
   std::random_device::*
 };
 
@@ -60,7 +60,7 @@ GLIBCXX_7.0 {
 # vtable
 _ZTVSt*;
 _ZTVNSt*;
-_ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw];
+_ZTVN9__gnu_cxx3__818stdio_sync_filebufI[cw]NSt3__811char_traitsI[cw];
 
 # thunk
 _ZTv0_n12_NS*;
@@ -75,51 +75,51 @@ GLIBCXX_7.0 {
 _ZTSNSt*;
 
 # locale
-_ZNSt3__79has_facetINS_*;
+_ZNSt3__89has_facetINS_*;
 
 # hash
-_ZNSt8__detail3__712__prime_listE;
-_ZNSt3tr18__detail3__712__prime_listE;
+_ZNSt8__detail3__812__prime_listE;
+_ZNSt3tr18__detail3__812__prime_listE;
 
 # thread/mutex/condition_variable/future
 __once_proxy;
 
 # std::__detail::_List_node_base
-_ZNSt8__detail3__715_List_node_base7_M_hook*;
-_ZNSt8__detail3__715_List_node_base9_M_unhookEv;
-_ZNSt8__detail3__715_List_node_base10_M_reverseEv;
-_ZNSt8__detail3__715_List_node_base11_M_transfer*;
-_ZNSt8__detail3__715_List_node_base4swapER*;
+_ZNSt8__detail3__815_List_node_base7_M_hook*;
+_ZNSt8__detail3__815_List_node_base9_M_unhookEv;
+_ZNSt8__detail3__815_List_node_base10_M_reverseEv;
+_ZNSt8__detail3__815_List_node_base11_M_transfer*;
+_ZNSt8__detail3__815_List_node_base4swapER*;
 
 # std::__convert_to_v
-_ZNSt3__714__convert_to_v*;
+_ZNSt3__814__convert_to_v*;
 
 # std::__copy_streambufs
-_ZNSt3__717__copy_streambufsI*;
-_ZNSt3__721__copy_streambufs_eofI*;
+_ZNSt3__817__copy_streambufsI*;
+_ZNSt3__821__copy_streambufs_eofI*;
 
 # __gnu_cxx::__atomic_add
 # __gnu_cxx::__exchange_and_add
-_ZN9__gnu_cxx3__712__atomic_addEPV[il][il];
-_ZN9__gnu_cxx3__718__exchange_and_addEPV[li][il];
+_ZN9__gnu_cxx3__812__atomic_addEPV[il][il];
+_ZN9__gnu_cxx3__818__exchange_and_addEPV[li][il];
 
 # __gnu_cxx::__pool
-_ZN9__gnu_cxx3__76__poolILb[01]EE13_M_initializeEv;
-_ZN9__gnu_cxx3__76__poolILb[01]EE16_M_reserve_blockE[jmy][jmy];
-_ZN9__gnu_cxx3__76__poolILb[01]EE16_M_reclaim_blockEPc[jmy];
-_ZN9__gnu_cxx3__76__poolILb[01]EE10_M_destroyEv;
-_ZN9__gnu_cxx3__76__poolILb1EE16_M_get_thread_idEv;
+_ZN9__gnu_cxx3__86__poolILb[01]EE13_M_initializeEv;
+_ZN9__gnu_cxx3__86__poolILb[01]EE16_M_reserve_blockE[jmy][jmy];
+_ZN9__gnu_cxx3__86__poolILb[01]EE16_M_reclaim_blockEPc[jmy];
+_ZN9__gnu_cxx3__86__poolILb[01]EE10_M_destroyEv;
+_ZN9__gnu_cxx3__86__poolILb1EE16_M_get_thread_idEv;
 
-_ZN9__gnu_cxx3__717__pool_alloc_base9_M_refillE[jmy];
-_ZN9__gnu_cxx3__717__pool_alloc_base16_M_get_free_listE[jmy];
-_ZN9__gnu_cxx3__717__pool_alloc_base12_M_get_mutexEv;
+_ZN9__gnu_cxx3__817__pool_alloc_base9_M_refillE[jmy];
+_ZN9__gnu_cxx3__817__pool_alloc_base16_M_get_free_listE[jmy];
+_ZN9__gnu_cxx3__817__pool_alloc_base12_M_get_mutexEv;
 
-_ZN9__gnu_cxx3__79free_list6_M_getE[jmy];
-_ZN9__gnu_cxx3__79free_list8_M_clearEv;
+_ZN9__gnu_cxx3__89free_list6_M_getE[jmy];
+_ZN9__gnu_cxx3__89free_list8_M_clearEv;
 
 # __gnu_cxx::stdio_sync_filebuf
-_ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]St3__711char_traitsI[cw]EEE;
-_ZN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw]EEE[5-9]*;
+_ZTVN9__gnu_cxx3__818stdio_sync_filebufI[cw]St3__811char_traitsI[cw]EEE;
+