aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog30
-rw-r--r--libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt5
-rw-r--r--libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt5
-rw-r--r--libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt4
-rw-r--r--libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt5
-rw-r--r--libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt5
-rw-r--r--libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt6
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver10
-rw-r--r--libstdc++-v3/include/std/chrono59
-rw-r--r--libstdc++-v3/src/c++11/chrono.cc31
-rw-r--r--libstdc++-v3/src/c++11/compatibility-chrono.cc87
19 files changed, 202 insertions, 93 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9c74e5958cd..f4faf6b1cb4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,33 @@
+2013-05-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/std/chrono: Wrap clocks in inline namespace _V2.
+ * src/c++11/chrono.cc: Same.
+ * src/c++11/compatibility-chrono.cc: Revert to previous chrono.cc
+ file, with default configure macros selected.
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.19): Use symbols from inline
+ namespace.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Fix up.
+
+ * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
+
2013-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/os/solaris/solaris2.9/os_defines.h [!CLOCK_MONOTONIC]
diff --git a/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
index 6a823ad2a92..6876176bc66 100644
--- a/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
@@ -1937,9 +1937,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3018,6 +3018,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
index 6a823ad2a92..6876176bc66 100644
--- a/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
@@ -1937,9 +1937,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3018,6 +3018,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
index 6a15139f415..dd45ef09fe0 100644
--- a/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
@@ -2127,9 +2127,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3278,6 +3278,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
index 6a15139f415..dd45ef09fe0 100644
--- a/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
@@ -2127,9 +2127,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3278,6 +3278,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
index ac5fe54c484..bc72230d25a 100644
--- a/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
@@ -2127,9 +2127,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3208,6 +3208,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
index ca252083c69..3815db3baf0 100644
--- a/libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
@@ -2127,9 +2127,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3278,6 +3278,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
index ac5fe54c484..bc72230d25a 100644
--- a/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
@@ -2127,9 +2127,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3208,6 +3208,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt
index 5b46247c4c0..fb58c48cfce 100644
--- a/libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt
@@ -1902,8 +1902,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2915,6 +2916,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt
index df69ba25cc6..4b047846641 100644
--- a/libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt
@@ -1902,8 +1902,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2980,6 +2981,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt
index 4c158136192..d324ca0db9f 100644
--- a/libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt
@@ -1566,6 +1566,8 @@ FUNC:_ZNSt15_List_node_base7_M_hookEPS_@@GLIBCXX_3.4.14
FUNC:_ZNSt15_List_node_base7reverseEv@@GLIBCXX_3.4
FUNC:_ZNSt15_List_node_base8transferEPS_S0_@@GLIBCXX_3.4
FUNC:_ZNSt15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt15__exception_ptr13exception_ptr4swapERS0_@@CXXABI_1.3.3
FUNC:_ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE@@CXXABI_1.3.3
FUNC:_ZNSt15__exception_ptr13exception_ptrC1ERKS0_@@CXXABI_1.3.3
@@ -2915,6 +2917,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt
index b9e822e7988..63c0ec55b24 100644
--- a/libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt
@@ -1878,8 +1878,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2991,6 +2992,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt
index 3a3d0b7de2c..d4bcf7e4804 100644
--- a/libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt
@@ -1878,8 +1878,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2926,6 +2927,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt7nothrow@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCXX_3.4
OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCXX_3.4
diff --git a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
index 6a823ad2a92..6876176bc66 100644
--- a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
@@ -1937,9 +1937,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -3018,6 +3018,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
index 165638b6870..02173754b35 100644
--- a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
@@ -1937,9 +1937,9 @@ FUNC:_ZNSt6__norm15_List_node_base7_M_hookEPS0_@@GLIBCXX_3.4.14
FUNC:_ZNSt6__norm15_List_node_base7reverseEv@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
-FUNC:_ZNSt6chrono12steady_clock3nowEv@@GLIBCXX_3.4.19
-FUNC:_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17
FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2953,6 +2953,8 @@ OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 9c64a0d8c0f..9e1f4da1589 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1320,11 +1320,8 @@ GLIBCXX_3.4.17 {
_ZNSt13__future_base19_Async_state_commonD1Ev;
_ZNSt13__future_base19_Async_state_commonD2Ev;
-#ifdef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT
- # GLIBCXX_ABI compatibility only.
# std::chrono::steady_clock::now()
_ZNSt6chrono12steady_clock3nowEv;
-#endif
} GLIBCXX_3.4.16;
@@ -1349,8 +1346,11 @@ GLIBCXX_3.4.18 {
GLIBCXX_3.4.19 {
- # std::chrono::steady_clock::now()
- _ZNSt6chrono12steady_clock3nowEv;
+ # chrono second generation
+ _ZNSt6chrono3_V212steady_clock3nowEv;
+ _ZNSt6chrono3_V212steady_clock9is_steadyE;
+ _ZNSt6chrono3_V212system_clock3nowEv;
+ _ZNSt6chrono3_V212system_clock9is_steadyE;
} GLIBCXX_3.4.18;
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
index 711131920f0..6d9df7d7dda 100644
--- a/libstdc++-v3/include/std/chrono
+++ b/libstdc++-v3/include/std/chrono
@@ -686,17 +686,35 @@ _GLIBCXX_END_NAMESPACE_VERSION
const time_point<_Clock, _Dur2>& __rhs)
{ return !(__lhs < __rhs); }
- /// system_clock
- struct system_clock
+
+ // Clocks.
+
+ // Why nanosecond resolution as the default?
+ // Why have std::system_clock always count in the higest
+ // resolution (ie nanoseconds), even if on some OSes the low 3
+ // or 9 decimal digits will be always zero? This allows later
+ // implementations to change the system_clock::now()
+ // implementation any time to provide better resolution without
+ // changing function signature or units.
+
+ // To support the (forward) evolution of the library's defined
+ // clocks, wrap inside inline namespace so that the current
+ // defintions of system_clock, steady_clock, and
+ // high_resolution_clock types are uniquely mangled. This way, new
+ // code can use the latests clocks, while the library can contain
+ // compatibility definitions for previous versions. At some
+ // point, when these clocks settle down, the inlined namespaces
+ // can be removed. XXX GLIBCXX_ABI Deprecated
+ inline namespace _V2 {
+
+ /**
+ * @brief System clock.
+ *
+ * Time returned represents wall time from the system-wide clock.
+ */
+ struct system_clock
{
-#ifdef _GLIBCXX_USE_CLOCK_REALTIME
typedef chrono::nanoseconds duration;
-#elif defined(_GLIBCXX_USE_GETTIMEOFDAY)
- typedef chrono::microseconds duration;
-#else
- typedef chrono::seconds duration;
-#endif
-
typedef duration::rep rep;
typedef duration::period period;
typedef chrono::time_point<system_clock, duration> time_point;
@@ -727,8 +745,12 @@ _GLIBCXX_END_NAMESPACE_VERSION
}
};
-#ifdef _GLIBCXX_USE_CLOCK_MONOTONIC
- /// steady_clock
+
+ /**
+ * @brief Monotonic clock
+ *
+ * Time returned has the property of only increasing at a uniform rate.
+ */
struct steady_clock
{
typedef chrono::nanoseconds duration;
@@ -741,11 +763,18 @@ _GLIBCXX_END_NAMESPACE_VERSION
static time_point
now() noexcept;
};
-#else
- typedef system_clock steady_clock;
-#endif
- typedef system_clock high_resolution_clock;
+
+ /**
+ * @brief Highest-resolution clock
+ *
+ * This is the clock "with the shortest tick period." Alias to
+ * std::system_clock until higher-than-nanosecond definitions
+ * become feasible.
+ */
+ using high_resolution_clock = system_clock;
+
+ } // end inline namespace _V2
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace chrono
diff --git a/libstdc++-v3/src/c++11/chrono.cc b/libstdc++-v3/src/c++11/chrono.cc
index 15de4eb8767..ca10fb36881 100644
--- a/libstdc++-v3/src/c++11/chrono.cc
+++ b/libstdc++-v3/src/c++11/chrono.cc
@@ -23,28 +23,17 @@
// <http://www.gnu.org/licenses/>.
#include <bits/c++config.h>
-
-#ifndef _GLIBCXX_USE_CLOCK_MONOTONIC
-// If !_GLIBCXX_USE_CLOCK_MONOTONIC, std::chrono::steady_clock
-// is just a typedef to std::chrono::system_clock, for ABI compatibility
-// force it not to be a typedef now and export it anyway. Programs
-// using the headers where it is a typedef will actually just use
-// std::chrono::system_clock instead, and this remains here just as a fallback.
-#define _GLIBCXX_USE_CLOCK_MONOTONIC
-#include <chrono>
-#undef _GLIBCXX_USE_CLOCK_MONOTONIC
-#else
#include <chrono>
-#endif
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
-// conditional inclusion of sys/time.h for gettimeofday
+// Conditional inclusion of sys/time.h for gettimeofday
#if !defined(_GLIBCXX_USE_CLOCK_MONOTONIC) && \
!defined(_GLIBCXX_USE_CLOCK_REALTIME) && \
defined(_GLIBCXX_USE_GETTIMEOFDAY)
#include <sys/time.h>
#endif
+
#ifdef _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL
#include <unistd.h>
#include <sys/syscall.h>
@@ -56,7 +45,9 @@ namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#ifndef _GLIBCXX_COMPATIBILITY_CXX0X
+ // XXX GLIBCXX_ABI Deprecated
+ inline namespace _V2 {
+
constexpr bool system_clock::is_steady;
system_clock::time_point
@@ -83,18 +74,10 @@ namespace std _GLIBCXX_VISIBILITY(default)
return system_clock::from_time_t(__sec);
#endif
}
-#endif
+
-#ifndef _GLIBCXX_COMPATIBILITY_CXX0X
constexpr bool steady_clock::is_steady;
-#endif
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) \
- && !defined(_GLIBCXX_COMPATIBILITY_CXX0X)
- __attribute__((__weak__))
-#endif
steady_clock::time_point
steady_clock::now() noexcept
{
@@ -113,6 +96,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
#endif
}
+ } // end inline namespace _V2
+
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace chrono
} // namespace std
diff --git a/libstdc++-v3/src/c++11/compatibility-chrono.cc b/libstdc++-v3/src/c++11/compatibility-chrono.cc
index ada0946619b..fd67daec4c5 100644
--- a/libstdc++-v3/src/c++11/compatibility-chrono.cc
+++ b/libstdc++-v3/src/c++11/compatibility-chrono.cc
@@ -22,37 +22,68 @@
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
-#define _GLIBCXX_COMPATIBILITY_CXX0X
#include <bits/c++config.h>
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
- && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE)\
- && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+#ifdef _GLIBCXX_USE_GETTIMEOFDAY
+#include <sys/time.h>
+#endif
+
+#define system_clock system_clockXX
#define steady_clock steady_clockXX
-#include "chrono.cc"
-
-// The rename syntax for default exported names is
-// asm (".symver name1,exportedname@GLIBCXX_3.4.17")
-// asm (".symver name2,exportedname@@GLIBCXX_3.4.19")
-// In the future, GLIBCXX_ABI > 6 should remove all uses of
-// _GLIBCXX_*_SYMVER macros in this file.
-
-#define _GLIBCXX_3_4_17_SYMVER(XXname, name) \
- extern "C" void \
- _X##name() \
- __attribute__ ((alias(#XXname))); \
- asm (".symver " "_X" #name "," #name "@GLIBCXX_3.4.17");
-
-#define _GLIBCXX_3_4_19_SYMVER(XXname, name) \
- extern "C" void \
- _Y##name() \
- __attribute__ ((alias(#XXname))); \
- asm (".symver " "_Y" #name "," #name "@@GLIBCXX_3.4.19");
-
-_GLIBCXX_3_4_17_SYMVER(_ZNSt6chrono14steady_clockXX3nowEv,
- _ZNSt6chrono12steady_clock3nowEv)
-_GLIBCXX_3_4_19_SYMVER(_ZNSt6chrono14steady_clockXX3nowEv,
- _ZNSt6chrono12steady_clock3nowEv)
+#include <chrono>
+#undef system_clock
+#undef steady_clock
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+ namespace chrono
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+ // NB: Default configuration was no realtime.
+ struct system_clock
+ {
+#ifdef _GLIBCXX_USE_GETTIMEOFDAY
+ typedef chrono::microseconds duration;
+#else
+ typedef chrono::seconds duration;
#endif
+
+ typedef duration::rep rep;
+ typedef duration::period period;
+ typedef chrono::time_point<system_clock, duration> time_point;
+
+ static_assert(system_clock::duration::min()
+ < system_clock::duration::zero(),
+ "a clock's minimum duration cannot be less than its epoch");
+
+ static constexpr bool is_steady = false;
+
+ static time_point
+ now() noexcept;
+ };
+
+ constexpr bool system_clock::is_steady;
+
+ system_clock::time_point
+ system_clock::now() noexcept
+ {
+#ifdef _GLIBCXX_USE_GETTIMEOFDAY
+ timeval tv;
+ // EINVAL, EFAULT
+ gettimeofday(&tv, 0);
+ return time_point(duration(chrono::seconds(tv.tv_sec)
+ + chrono::microseconds(tv.tv_usec)));
+#else
+ std::time_t __sec = std::time(0);
+ return system_clock::from_time_t(__sec);
+#endif
+ }
+
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace chrono
+} // namespace std
+
+#endif // _GLIBCXX_USE_C99_STDINT_TR1