diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2869dafa810..1a9431bbbb5 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,116 @@
2019-05-11 Jonathan Wakely
+ Remove Profile Mode, deprecated since 7.1.0
+ * doc/Makefile.am: Remove XML file for profile mode docs.
+ * doc/Makefile.in: Regenerate.
+ * doc/xml/authors.xml: Remove authors of profile mode docs.
+ * doc/xml/manual/appendix_contributing.xml: Remove mention of profile
+ mode.
+ * doc/xml/manual/debug.xml: Likewise.
+ * doc/xml/manual/evolution.xml: Document removal of profile mode.
+ * doc/xml/manual/profile_mode.xml: Remove profile mode docs.
+ * doc/xml/manual/spine.xml: Remove profile mode author credit.
+ * doc/xml/manual/test.xml: Remove docs for dg-require-profile-mode
+ directive.
+ * doc/xml/manual/using.xml: Remove docs for profile mode headers and
+ macro.
+ * doc/html/*: Regenerate.
+ * include/Makefile.am: Remove profile mode headers.
+ * include/Makefile.in: Regenerate.
+ * include/bits/c++config (std::__profile): Remove namespace.
+ [_GLIBCXX_PROFILE]: Remove checks for macro.
+ * include/profile/array: Remove.
+ * include/profile/base.h: Remove.
+ * include/profile/bitset: Remove.
+ * include/profile/deque: Remove.
+ * include/profile/forward_list: Remove.
+ * include/profile/impl/profiler.h: Remove.
+ * include/profile/impl/profiler_algos.h: Remove.
+ * include/profile/impl/profiler_container_size.h: Remove.
+ * include/profile/impl/profiler_hash_func.h: Remove.
+ * include/profile/impl/profiler_hashtable_size.h: Remove.
+ * include/profile/impl/profiler_list_to_slist.h: Remove.
+ * include/profile/impl/profiler_list_to_vector.h: Remove.
+ * include/profile/impl/profiler_map_to_unordered_map.h: Remove.
+ * include/profile/impl/profiler_node.h: Remove.
+ * include/profile/impl/profiler_state.h: Remove.
+ * include/profile/impl/profiler_trace.h: Remove.
+ * include/profile/impl/profiler_vector_size.h: Remove.
+ * include/profile/impl/profiler_vector_to_list.h: Remove.
+ * include/profile/iterator_tracker.h: Remove.
+ * include/profile/list: Remove.
+ * include/profile/map: Remove.
+ * include/profile/map.h: Remove.
+ * include/profile/multimap.h: Remove.
+ * include/profile/multiset.h: Remove.
+ * include/profile/ordered_base.h: Remove.
+ * include/profile/set: Remove.
+ * include/profile/set.h: Remove.
+ * include/profile/unordered_base.h: Remove.
+ * include/profile/unordered_map: Remove.
+ * include/profile/unordered_set: Remove.
+ * include/profile/vector: Remove.
+ * scripts/run_doxygen: Do not process profile mode headers.
+ * testsuite/23_containers/array/element_access/60497.cc: Don't use
+ profile mode type.
+ * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
+ Remove dg-skip-if for profile mode.
+ * testsuite/23_containers/forward_list/capacity/1.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/23_containers/list/capacity/29134.cc: Likewise.
+ * testsuite/23_containers/map/modifiers/extract.cc: Remove dg-skip-if
+ for profile mode.
+ * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
+ Likewise.
+ * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
+ * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/unordered_map/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/capacity/29134.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
+ Remove dg-skip-if for profile mode.
+ * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
+ * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
+ * testsuite/Makefile.am: Remove profile_flags variable and
+ * testsuite/Makefile.am: Remove profile_flags variable and
+ check-profile target.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/ext/profile/all.cc: Remove.
+ * testsuite/ext/profile/mutex_extensions_neg.cc: Remove.
+ * testsuite/ext/profile/profiler_algos.cc: Remove.
+ * testsuite/ext/profile/replace_new.cc: Remove.
+ * testsuite/ext/throw_allocator/deallocate_global.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
+ * testsuite/lib/libstdc++.exp (check_v3_target_profile_mode): Remove.
+ (check_v3_target_normal_mode): Do not check for profile mode macro.
+ * testsuite/libstdc++-prettyprinters/80276.cc: Remove dg-skip-if for
+ profile mode.
+ * testsuite/libstdc++-prettyprinters/compat.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.
+
Remove array_allocator extension, deprecated since 4.9.0
* doc/xml/manual/allocator.xml: Remove documentation for
array_allocator.
diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am
index eb8251d10e3..b9aca381b74 100644
--- a/libstdc++-v3/doc/Makefile.am
+++ b/libstdc++-v3/doc/Makefile.am
@@ -336,7 +336,6 @@ xml_sources_manual = \
${xml_dir}/manual/policy_data_structures.xml \
${xml_dir}/manual/policy_data_structures_biblio.xml \
${xml_dir}/manual/prerequisites.xml \
- ${xml_dir}/manual/profile_mode.xml \
${xml_dir}/manual/shared_ptr.xml \
${xml_dir}/manual/spine.xml \
${xml_dir}/manual/status_cxx1998.xml \
diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in
index 12be1f7e254..5fee1b2d310 100644
--- a/libstdc++-v3/doc/Makefile.in
+++ b/libstdc++-v3/doc/Makefile.in
@@ -477,7 +477,6 @@ xml_sources_manual = \
${xml_dir}/manual/policy_data_structures.xml \
${xml_dir}/manual/policy_data_structures_biblio.xml \
${xml_dir}/manual/prerequisites.xml \
- ${xml_dir}/manual/profile_mode.xml \
${xml_dir}/manual/shared_ptr.xml \
${xml_dir}/manual/spine.xml \
${xml_dir}/manual/status_cxx1998.xml \
diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 25447dbcefe..2b7f36070f8 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -23,7 +23,7 @@
Table of Contents
- The GNU C++ Library Manual
- I.
Introduction
-
- 1. Status
- Implementation Status
- C++ 1998/2003
- Implementation Status
- Implementation Specific Behavior
- C++ 2011
- Implementation Specific Behavior
- C++ 2014
- C++ 2017
- Implementation Specific Behavior
- C++ 202a
- Implementation Specific Behavior
- C++ TR1
- Implementation Specific Behavior
- C++ TR 24733
- C++ IS 29124
- Implementation Specific Behavior
- License
- The Code: GPL
- The Documentation: GPL, FDL
- Bugs
- Implementation Bugs
- Standard Bugs
- 2. Setup
- Prerequisites
- Configure
- Make
- 3. Using
- Command Options
- Headers
- Header Files
- Mixing Headers
- The C Headers and
namespace std
- Precompiled Headers
- Macros
- Dual ABI
- Troubleshooting
- Namespaces
- Available Namespaces
- namespace std
- Using Namespace Composition
- Linking
- Almost Nothing
- Finding Dynamic or Shared Libraries
- Experimental Library Extensions
- Concurrency
- Prerequisites
- Thread Safety
- Atomics
- IO
- Structure
- Defaults
- Future
- Alternatives
- Containers
- Exceptions
- Exception Safety
- Exception Neutrality
- Doing without
- Compatibility
- With
C
- With
POSIX
thread cancellation
- Debugging Support
- Using g++
- Debug Versions of Library Binary Files
- Memory Leak Hunting
- Non-memory leaks in Pool and MT allocators
- Data Race Hunting
- Using gdb
- Tracking uncaught exceptions
- Debug Mode
- Compile Time Checking
- Profile-based Performance Analysis
- II.
+
- 1. Status
- Implementation Status
- C++ 1998/2003
- Implementation Status
- Implementation Specific Behavior
- C++ 2011
- Implementation Specific Behavior
- C++ 2014
- C++ 2017
- Implementation Specific Behavior
- C++ 202a
- Implementation Specific Behavior
- C++ TR1
- Implementation Specific Behavior
- C++ TR 24733
- C++ IS 29124
- Implementation Specific Behavior
- License
- The Code: GPL
- The Documentation: GPL, FDL
- Bugs
- Implementation Bugs
- Standard Bugs
- 2. Setup
- Prerequisites
- Configure
- Make
- 3. Using
- Command Options
- Headers
- Header Files
- Mixing Headers
- The C Headers and
namespace std
- Precompiled Headers
- Macros
- Dual ABI
- Troubleshooting
- Namespaces
- Available Namespaces
- namespace std
- Using Namespace Composition
- Linking
- Almost Nothing
- Finding Dynamic or Shared Libraries
- Experimental Library Extensions
- Concurrency
- Prerequisites
- Thread Safety
- Atomics
- IO
- Structure
- Defaults
- Future
- Alternatives
- Containers
- Exceptions
- Exception Safety
- Exception Neutrality
- Doing without
- Compatibility
- With
C
- With
POSIX
thread cancellation
- Debugging Support
- Using g++
- Debug Versions of Library Binary Files
- Memory Leak Hunting
- Non-memory leaks in Pool and MT allocators
- Data Race Hunting
- Using gdb
- Tracking uncaught exceptions
- Debug Mode
- Compile Time Checking
- II.
Standard Contents
- 4.
Support
@@ -65,7 +65,7 @@
Extensions
- 16. Compile Time Checks
- 17. Debug Mode
- Intro
- Semantics
- Using
- Using the Debug Mode
- Using a Specific Debug Container
- Design
- Goals
- Methods
- The Wrapper Model
- Safe Iterators
- Safe Sequences (Containers)
- Precondition Checking
- Release- and debug-mode coexistence
- Compile-time coexistence of release- and debug-mode components
- Link- and run-time coexistence of release- and
- debug-mode components
- Alternatives for Coexistence
- Other Implementations
- 18. Parallel Mode
- Intro
- Semantics
- Using
- Prerequisite Compiler Flags
- Using Parallel Mode
- Using Specific Parallel Components
- Design
- Interface Basics
- Configuration and Tuning
- Setting up the OpenMP Environment
- Compile Time Switches
- Run Time Settings and Defaults
- Implementation Namespaces
- Testing
- Bibliography
- 19. Profile Mode
- Intro
- Using the Profile Mode
- Tuning the Profile Mode
- Design
- Wrapper Model
- Instrumentation
- Run Time Behavior
- Analysis and Diagnostics
- Cost Model
- Reports
- Testing
- Extensions for Custom Containers
- Empirical Cost Model
- Implementation Issues
- Stack Traces
- Symbolization of Instruction Addresses
- Concurrency
- Using the Standard Library in the Instrumentation Implementation
- Malloc Hooks
- Construction and Destruction of Global Objects
- Developer Information
- Big Picture
- How To Add A Diagnostic
- Diagnostics
- Diagnostic Template
- Containers
- Hashtable Too Small
- Hashtable Too Large
- Inefficient Hash
- Vector Too Small
- Vector Too Large
- Vector to Hashtable
- Hashtable to Vector
- Vector to List
- List to Vector
- List to Forward List (Slist)
- Ordered to Unordered Associative Container
- Algorithms
- Sort Algorithm Performance
- Data Locality
- Need Software Prefetch
- Linked Structure Locality
- Multithreaded Data Access
- Data Dependence Violations at Container Level
- False Sharing
- Statistics
- Bibliography
- 20. The mt_allocator
- Intro
- Design Issues
- Overview
- Implementation
- Tunable Parameters
- Initialization
- Deallocation Notes
- Single Thread Example
- Multiple Thread Example
- 21. The bitmap_allocator
- Design
- Implementation
- Free List Store
- Super Block
- Super Block Data Layout
- Maximum Wasted Percentage
allocate
deallocate
- Questions
- 1
- 2
- 3
- Locality
- Overhead and Grow Policy
- 22. Policy-Based Data Structures
- Intro
- Performance Issues
- Associative
- Priority Que
- Goals
- Associative
- Policy Choices
- Underlying Data Structures
- Iterators
- Functional
- Priority Queues
- Policy Choices
- Underlying Data Structures
- Binary Heaps
- Using
- Prerequisites
- Organization
- Tutorial
- Basic Use
-
+ debug-mode components
- Alternatives for Coexistence
- Other Implementations
- 18. Parallel Mode
- Intro
- Semantics
- Using
- Prerequisite Compiler Flags
- Using Parallel Mode
- Using Specific Parallel Components
- Design
- Interface Basics
- Configuration and Tuning
- Setting up the OpenMP Environment
- Compile Time Switches
- Run Time Settings and Defaults
- Implementation Namespaces
- Testing
- Bibliography
- 19. The mt_allocator
- Intro
- Design Issues
- Overview
- Implementation
- Tunable Parameters
- Initialization
- Deallocation Notes
- Single Thread Example
- Multiple Thread Example
- 20. The bitmap_allocator
- Design
- Implementation
- Free List Store
- Super Block
- Super Block Data Layout
- Maximum Wasted Percentage
allocate
deallocate
- Questions
- 1
- 2
- 3
- Locality
- Overhead and Grow Policy
- 21. Policy-Based Data Structures
- Intro
- Performance Issues
- Associative
- Priority Que
- Goals
- Associative
- Policy Choices
- Underlying Data Structures
- Iterators
- Functional
- Priority Queues
- Policy Choices
- Underlying Data Structures
- Binary Heaps
- Using
- Prerequisites
- Organization
- Tutorial
- Basic Use
-
Configuring via Template Parameters
-
Querying Container Attributes
@@ -127,7 +127,7 @@
Text
modify
Up
-
Text
modify
Down
-
- Observations
- Associative
- Priority_Queue
- Acknowledgments
- Bibliography
- 23. HP/SGI Extensions
- Backwards Compatibility
- Deprecated
- 24. Utilities
- 25. Algorithms
- 26. Numerics
- 27. Iterators
- 28. Input and Output
- Derived filebufs
- 29. Demangling
- 30. Concurrency
- Design
- Interface to Locks and Mutexes
- Interface to Atomic Functions
- Implementation
- Using Built-in Atomic Functions
- Thread Abstraction
- Use
- IV.
+
Observations- Associative
- Priority_Queue
AcknowledgmentsBibliography22. HP/SGI Extensions- Backwards Compatibility
- Deprecated
23. Utilities24. Algorithms25. Numerics26. Iterators27. Input and Output- Derived filebufs
28. Demangling29. Concurrency- Design
- Interface to Locks and Mutexes
- Interface to Atomic Functions
- Implementation
- Using Built-in Atomic Functions
- Thread Abstraction
- Use
IV.
Appendices
- A.
Contributing
@@ -142,7 +142,7 @@
Existing tests
-
C++11 Requirements Test Sequence Descriptions
-
ABI Policy and Guidelines- The C++ Interface
- Versioning
- Goals
- History
- Prerequisites
- Configuring
- Checking Active
- Allowed Changes
- Prohibited Changes
- Implementation
- Testing
- Single ABI Testing
- Multiple ABI Testing
- Outstanding Issues
API Evolution and Deprecation History3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
Backwards Compatibility- First
- No
ios_base
- No
cout
in <ostream.h>
, no cin
in <istream.h>
- Second
- Namespace
std::
not supported - Illegal iterator usage
isspace
from <cctype>
is a macro
+
ABI Policy and Guidelines- The C++ Interface
- Versioning
- Goals
- History
- Prerequisites
- Configuring
- Checking Active
- Allowed Changes
- Prohibited Changes
- Implementation
- Testing
- Single ABI Testing
- Multiple ABI Testing
- Outstanding Issues
API Evolution and Deprecation History3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
10
Backwards Compatibility- First
- No
ios_base
- No
cout
in <ostream.h>
, no cin
in <istream.h>
- Second
- Namespace
std::
not supported - Illegal iterator usage
isspace
from <cctype>
is a macro
- No
vector::at
, deque::at
, string::at
- No
std::char_traits<char>::eof
- No
string::clear
-
Removal of
ostream::form
and istream::scan
extensions
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index f9cbad526a8..bb131d3010c 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -34,7 +34,7 @@ Removal of <ext/tree>
, moved to new
anyway,
but for the optional pooling allocators the functionality is enabled by
setting GLIBCXX_FORCE_NEW
in the environment, see
- the mt allocator chapter
+ the mt allocator chapter
for details.
Error handling in iostreams cleaned up, made consistent.
@@ -391,4 +391,6 @@ now defaults to zero.
<experimental/socket>
,
and
<experimental/timer>
.
+
Deprecated features removed:
+
- Profile Mode
__gnu_cxx::array_allocator