18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
authorStefan Teleman <stefan.teleman@oracle.com>
Wed, 11 Feb 2015 08:32:10 -0800
changeset 3768 34ddbee8e07b
parent 3767 cc60ec87153f
child 3770 ca450a806cc1
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2 18269130 S12 UL/b41 New Pythia build58.0 compiler detects failure in rtorrent-0.8.2
components/libtorrent/Makefile
components/libtorrent/patches/rlibtorrent-02-event-ports.patch
components/libtorrent/patches/rlibtorrent-04-sunpro.patch
components/rtorrent/Makefile
components/rtorrent/patches/rtorrent-01-solaris.patch
--- a/components/libtorrent/Makefile	Wed Feb 11 08:06:13 2015 -0800
+++ b/components/libtorrent/Makefile	Wed Feb 11 08:32:10 2015 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
 # we really need to use studio, mostly because that's what
@@ -66,7 +66,6 @@
 
 CXXFLAGS +=	$(studio_OPT)
 CXXFLAGS +=	-i
-CXXFLAGS +=	-xspace
 CXXFLAGS +=	$(studio_XREGS)
 
 CONFIGURE_OPTIONS  +=	--enable-shared
--- a/components/libtorrent/patches/rlibtorrent-02-event-ports.patch	Wed Feb 11 08:06:13 2015 -0800
+++ b/components/libtorrent/patches/rlibtorrent-02-event-ports.patch	Wed Feb 11 08:32:10 2015 -0800
@@ -1,3 +1,4 @@
+# replaced -fvisibility=hidden with -template=no%extdef in CXXFLAGS.
 diff -x configure -x aclocal.m4 -ru libtorrent-0.11.9/configure.ac libtorrent-0.11.9-new/configure.ac
 --- libtorrent-0.11.9/configure.ac	2007-10-25 09:48:32.000000000 +0000
 +++ libtorrent-0.11.9-new/configure.ac	2008-01-13 17:13:30.892756466 +0000
@@ -498,3 +499,23 @@
 +#endif // USE_PORTS
 +
 +}
+--- libtorrent-0.12.2/scripts/attributes.m4	2008-05-07 05:19:12.000000000 -0700
++++ libtorrent-0.12.2/scripts/attributes.m4	2015-01-29 08:45:29.333056494 -0800
[email protected]@ -62,7 +62,7 @@
+         AC_LANG_PUSH(C++)
+ 
+         tmp_CXXFLAGS=$CXXFLAGS
+-        CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
++        CXXFLAGS="$CXXFLAGS -template=no%extdef"
+ 
+ 	AC_CACHE_CHECK([if compiler supports __attribute__((visibility("default")))],
+ 		[cc_cv_attribute_visibility],
[email protected]@ -78,7 +78,7 @@
+ 
+ 	if test "x$cc_cv_attribute_visibility" = "xyes"; then
+ 		AC_DEFINE([SUPPORT_ATTRIBUTE_VISIBILITY], 1, [Define this if the compiler supports the visibility attributes.])
+-                CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
++                CXXFLAGS="$CXXFLAGS -template=no%extdef"
+ 		$1
+ 	else
+                 true
--- a/components/libtorrent/patches/rlibtorrent-04-sunpro.patch	Wed Feb 11 08:06:13 2015 -0800
+++ b/components/libtorrent/patches/rlibtorrent-04-sunpro.patch	Wed Feb 11 08:32:10 2015 -0800
@@ -1,3 +1,5 @@
+# Remove Studio C++ 12.3 specific patch for
+# src/protocol/peer_connection_leech.cc.
 --- rtorrent-0.8.2.orig/rak/string_manip.h	2008-05-07 08:19:12.000000000 -0400
 +++ rtorrent-0.8.2/rak/string_manip.h	2008-06-25 02:14:10.028329996 -0400
 @@ -62,7 +62,7 @@
@@ -390,28 +392,6 @@
  
    int length = result.second - buffer;
    char* copy = new char[length];
---- libtorrent-0.12.2.orig/src/protocol/peer_connection_leech.cc	2008-05-07 08:19:12.000000000 -0400
-+++ libtorrent-0.12.2/src/protocol/peer_connection_leech.cc	2008-06-24 15:19:28.492038823 -0400
[email protected]@ -697,7 +697,9 @@
-   }
- }
- 
-+#ifndef __SUNPRO_CC
- template<>
-+#endif
- void
- PeerConnection<Download::CONNECTION_INITIAL_SEED>::offer_chunk() {
-   // If bytes left to send in this chunk minus bytes about to be sent is zero,
[email protected]@ -718,7 +720,9 @@
-   m_data.bytesLeft = m_download->file_list()->chunk_index_size(index);
- }
- 
-+#ifndef __SUNPRO_CC
- template<>
-+#endif
- bool
- PeerConnection<Download::CONNECTION_INITIAL_SEED>::should_upload() {
-   // For initial seeding, check if chunk is well seeded now, and if so
 --- libtorrent-0.12.2.orig/src/protocol/handshake_manager.cc	2008-05-07 08:19:12.000000000 -0400
 +++ libtorrent-0.12.2/src/protocol/handshake_manager.cc	2008-06-24 15:11:50.179786185 -0400
 @@ -37,6 +37,7 @@
--- a/components/rtorrent/Makefile	Wed Feb 11 08:06:13 2015 -0800
+++ b/components/rtorrent/Makefile	Wed Feb 11 08:32:10 2015 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
 # we really need to use studio, mostly because that's what
@@ -62,7 +62,7 @@
 LDFLAGS += -L/usr/gnu/lib/$(MACH64) -R/usr/gnu/lib/$(MACH64)
 
 CXXFLAGS +=	-i
-CXXFLAGS +=	-xspace
+CXXFLAGS +=	-template=no%extdef
 CXXFLAGS +=	$(studio_XREGS)
 CXXFLAGS +=	-I/usr/include/ncurses
 CONFIGURE_OPTIONS.64 +=         --srcdir=$(BUILD_DIR_64)
--- a/components/rtorrent/patches/rtorrent-01-solaris.patch	Wed Feb 11 08:06:13 2015 -0800
+++ b/components/rtorrent/patches/rtorrent-01-solaris.patch	Wed Feb 11 08:32:10 2015 -0800
@@ -1,3 +1,4 @@
+# Removed Studio C++-specific patch for src/input/path_input.cc.
 --- rtorrent-0.8.2/src/input/input_event.cc.orig	2008-05-10 18:44:08.970350312 +1200
 +++ rtorrent-0.8.2/src/input/input_event.cc	2008-05-10 18:44:41.438283333 +1200
 @@ -37,6 +37,7 @@
@@ -17,8 +18,8 @@
      m_slotPressed(c);
  }
  
---- rtorrent-0.8.2/src/input/path_input.cc.orig	2008-05-08 00:19:11.000000000 +1200
-+++ rtorrent-0.8.2/src/input/path_input.cc	2008-05-10 18:46:38.159258850 +1200
+--- rtorrent-0.8.2/src/input/path_input.cc.orig	2008-05-07 05:19:11.000000000 -0700
++++ rtorrent-0.8.2/src/input/path_input.cc	2015-02-01 12:12:30.800473449 -0800
 @@ -42,7 +42,8 @@
  #include <rak/path.h>
  
@@ -29,7 +30,7 @@
  
  #include "path_input.h"
  
[email protected]@ -71,9 +72,12 @@
[email protected]@ -71,10 +72,13 @@
  }
  
  struct _transform_filename {
@@ -39,10 +40,23 @@
 +    stat(entry.d_name.c_str(), &s);
 +    if (s.st_mode & S_IFDIR) {
        entry.d_name += '/';
-+    }
    }
++  }
  };
  
+ void
[email protected]@ -109,7 +113,9 @@
+   mark_dirty();
+ 
+   // Only emit if there are more than one option.
+-  m_showNext = ++utils::Directory::iterator(r.first) != r.second;
++  utils::Directory::iterator itr(r.first);
++  ++itr;
++  m_showNext = itr != r.second;
+ 
+   if (m_showNext)
+     m_signalShowRange.emit(r.first, r.second);
+ 
 --- rtorrent-0.8.2/src/utils/directory.h.orig	2008-05-08 00:19:11.000000000 +1200
 +++ rtorrent-0.8.2/src/utils/directory.h	2008-05-10 18:40:49.485871875 +1200
 @@ -48,9 +48,7 @@