diff -Naur alembic-1.7.9.orig/bin/AbcLs/AbcLs.cpp alembic-1.7.9/bin/AbcLs/AbcLs.cpp
--- alembic-1.7.9.orig/bin/AbcLs/AbcLs.cpp	2018-10-12 17:05:36.907226500 -0400
+++ alembic-1.7.9/bin/AbcLs/AbcLs.cpp	2018-10-12 17:07:03.914695000 -0400
@@ -52,11 +52,11 @@
 #include <sys/stat.h>
 
 // no unistd under visual studio
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include <unistd.h>
 #endif
 
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <locale>         // std::locale, std::isdigit
 // set up _S_ISDIR()
 #if !defined(S_ISDIR)
@@ -65,7 +65,7 @@
 #  endif
 #  define S_ISDIR(mode)    (mode&__S_IFDIR)
 #endif
-#endif // _MSC_VER
+#endif // _WIN32
 
 namespace Abc  = ::Alembic::Abc;
 namespace AbcA = ::Alembic::AbcCoreAbstract;
@@ -650,7 +650,7 @@
     act.sa_flags = SA_SIGINFO;
     sigaction(SIGSEGV, &act, NULL);
     /* signal if available */
-#elif defined(_POSIX_VERSION) || defined(_MSC_VER)
+#elif defined(_POSIX_VERSION) || defined(_WIN32)
     signal(SIGSEGV, segfault_sigaction);
 #else
 #error No signal interface available
diff -Naur alembic-1.7.9.orig/bin/AbcTree/AbcTree.cpp alembic-1.7.9/bin/AbcTree/AbcTree.cpp
--- alembic-1.7.9.orig/bin/AbcTree/AbcTree.cpp	2018-10-12 17:05:36.907226500 -0400
+++ alembic-1.7.9/bin/AbcTree/AbcTree.cpp	2018-10-12 17:07:29.598270300 -0400
@@ -50,7 +50,7 @@
 #include <sstream>
 #include <sys/stat.h>
 
-#ifdef _MSC_VER
+#ifdef _WIN32
 // set up _S_ISDIR()
 #if !defined(S_ISDIR)
 #  if defined( _S_IFDIR) && !defined( __S_IFDIR)
@@ -58,7 +58,7 @@
 #  endif
 #  define S_ISDIR(mode)    (mode&__S_IFDIR)
 #endif
-#endif // _MSC_VER
+#endif // _WIN32
 
 namespace Abc  = ::Alembic::Abc;;
 namespace AbcA = ::Alembic::AbcCoreAbstract;
diff -Naur alembic-1.7.9.orig/lib/Alembic/AbcCoreOgawa/ReadUtil.cpp alembic-1.7.9/lib/Alembic/AbcCoreOgawa/ReadUtil.cpp
--- alembic-1.7.9.orig/lib/Alembic/AbcCoreOgawa/ReadUtil.cpp	2018-10-12 17:05:37.136358800 -0400
+++ alembic-1.7.9/lib/Alembic/AbcCoreOgawa/ReadUtil.cpp	2018-10-12 17:07:58.767066200 -0400
@@ -36,7 +36,7 @@
 
 #include <Alembic/AbcCoreOgawa/ReadUtil.h>
 
-#if defined(_MSC_VER)
+#if defined(_WIN32)
 #  if defined(max)
 #    undef max
 #  endif
diff -Naur alembic-1.7.9.orig/lib/Alembic/AbcCoreOgawa/StreamManager.cpp alembic-1.7.9/lib/Alembic/AbcCoreOgawa/StreamManager.cpp
--- alembic-1.7.9.orig/lib/Alembic/AbcCoreOgawa/StreamManager.cpp	2018-10-12 17:05:37.151983900 -0400
+++ alembic-1.7.9/lib/Alembic/AbcCoreOgawa/StreamManager.cpp	2018-10-12 17:08:47.009950000 -0400
@@ -46,10 +46,10 @@
 #if !defined( ALEMBIC_LIB_USES_TR1 ) && __cplusplus >= 201103L
 #define COMPARE_EXCHANGE( V, COMP, EXCH ) V.compare_exchange_weak( COMP, EXCH, std::memory_order_seq_cst, std::memory_order_seq_cst )
 // Windows
-#elif defined( _MSC_VER )
+#elif defined( _WIN32 )
 #define COMPARE_EXCHANGE( V, COMP, EXCH ) (InterlockedCompareExchange64( &V, EXCH, COMP ) == COMP)
 
-Alembic::Util::int64_t ffsll( Alembic::Util::int64_t iValue )
+Alembic::Util::int64_t __builtin_ffsll( Alembic::Util::int64_t iValue )
 {
     if ( !iValue )
     {
@@ -138,7 +138,7 @@
     do
     {
         oldVal = m_streams;
-        val = ffsll( oldVal );
+        val = __builtin_ffsll( oldVal );
 
         if ( val == 0 )
         {
diff -Naur alembic-1.7.9.orig/lib/Alembic/Ogawa/IStreams.cpp alembic-1.7.9/lib/Alembic/Ogawa/IStreams.cpp
--- alembic-1.7.9.orig/lib/Alembic/Ogawa/IStreams.cpp	2018-10-12 17:05:37.245737200 -0400
+++ alembic-1.7.9/lib/Alembic/Ogawa/IStreams.cpp	2018-10-12 17:19:06.631149600 -0400
@@ -36,6 +36,8 @@
 #include <Alembic/Ogawa/IStreams.h>
 #include <fstream>
 #include <stdexcept>
+#include <cstring>
+#include <pthread.h>
 
 
 #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
@@ -45,13 +47,12 @@
     #include <fcntl.h>
     #include <unistd.h>
     #include <errno.h>
-    #include <cstring>
-
 #elif defined(_WIN32)
 
     #include <windows.h>
     #include <fcntl.h>
     #include <io.h>
+    #include <share.h>
     #include <sys/stat.h>
 
 #else
diff -Naur alembic-1.7.9.orig/lib/Alembic/Util/Foundation.h alembic-1.7.9/lib/Alembic/Util/Foundation.h
--- alembic-1.7.9.orig/lib/Alembic/Util/Foundation.h	2018-10-12 17:05:37.058224500 -0400
+++ alembic-1.7.9/lib/Alembic/Util/Foundation.h	2018-10-12 17:10:58.673701400 -0400
@@ -51,7 +51,6 @@
 #include <boost/foreach.hpp>
 #include <boost/unordered_map.hpp>
 
-// tr1 is not available in older versions of Visual Studio i.e. _MSC_VER <= 1600
 #elif defined(ALEMBIC_LIB_USES_TR1)
 #include <tr1/memory>
 #include <tr1/unordered_map>
@@ -83,7 +82,7 @@
 
 #include <Alembic/Util/Export.h>
 
-#ifdef _MSC_VER
+#ifdef _WIN32
 
 #ifndef WIN32_LEAN_AND_MEAN
 #define WIN32_LEAN_AND_MEAN
@@ -214,7 +213,7 @@
 };
 
 // inspired by boost::mutex
-#ifdef _MSC_VER
+#ifdef _WIN32
 
 class mutex : noncopyable
 {
diff -Naur alembic-1.7.9.orig/lib/Alembic/Util/Murmur3.cpp alembic-1.7.9/lib/Alembic/Util/Murmur3.cpp
--- alembic-1.7.9.orig/lib/Alembic/Util/Murmur3.cpp	2018-10-12 17:05:37.058224500 -0400
+++ alembic-1.7.9/lib/Alembic/Util/Murmur3.cpp	2018-10-12 17:11:28.885886900 -0400
@@ -41,7 +41,7 @@
 
 #ifdef __APPLE__
 #include <machine/endian.h>
-#elif !defined(_MSC_VER)
+#elif !defined(_WIN32)
 #include <endian.h>
 #endif
 
@@ -60,7 +60,7 @@
     uint64_t h2 = 0;
 
 
-#ifdef _MSC_VER
+#ifdef _WIN32
     uint64_t c1 = 0x87c37b91114253d5LL;
     uint64_t c2 = 0x4cf5ad432745937fLL;
 #else
@@ -230,7 +230,7 @@
     h1 += h2;
     h2 += h1;
 
-#ifdef _MSC_VER
+#ifdef _WIN32
     h1 ^= h1 >> 33;
     h1 *= 0xff51afd7ed558ccdLL;
     h1 ^= h1 >> 33;
diff -Naur alembic-1.7.9.orig/lib/Alembic/Util/PlainOldDataType.h alembic-1.7.9/lib/Alembic/Util/PlainOldDataType.h
--- alembic-1.7.9.orig/lib/Alembic/Util/PlainOldDataType.h	2018-10-12 17:05:37.058224500 -0400
+++ alembic-1.7.9/lib/Alembic/Util/PlainOldDataType.h	2018-10-12 17:12:15.454985300 -0400
@@ -40,10 +40,7 @@
 #include <Alembic/Util/Foundation.h>
 #include <Alembic/Util/Exception.h>
 
-// stdint.h is not in anything prior to Visual Studio 2010
-#if !defined(_MSC_VER) || _MSC_VER >= 1600
 #include <stdint.h>
-#endif
 
 namespace Alembic {
 namespace Util {
@@ -136,7 +133,6 @@
     return a != b.asBool();
 }
 
-#if !defined(_MSC_VER) || _MSC_VER >= 1600
 using ::uint8_t;
 using ::int8_t;
 using ::uint16_t;
@@ -145,16 +141,6 @@
 using ::int32_t;
 using ::uint64_t;
 using ::int64_t;
-#else
-typedef unsigned char           uint8_t;
-typedef signed char             int8_t;
-typedef unsigned short          uint16_t;
-typedef signed short            int16_t;
-typedef unsigned int            uint32_t;
-typedef int                     int32_t;
-typedef unsigned long long      uint64_t;
-typedef long long               int64_t;
-#endif
 
 typedef half                    float16_t;
 typedef float                   float32_t;
