summaryrefslogtreecommitdiff
path: root/port/win
diff options
context:
space:
mode:
authorPeter Dillinger <peterd@fb.com>2022-02-04 17:12:03 -0800
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2022-02-04 17:13:10 -0800
commitfd3e0f43b3cd041c38e37543e0b616d18ca55179 (patch)
tree626664991430abdbc4fc9928aba03486150dc3ac /port/win
parent42c8afd85a12935fdeddf62acccbbf5e39a84504 (diff)
Require C++17 (#9481)
Summary: Drop support for some old compilers by requiring C++17 standard (or higher). See https://github.com/facebook/rocksdb/issues/9388 First modification based on this is to remove some conditional compilation in slice.h (also better for ODR) Also in this PR: * Fix some Makefile formatting that seems to affect ASSERT_STATUS_CHECKED config in some cases * Add c_test to NON_PARALLEL_TEST in Makefile * Fix a clang-analyze reported "potential leak" in lru_cache_test * Better "compatibility" definition of DEFINE_uint32 for old versions of gflags * Fix a linking problem with shared libraries in Makefile (`./random_test: error while loading shared libraries: librocksdb.so.6.29: cannot open shared object file: No such file or directory`) * Always set ROCKSDB_SUPPORT_THREAD_LOCAL and use thread_local (from C++11) * TODO in later PR: clean up that obsolete flag * Fix a cosmetic typo in c.h (https://github.com/facebook/rocksdb/issues/9488) Pull Request resolved: https://github.com/facebook/rocksdb/pull/9481 Test Plan: CircleCI config substantially updated. * Upgrade to latest Ubuntu images for each release * Generally prefer Ubuntu 20, but keep a couple Ubuntu 16 builds with oldest supported compilers, to ensure compatibility * Remove .circleci/cat_ignore_eagain except for Ubuntu 16 builds, because this is to work around a kernel bug that should not affect anything but Ubuntu 16. * Remove designated gcc-9 build, because the default linux build now uses GCC 9 from Ubuntu 20. * Add some `apt-key add` to fix some apt "couldn't be verified" errors * Generally drop SKIP_LINK=1; work-around no longer needed * Generally `add-apt-repository` before `apt-get update` as manual testing indicated the reverse might not work. Travis: * Use gcc-7 by default (remove specific gcc-7 and gcc-4.8 builds) * TODO in later PR: fix s390x "Assembler messages: Error: invalid switch -march=z14" failure AppVeyor: * Completely dropped because we are dropping VS2015 support and CircleCI covers VS >= 2017 Also local testing with old gflags (out of necessity when using ROCKSDB_NO_FBCODE=1). Reviewed By: mrambacher Differential Revision: D33946377 Pulled By: pdillinger fbshipit-source-id: ae077c823905b45370a26c0103ada119459da6c1
Diffstat (limited to 'port/win')
-rw-r--r--port/win/port_win.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/port/win/port_win.h b/port/win/port_win.h
index 98c53cf17..a1d8e02bf 100644
--- a/port/win/port_win.h
+++ b/port/win/port_win.h
@@ -60,10 +60,9 @@ using ssize_t = SSIZE_T;
#ifdef _MSC_VER
#define __attribute__(A)
-// Thread local storage on Linux
-// There is thread_local in C++11
+// thread_local is part of C++11 and later (TODO: clean up this define)
#ifndef __thread
-#define __thread __declspec(thread)
+#define __thread thread_local
#endif
#endif