mirror of https://github.com/facebook/rocksdb.git
Fix windows build errors (rdtsc and fnptr) (#12008)
Summary: Combining best parts of https://github.com/facebook/rocksdb/issues/11794 and https://github.com/facebook/rocksdb/issues/11766, fixing the CircleCI config in the latter. I was going to amend the latter but wasn't granted access. Ideally this would be ported back to 8.4 branch and crc32c part into 8.3 branch. Pull Request resolved: https://github.com/facebook/rocksdb/pull/12008 Test Plan: CI Reviewed By: hx235 Differential Revision: D50616172 Pulled By: pdillinger fbshipit-source-id: fa7f778bc281e881a140522e774f480c6d1e5f48
This commit is contained in:
parent
0ff7665c95
commit
dc87847e65
|
@ -69,7 +69,7 @@ commands:
|
||||||
command: |
|
command: |
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
& $Env:CMAKE_BIN -G "$Env:CMAKE_GENERATOR" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE=1 -DSNAPPY=1 -DJNI=1 ..
|
& $Env:CMAKE_BIN -G "$Env:CMAKE_GENERATOR" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE="$Env:CMAKE_PORTABLE" -DSNAPPY=1 -DJNI=1 ..
|
||||||
cd ..
|
cd ..
|
||||||
echo "Building with VS version: $Env:CMAKE_GENERATOR"
|
echo "Building with VS version: $Env:CMAKE_GENERATOR"
|
||||||
msbuild.exe build/rocksdb.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64
|
msbuild.exe build/rocksdb.sln -maxCpuCount -property:Configuration=Debug -property:Platform=x64
|
||||||
|
@ -563,6 +563,23 @@ jobs:
|
||||||
no_output_timeout: 100m
|
no_output_timeout: 100m
|
||||||
- post-steps
|
- post-steps
|
||||||
|
|
||||||
|
build-windows-vs2022-avx2:
|
||||||
|
executor:
|
||||||
|
name: win/server-2022
|
||||||
|
size: 2xlarge
|
||||||
|
environment:
|
||||||
|
THIRDPARTY_HOME: C:/Users/circleci/thirdparty
|
||||||
|
CMAKE_HOME: C:/Program Files/CMake
|
||||||
|
CMAKE_BIN: C:/Program Files/CMake/bin/cmake.exe
|
||||||
|
CTEST_BIN: C:/Program Files/CMake/bin/ctest.exe
|
||||||
|
SNAPPY_HOME: C:/Users/circleci/thirdparty/snappy-1.1.8
|
||||||
|
SNAPPY_INCLUDE: C:/Users/circleci/thirdparty/snappy-1.1.8;C:/Users/circleci/thirdparty/snappy-1.1.8/build
|
||||||
|
SNAPPY_LIB_DEBUG: C:/Users/circleci/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
||||||
|
CMAKE_GENERATOR: Visual Studio 17 2022
|
||||||
|
CMAKE_PORTABLE: AVX2
|
||||||
|
steps:
|
||||||
|
- windows-build-steps
|
||||||
|
|
||||||
build-windows-vs2022:
|
build-windows-vs2022:
|
||||||
executor:
|
executor:
|
||||||
name: win/server-2022
|
name: win/server-2022
|
||||||
|
@ -576,6 +593,7 @@ jobs:
|
||||||
SNAPPY_INCLUDE: C:/Users/circleci/thirdparty/snappy-1.1.8;C:/Users/circleci/thirdparty/snappy-1.1.8/build
|
SNAPPY_INCLUDE: C:/Users/circleci/thirdparty/snappy-1.1.8;C:/Users/circleci/thirdparty/snappy-1.1.8/build
|
||||||
SNAPPY_LIB_DEBUG: C:/Users/circleci/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
SNAPPY_LIB_DEBUG: C:/Users/circleci/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
||||||
CMAKE_GENERATOR: Visual Studio 17 2022
|
CMAKE_GENERATOR: Visual Studio 17 2022
|
||||||
|
CMAKE_PORTABLE: 1
|
||||||
steps:
|
steps:
|
||||||
- windows-build-steps
|
- windows-build-steps
|
||||||
|
|
||||||
|
@ -592,6 +610,7 @@ jobs:
|
||||||
SNAPPY_INCLUDE: C:/Users/circleci/thirdparty/snappy-1.1.8;C:/Users/circleci/thirdparty/snappy-1.1.8/build
|
SNAPPY_INCLUDE: C:/Users/circleci/thirdparty/snappy-1.1.8;C:/Users/circleci/thirdparty/snappy-1.1.8/build
|
||||||
SNAPPY_LIB_DEBUG: C:/Users/circleci/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
SNAPPY_LIB_DEBUG: C:/Users/circleci/thirdparty/snappy-1.1.8/build/Debug/snappy.lib
|
||||||
CMAKE_GENERATOR: Visual Studio 16 2019
|
CMAKE_GENERATOR: Visual Studio 16 2019
|
||||||
|
CMAKE_PORTABLE: 1
|
||||||
steps:
|
steps:
|
||||||
- windows-build-steps
|
- windows-build-steps
|
||||||
|
|
||||||
|
@ -613,7 +632,7 @@ jobs:
|
||||||
- post-steps
|
- post-steps
|
||||||
|
|
||||||
build-linux-java-pmd:
|
build-linux-java-pmd:
|
||||||
machine:
|
machine:
|
||||||
image: ubuntu-2004:202111-02
|
image: ubuntu-2004:202111-02
|
||||||
resource_class: large
|
resource_class: large
|
||||||
environment:
|
environment:
|
||||||
|
@ -887,6 +906,7 @@ workflows:
|
||||||
- build-linux-mini-crashtest
|
- build-linux-mini-crashtest
|
||||||
jobs-windows:
|
jobs-windows:
|
||||||
jobs:
|
jobs:
|
||||||
|
- build-windows-vs2022-avx2
|
||||||
- build-windows-vs2022
|
- build-windows-vs2022
|
||||||
- build-windows-vs2019
|
- build-windows-vs2019
|
||||||
- build-cmake-mingw
|
- build-cmake-mingw
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#ifdef __SSE4_2__
|
#ifdef __SSE4_2__
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
|
#define _rdtsc() __rdtsc()
|
||||||
#else
|
#else
|
||||||
#include <x86intrin.h>
|
#include <x86intrin.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1117,7 +1117,13 @@ static inline Function Choose_Extend() {
|
||||||
}
|
}
|
||||||
#elif defined(__SSE4_2__) && defined(__PCLMUL__) && !defined NO_THREEWAY_CRC32C
|
#elif defined(__SSE4_2__) && defined(__PCLMUL__) && !defined NO_THREEWAY_CRC32C
|
||||||
// NOTE: runtime detection no longer supported on x86
|
// NOTE: runtime detection no longer supported on x86
|
||||||
(void)ExtendImpl<DefaultCRC32>; // suppress unused warning
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(disable: 4551)
|
||||||
|
#endif
|
||||||
|
(void)ExtendImpl<DefaultCRC32>; // suppress unused warning
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(default: 4551)
|
||||||
|
#endif
|
||||||
return crc32c_3way;
|
return crc32c_3way;
|
||||||
#else
|
#else
|
||||||
return ExtendImpl<DefaultCRC32>;
|
return ExtendImpl<DefaultCRC32>;
|
||||||
|
|
Loading…
Reference in New Issue