public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch libstdc++] PR61536 Export out of line comparison operations.
@ 2014-06-18  9:42 Ramana Radhakrishnan
  0 siblings, 0 replies; only message in thread
From: Ramana Radhakrishnan @ 2014-06-18  9:42 UTC (permalink / raw)
  To: gcc-patches@gcc.gnu.org ;, libstdc++; +Cc: paolo.carlini

[-- Attachment #1: Type: text/plain, Size: 725 bytes --]

PR61536 is a case where linking fails on arm-linux-gnueabi* and 
arm-eabi* systems as the C++ ABI for ARM specifies out of line 
comparison operators for typeinfo.

Rev r211355 tightened the symbols exported by libstdc++ a bit too much 
which caused some carnage in the test results for arm-linux-gnueabihf.

Paolo proposed this on the bugzilla and asked if I could commit it. I've 
tweaked the comment slightly.

Tested on arm-none-linux-gnueabihf and verified the link time failures 
now disappear.

Applied to trunk.

Ramana

2014-06-18  Paolo Carlini  <paolo.carlini@oracle.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR libstdc++/61536
	* config/abi/pre/gnu.ver: Adjust for out of line comparisons.

[-- Attachment #2: p1.txt --]
[-- Type: text/plain, Size: 1028 bytes --]

diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index e7de756..63c9130 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -16,6 +16,18 @@
 ## You should have received a copy of the GNU General Public License along
 ## with this library; see the file COPYING3.  If not see
 ## <http://www.gnu.org/licenses/>.
+// By default follow the old inline rules to avoid ABI changes.
+// Logic similar to libsupc++/typeinfo (libstdc++/61536). See
+// commentary on out of line comparisons.
+
+#ifndef __GXX_TYPEINFO_EQUALITY_INLINE
+ #if !__GXX_WEAK__
+   #define __GXX_TYPEINFO_EQUALITY_INLINE 0
+  #else
+    #define __GXX_TYPEINFO_EQUALITY_INLINE 1
+  #endif
+#endif
+
 
 GLIBCXX_3.4 {
 
@@ -760,6 +772,11 @@ GLIBCXX_3.4 {
     _ZNKSt9type_info1*;
     _ZNSt9type_infoD*;
 
+#if !__GXX_TYPEINFO_EQUALITY_INLINE
+    _ZNKSt9type_info6before*;
+    _ZNKSt9type_infoeq*;
+#endif
+
     # std::exception
     _ZNKSt9exception4whatEv;
     _ZNSt9exceptionD*;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-06-18  9:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-18  9:42 [Patch libstdc++] PR61536 Export out of line comparison operations Ramana Radhakrishnan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).