forked from apache/kudu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
68 lines (46 loc) · 2.08 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
System Requirements
------------------------------------------------------------
The following dependencies are necessary to build kudu:
- gcc 4.4 or higher
- boost 1.41 or higher including boost::thread
- cmake 2.8.7
Earlier versions of each of these may work, but have not recently
been tested.
Downloading thirdparty dependencies
------------------------------------------------------------
$ cd thirdparty/
$ ./download-thirdparty.sh
Building thirdparty dependencies
------------------------------------------------------------
$ cd thirdparty/
$ ./build-thirdparty.sh
This builds the thirdparty dependencies and installs them into
thirdparty/installed/
If you are looking to manually run the protobuf compiler, the pprof tool,
etc, you can find these in thirdparty/installed/bin/
Building kudu
------------------------------------------------------------
# Add ./thirdparty/installed/bin to your $PATH before other parts of
# $PATH that may contain cmake, such as /usr/bin
$ cmake .
$ make -j4
$ make test
Running tests with the clang AddressSanitizer enabled
------------------------------------------------------------
AddressSanitizer is a nice clang feature which can detect many types of memory
errors. The Jenkins setup for kudu runs these tests automatically on a regular
basis, but if you make large changes it can be a good idea to run it locally
before pushing. To do so, you'll need a local install of clang.
$ rm -Rf CMakeCache.txt CMakeFiles/
$ CXX=/opt/bin/clang++ cmake -DKUDU_USE_ASAN=1 . # or whatever your path to clang++
$ make -j
$ make test
The tests will run significantly slower than without ASAN enabled, and if any
memory error occurs, the test that triggered it will fail. You can then use a
command like:
$ src/tablet/failing-test 2>&1 | asan_symbolize.py | c++filt | less
to get a proper symbolized stack trace. The asan_symbolize program can be found
in the llvm source distribution:
https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_symbolize.py
For more information on AddressSanitizer, please see:
http://clang.llvm.org/docs/AddressSanitizer.html