Hi
Now that soname has been incremented I can remove several useless
debug symbols when versioned namespace is active.
* include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
(__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
Remove.
(__gnu_debug::_Error_formatter::_M_format_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_string): Remove.
(__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
* src/c++11/debug.cc: Adapt.
* config/abi/pre/gnu-versioned-namespace.ver: Adapt.
Tested under Linux x86_64 debug mode.
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 1721810..866afb6 100644
--- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -137,11 +137,7 @@ GLIBCXX_8.0 {
_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
_ZNK11__gnu_debug16_Error_formatter10_M_message*;
- _ZNK11__gnu_debug16_Error_formatter10_Parameter*;
- _ZNK11__gnu_debug16_Error_formatter13_M_print_word*;
- _ZNK11__gnu_debug16_Error_formatter15_M_print_string*;
_ZNK11__gnu_debug16_Error_formatter8_M_error*;
- _ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv;
# __gnu_debug::_Safe_unordered_container_base
# __gnu_debug::_Safe_local_iterator_base
@@ -150,7 +146,6 @@ GLIBCXX_8.0 {
_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv;
-
# parallel mode
_ZN14__gnu_parallel9_Settings3getEv;
_ZN14__gnu_parallel9_Settings3setERS0_;
diff --git a/libstdc++-v3/include/debug/formatter.h b/libstdc++-v3/include/debug/formatter.h
index c81426a..7c342ea 100644
--- a/libstdc++-v3/include/debug/formatter.h
+++ b/libstdc++-v3/include/debug/formatter.h
@@ -374,6 +374,7 @@ namespace __gnu_debug
_M_variant._M_instance._M_type = _GLIBCXX_TYPEID(_Type);
}
+#if !_GLIBCXX_INLINE_VERSION
void
_M_print_field(const _Error_formatter* __formatter,
const char* __name) const _GLIBCXX_DEPRECATED;
@@ -381,6 +382,7 @@ namespace __gnu_debug
void
_M_print_description(const _Error_formatter* __formatter)
const _GLIBCXX_DEPRECATED;
+#endif
};
template<typename _Iterator>
@@ -452,6 +454,7 @@ namespace __gnu_debug
_GLIBCXX_NORETURN void
_M_error() const;
+#if !_GLIBCXX_INLINE_VERSION
template<typename _Tp>
void
_M_format_word(char*, int, const char*, _Tp)
@@ -462,14 +465,17 @@ namespace __gnu_debug
void
_M_print_string(const char* __string) const _GLIBCXX_DEPRECATED;
+#endif
private:
_Error_formatter(const char* __file, unsigned int __line)
: _M_file(__file), _M_line(__line), _M_num_parameters(0), _M_text(0)
{ }
+#if !_GLIBCXX_INLINE_VERSION
void
_M_get_max_length() const throw () _GLIBCXX_DEPRECATED;
+#endif
enum { __max_parameters = 9 };
diff --git a/libstdc++-v3/src/c++11/debug.cc b/libstdc++-v3/src/c++11/debug.cc
index 5becdbe..9130b19 100644
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -1071,6 +1071,7 @@ namespace __gnu_debug
abort();
}
+#if !_GLIBCXX_INLINE_VERSION
// Deprecated methods kept for backward compatibility.
void
_Error_formatter::_Parameter::_M_print_field(
@@ -1118,4 +1119,6 @@ namespace __gnu_debug
void
_Error_formatter::_M_format_word(char*, int, const char*,
const char*) const;
+#endif
+
} // namespace __gnu_debug