svn commit: r401707 - head/graphics/alembic/files

Alexey Dokuchaev danfe at FreeBSD.org
Sun Nov 15 14:36:50 UTC 2015


Author: danfe
Date: Sun Nov 15 14:36:48 2015
New Revision: 401707
URL: https://svnweb.freebsd.org/changeset/ports/401707

Log:
  Unbreak the build on PowerPC, in a simple way: replace deprecated __sync_*
  function with corresponding __atomic_* counterpart and link with libatomic
  against GCC.  This should be no-op on Tier-1 architectures (against Clang),
  since that code branch is guarded by __GNUC__ >= 4 && __GNUC_MINOR__ >= 4.

Added:
  head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_CMakeLists.txt   (contents, props changed)
  head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_StreamManager.cpp   (contents, props changed)

Added: head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_CMakeLists.txt	Sun Nov 15 14:36:48 2015	(r401707)
@@ -0,0 +1,9 @@
+--- lib/Alembic/AbcCoreOgawa/CMakeLists.txt.orig	2015-01-15 18:28:49 UTC
++++ lib/Alembic/AbcCoreOgawa/CMakeLists.txt
+@@ -100,3 +100,6 @@ IF( NOT ALEMBIC_NO_TESTS )
+ 	ADD_SUBDIRECTORY( Tests )
+ ENDIF()
+ 
++IF( CMAKE_COMPILER_IS_GNUCXX )
++	TARGET_LINK_LIBRARIES( AlembicAbcCoreOgawa atomic )
++ENDIF()

Added: head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_StreamManager.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/alembic/files/patch-lib_Alembic_AbcCoreOgawa_StreamManager.cpp	Sun Nov 15 14:36:48 2015	(r401707)
@@ -0,0 +1,22 @@
+--- lib/Alembic/AbcCoreOgawa/StreamManager.cpp.orig	2015-01-15 18:28:49 UTC
++++ lib/Alembic/AbcCoreOgawa/StreamManager.cpp
+@@ -111,7 +111,8 @@ StreamIDPtr StreamManager::get()
+ 
+         newVal = oldVal & ~( 1 << (val - 1) );
+     }
+-    while ( !__sync_bool_compare_and_swap( &m_streams, oldVal, newVal ) );
++    while ( !__atomic_compare_exchange_n( &m_streams, &oldVal, newVal,
++        false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) );
+ 
+     return StreamIDPtr( new StreamID( this, ( std::size_t ) val - 1 ) );
+ }
+@@ -140,7 +141,8 @@ void StreamManager::put( std::size_t iSt
+         newVal = oldVal | ( 1 << iStreamID );
+ 
+     }
+-    while ( !__sync_bool_compare_and_swap( &m_streams, oldVal, newVal ) );
++    while ( !__atomic_compare_exchange_n( &m_streams, &oldVal, newVal,
++        false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) );
+ }
+ 
+ #else


More information about the svn-ports-all mailing list