Skip to content

Commit

Permalink
[folly] Fix build error C3861 (microsoft#12419)
Browse files Browse the repository at this point in the history
* [folly] Fix build error C3861

* Update CONTROL
  • Loading branch information
LilyWangL authored Jul 15, 2020
1 parent 38e1a64 commit 38d635a
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
3 changes: 2 additions & 1 deletion ports/folly/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Source: folly
Version: 2019.10.21.00-2
Version: 2019.10.21.00
Port-Version: 3
Homepage: https://github.com/facebook/folly
Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows
Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread, boost-smart-ptr
Expand Down
50 changes: 50 additions & 0 deletions ports/folly/folly_c3861.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
diff --git a/folly/portability/Builtins.h b/folly/portability/Builtins.h
index 971cb88..7894333 100644
--- a/folly/portability/Builtins.h
+++ b/folly/portability/Builtins.h
@@ -41,7 +41,7 @@ FOLLY_ALWAYS_INLINE void __builtin___clear_cache(char* begin, char* end) {
}
}

-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE int __builtin_clz(unsigned int x) {
unsigned long index;
return int(_BitScanReverse(&index, (unsigned long)x) ? 31 - index : 32);
@@ -93,7 +93,7 @@ FOLLY_ALWAYS_INLINE int __builtin_ctzll(unsigned long long x) {
return int(_BitScanForward64(&index, x) ? index : 64);
}
#endif
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)

FOLLY_ALWAYS_INLINE int __builtin_ffs(int x) {
unsigned long index;
@@ -119,15 +119,15 @@ FOLLY_ALWAYS_INLINE int __builtin_popcount(unsigned int x) {
return int(__popcnt(x));
}

-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
FOLLY_ALWAYS_INLINE int __builtin_popcountl(unsigned long x) {
static_assert(sizeof(x) == 4, "");
return int(__popcnt(x));
}
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
#endif

-#if !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #if !defined(_MSC_VER) || (_MSC_VER < 1923)
#if defined(_M_IX86)
FOLLY_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
return int(__popcnt((unsigned int)(x >> 32))) +
@@ -138,7 +138,7 @@ FOLLY_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
return int(__popcnt64(x));
}
#endif
-#endif // !defined(_MSC_VER) || (_MSC_VER < 1923)
+// #endif // !defined(_MSC_VER) || (_MSC_VER < 1923)

FOLLY_ALWAYS_INLINE void* __builtin_return_address(unsigned int frame) {
// I really hope frame is zero...
1 change: 1 addition & 0 deletions ports/folly/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ vcpkg_from_github(
disable-non-underscore-posix-names.patch
boost-1.70.patch
fix-addbit.patch
folly_c3861.patch
)

file(COPY
Expand Down

0 comments on commit 38d635a

Please sign in to comment.