diff options
author | Peter Dillinger <peterd@fb.com> | 2022-02-04 17:12:03 -0800 |
---|---|---|
committer | Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com> | 2022-02-04 17:13:10 -0800 |
commit | fd3e0f43b3cd041c38e37543e0b616d18ca55179 (patch) | |
tree | 626664991430abdbc4fc9928aba03486150dc3ac /port/win | |
parent | 42c8afd85a12935fdeddf62acccbbf5e39a84504 (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.h | 5 |
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 |