- Apr 29, 2019
-
-
Alexander Turenko authored
It is important to have testing jobs that build the project with both -Werror and -O2 to keep the code clean. -O2 is needed, because some compiler warnings are available only after extra analyzing passes that are disabled with lesser optimization levels. The first attempt to add -Werror for release testing jobs was made in da505ee7 ('Add -Werror for CI (1.10 part)'), but it mistakely doesn't enable -O2 for RelWithDebInfoWError build. It is possible to fix it in this way: | --- a/cmake/compiler.cmake | +++ b/cmake/compiler.cmake | @@ -113,10 +113,14 @@ set (CMAKE_C_FLAGS_DEBUG | "${CMAKE_C_FLAGS_DEBUG} ${CC_DEBUG_OPT} -O0") | set (CMAKE_C_FLAGS_RELWITHDEBINFO | "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CC_DEBUG_OPT} -O2") | +set (CMAKE_C_FLAGS_RELWITHDEBINFOWERROR | + "${CMAKE_C_FLAGS_RELWITHDEBINFOWERROR} ${CC_DEBUG_OPT} -O2") | set (CMAKE_CXX_FLAGS_DEBUG | "${CMAKE_CXX_FLAGS_DEBUG} ${CC_DEBUG_OPT} -O0") | set (CMAKE_CXX_FLAGS_RELWITHDEBINFO | "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CC_DEBUG_OPT} -O2") | +set (CMAKE_CXX_FLAGS_RELWITHDEBINFOWERROR | + "${CMAKE_CXX_FLAGS_RELWITHDEBINFOWERROR} ${CC_DEBUG_OPT} -O2") | | unset(CC_DEBUG_OPT) However I think that a build type (and so `tarantool --version`) should not show whether -Werror was passed or not. So I have added ENABLE_WERROR CMake option for that. It can be set like so: | cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON Enabled the option in testing Travis-CI jobs with the RelWithDebInfo build type. Deploy jobs don't include it as before. Fixed all -Wmaybe-uninitialized and -Wunused-result warnings. A few notes about the fixes: * net.box does not validate received data in general, so I don't add a check for autoincrement IDs too. Set the ID to INT64_MIN, because this value is less probably will appear here in a normal case and so is the best one to signal a user that something probably going wrongly. * xrow_decode_*() functions could read uninitialized data from row->body[0].iov_base in xrow_on_decode_err() when printing a hex code for a row. It could be possible when the received msgpack was empty (row->bodycnt == 0), but there were expected keys (key_map != 0). * getcwd() is marked with __attribute__((__warn_unused_result__)) in glibc, but the buffer filled by this call is not used anywhere and so just removed. * Vinyl -Wmaybe-uninitialized warnings are false positive ones. Added comments and quotes into .travis.yml to ease reading. Removed "test" word from the CentOS 6 job name, because we don't run tests on this distro (disabled in the RPM spec). Fixes #4178.
-
- Mar 15, 2019
-
-
Alexander V. Tikhonov authored
Fixed Mojave Mac build with setting MACOSX_DEPLOYMENT_TARGET environment variable for LuaJIT's Makefile. This variable specifies the minimum version of OS X on which the target binaries are to be deployed. The reason why we need to set MACOSX_DEPLOYMENT_TARGET to at least 10.6 is that 10.4 SDK (which is set by default in LuaJIT's Makefile) is not longer included in Mac OS X Mojave 10.14. See also https://github.com/LuaJIT/LuaJIT/issues/484 We already set -Wl,-macosx_version_min,10.6 (-macosx_version_min and MACOSX_DEPLOYMENT_TARGET are synonymous), but it affects only a linker. We possibly should remove -macosx_version_min, because it superseded by MACOSX_DEPLOYMENT_TARGET, but it should be done with verification that the original problem really fixed by the new way to set a deployment target. This is not part of this patch. Removed virtualenv usage in CI for OS X (so pip just installs packages into a system), because OS X Mojave 10.14 does not offer virtualenv by default. Fixed #3797
-
- Dec 24, 2018
-
-
Alexander Turenko authored
The build time error is confusing for users. The patch makes the error explicit and moves it to the cmake stage. Follow up of #3070.
-
- Dec 21, 2018
-
-
Vladislav Shpilevoy authored
-
Alexander Turenko authored
LLVM changes the API in the compiler-rt commit [1]. According to the date of the commit it is between clang-3.9.0 and clang-3.9.1. [1]: https://github.com/llvm-mirror/compiler-rt/commit/0b95585616bd28fc0b738289bcc5f7887d7c304e Fixes #3070.
-
- Nov 03, 2018
-
-
Alexander Turenko authored
FreeBSD 10.4 has no libdl.so. Fixes #3750.
-
- Oct 25, 2018
-
-
AKhatskevich authored
Added -DENABLE_LTO=ON/OFF cmake option, OFF by default. LTO speeds up cpu-intensive workloads by up to 20% (see [1] and [2]). Requirements to enable LTO: - cmake >= 3.9; - Linux: ld.bfd / ld.gold from binutils >= 2.31 (or later 2.30) (gold >= 1.15); - Mac OS: xcode >= 8 (earlier versions are not tested). The requirement of the recent ld version is due to bug with exporting symbols from dynamic list when LTO is enabled, see [3]. Note: -Wlto-type-mismatch on GCC (enabled by default with -flto) gives namy warnings. Filed [4] to investigate it. Note: LuaJIT will be compiled w/o LTO despite the option set, filed [5]. [1]: https://github.com/tarantool/tarantool/wiki/performance-research [2]: https://gist.github.com/Khatskevich/31a2da6ab46ce903120e7a03d65966db [3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84901 [4]: https://github.com/tarantool/tarantool/issues/3742 [5]: https://github.com/tarantool/tarantool/issues/3743 Closes #3117 f
-
- Oct 05, 2018
-
-
Alexander Turenko authored
Added MAKE_BUILD_TYPE=RelWithDebInfoWError option, which means enabling -DNDEBUG=1, -O2 and -Wall -Wextra -Werror. This ensures we have clean release build without warnings. Fixed found -Wunused-variable and -Wunused-parameter warnings. Part of #3238.
-
- Sep 20, 2018
-
-
Alexander Turenko authored
The problem is that clang does not support -Wno-cast-function-type flag. It is the regression from 8c538963. Follow up of #3685. Fixes #3701.
-
- Sep 10, 2018
-
-
Kirill Yukhin authored
Since addition of -fopenmp to compiler also means addition of -lgomp to the link stage, pass -fno-openmp to the linking stage in case of static build. In that case OMP functions are statically linked into libmisc. Also, emit error if trying to perform static build using clang.
-
- Sep 06, 2018
-
-
Konstantin Osipov authored
-
Georgy Kirichenko authored
A possibility to build tarantool with included library dependencies. Use the flag -DBUILD_STATIC=ON to build statically against curl, readline, ncurses, icu and z. Use the flag -DOPENSSL_USE_STATIC_LIBS=ON to build with static openssl Changes: * Add FindOpenSSL.cmake because some distributions do not support the use of openssl static libraries. * Find libssl before curl because of build dependency. * Catch all bundled libraries API and export then it in case of static build. * Rename crc32 internal functions to avoid a name clash with linked libraries. Notes: * Bundled libyaml is not properly exported, use the system one. * Dockerfile to build static with docker is included Fixes #3445
-
- Aug 21, 2018
-
-
Konstantin Belyavskiy authored
Fixing build under FreeBSD: Undefined symbol "iconv_open" Add compile time build check with FindICONV.cmake and a wrapper to import relevant symbol names with include file. Closes #3441
-
- Aug 02, 2018
-
-
Eugine Blikh authored
No more `include/yaml.h` and `lib/libyaml_static.a` installs. closes gh-3547
-
- Mar 01, 2018
-
-
Konstantin Osipov authored
If curl does not have SSL support, don't panic, honor CURL_FIND_REQUIRED variable, and panic only if it's set. Correct the grammar in the error message.
-
Konstantin Belyavskiy authored
On MAC several old curl versions don't support SSL by default. Try to check it and print error message if so. Close #3065
-
- Jan 27, 2018
-
-
IlyaMarkovMipt authored
-
- Oct 13, 2017
-
-
Alexandr Lyapunov authored
Fast ucol_strcollUTF8 function was introduced in ICU 50. In older ICU versions we have to use slower ucol_strcollIter with properly initialized UTF8 iterators. Fix #2820
-
- Oct 09, 2017
-
-
Roman Tsisyk authored
-
- Oct 06, 2017
-
-
Alexandr Lyapunov authored
-
- Oct 05, 2017
-
-
Vladislav Shpilevoy authored
-
- Sep 26, 2017
-
-
Alexander Turenko authored
The option is '-DENABLE_BUNDLED_ZSTD' and defaults to ON. There are two goals of making this conditional, both related to building Tarantool on Gentoo Linux from an ebuild: * Avoid bundled ZStd building issue w/o pay to investivage it. * Allow user to choose between system and bundled library.
-
- Sep 22, 2017
-
-
Roman Tsisyk authored
Apple's version of libcurl is outdated and buggy. Use libcurl from homebrew by default. Closes #2772
-
- Sep 18, 2017
-
-
Georgy Kirichenko authored
Speed up zstd as much as possible.
-
Georgy Kirichenko authored
Update zstd submodule to v1.3.1 version.
-
- Sep 12, 2017
-
-
Roman Tsisyk authored
The fallthrough attribute with a null statement serves as a fallthrough statement. It hints to the compiler that a statement that falls through to another case label, or user-defined label in a switch statement is intentional and thus the -Wimplicit-fallthrough warning must not trigger. The fallthrough attribute may appear at most once in each attribute list, and may not be mixed with other attributes. It can only be used in a switch statement (the compiler will issue an error otherwise), after a preceding statement and before a logically succeeding case label, or user-defined label. https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/
-
- Aug 22, 2017
-
-
Roman Tsisyk authored
getopt_long() is available on all supported platforms. Get rid of legacy gopt and use getopt_long(). Incompatible changes: * `tarantool --version --no-such-option` printed "unrecognized option '--no-such-option'", now it displays version. `tarantool --no-such-option --version` still prints an error message. Needed for #1265
-
- Aug 03, 2017
-
-
Roman Tsisyk authored
Add an option to enable LuaJIT's GC64 mode and enable this option by default on OS X. Closes #2643
-
Roman Tsisyk authored
LuaJIT has some configuration flags which can be switched via -DLUAJIT_USE_OPTION defines, e.g. USE_ASAN or USE_VALGRIND. Before this patch these definitions were added by CMake to XCFLAGS variable and passed to LuaJIT's Makefile. However, some of these flags also affect the content of lj_xxx.h internal header files, which were included by Tarantool (see utils.c) and compiled WITHOUT proper flags. This situation might lead to inconsistent ABI between compiled libluajit.a and Tarantool. This patch adds all LUAJIT_USE_XXX defines to CMake's COMPILE_FLAGS in order to enable these flags globally, then parses COMPILE_FLAGS and adds them to LuaJIT's XCFLAGS. Needed for #2643
-
- Jul 28, 2017
-
-
Vladislav Shpilevoy authored
-
- Jul 27, 2017
-
-
Roman Tsisyk authored
Add missing #include <trivia/config.h> Fixes #2635
-
- Jul 24, 2017
-
-
Georgy Kirichenko authored
Remove libbfd from dependencies and use libunwind for stack traces. Closes #2103
-
- Jul 20, 2017
-
-
Roman Tsisyk authored
Now module.h is autogenerated automatically on `make all` if one or more source header files have changed. Closes #2481
-
- Jul 10, 2017
-
-
alyapunov authored
Now open MP sort is used for any size of an array. For small arrays it's an overkill and even can cause overhead due to thread pool creation. Invoke open MP sort only for big arrays and use old good single-thread qsort for small arrays. Fix #2431
-
- May 29, 2017
-
-
Roman Tsisyk authored
In context of #2312 See #1906
-
- Mar 23, 2017
-
-
Roman Tsisyk authored
* Supress warnings in third-party code. * Fix false-positive "variable may be used uninitialized in this function" * Add MAYBE_UNUSED to variables used only for assertions * Fix compilation on GCC 6.3.0 20170205 * Fix compilation on GCC 7.0.1 20170316 * Fix compilation on Clang 5.0.0-svn294894-1
-
- Mar 14, 2017
-
-
Roman Tsisyk authored
Add missing -isysroot flag for LuaJIT on macOS. Fixes #2091
-
- Feb 21, 2017
-
-
Roman Tsisyk authored
* Move platform-specific defines to tt_pthread.h * Set sched.coro.stack only with ENABLE_ASAN Please note that pthread_getattr_np() + pthread_attr_destroy() combination is totaly broken on Glibc 2.12 (RHELL 6.x). Fixes #2085
-
- Feb 15, 2017
-
-
Roman Tsisyk authored
Sophia was an experimental storage engine in 1.6.x. Please use 'vinyl' engine in Tarantool 1.7 instead. Closes #2040
-
Roman Tsisyk authored
-