Commit Graph

320 Commits

Author SHA1 Message Date
Matt Benjamin
5f869450ea cmake: find and build bundled boost
Build Boost using the src/boost submodule, unless overridden
by -DWITH_SYSTEM_BOOST.

If -DBOOST_J=<n> is provided, builds Boost with <n> jobs.

Boost builds in the configured Build directory.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-11-07 15:56:29 -05:00
Yehuda Sadeh
45722ecbe4 Merge pull request #11343 from ceph/wip-civetweb-1.8
Update version of civetweb to 1.8
2016-11-05 12:53:23 -07:00
Yuri Weinstein
ef087a488d Merge pull request #11531 from yuyuyu101/wip-rdma
msg/async: ibverbs/rdma support

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Mellanox <adirl@mellanox.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Mark Nelson <mnelson@redhat.com>
2016-11-04 07:43:38 -07:00
Marcus Watts
3252c10a15 Updated version of civetweb.
Fixes here:
Pull civetweb from new branch/commit.
Build civetweb.c w/ USE_IPV6 (w/o depending on extra ceph-only build
	logic inside of civetweb.)
Make several things "const" to please the compiler.
Remap port string at '+' -> ,; to avoid , overload.
Use new civetweb options validate_http_method=no canonicalize_url_path=no

Signed-off-by: Marcus Watts <mwatts@redhat.com>
2016-11-03 13:11:54 -07:00
Haomai Wang
cf23acef71 msg/async/rdma: add build ops
Signed-off-by: Haomai Wang <haomai@xsky.com>
2016-11-01 15:34:04 +08:00
Radoslaw Zarzynski
46a44646e8 rgw: make the ASIO front-end compilation optional.
This is because of versioning issues between Boost and Beast
on CentOS 7. It is intended that this patch will be reverted
after merging the in-tree Boost facility.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
2016-10-21 22:57:23 +02:00
Sage Weil
d30ee64fc7 Merge pull request #11500 from liewegas/wip-lttng
CMakeLists.txt: enable LTTNG by default

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-10-18 21:38:40 -05:00
Kefu Chai
7661da65bf Merge pull request #11481 from ddiss/cmake_rgw_deps
cmake: check WITH_RADOSGW for fcgi and expat dependencies

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-10-18 20:40:59 +08:00
Sage Weil
9a8bcf8fbf Merge remote-tracking branch 'gh/kraken' 2016-10-17 13:35:45 -04:00
Jenkins Build Slave User
697fe64f9f 11.0.2 2016-10-17 11:16:50 +00:00
Sage Weil
09a2383673 CMakeLists.txt: enable LTTNG by default
This makes dev builds more closely match package builds.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-10-14 13:54:38 -04:00
David Disseldorp
d5b41b7647 cmake: check WITH_RADOSGW for fcgi and expat dependencies
The fcgi and expat libraries are only used by rgw, so only make them
hard requirements if WITH_RADOSGW is set.

Signed-off-by: David Disseldorp <ddiss@suse.de>
2016-10-13 18:48:21 +02:00
Bassam Tabbara
ca9946d2b5 cmake: find gperftools package for tcmalloc_minimal too
Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
2016-10-11 10:12:52 -07:00
Jenkins Build Slave User
676cd2976f 11.0.1 2016-10-11 16:27:57 +00:00
John Spray
b3189d6824 cmake: update for ceph-mgr
Signed-off-by: John Spray <john.spray@redhat.com>
2016-09-29 17:26:56 +01:00
Casey Bodley
1a76324981 fio: generalize for other ObjectStores
* renamed target to fio_ceph_objectstore
* moved into src/test/fio subdirectory
* added to cmake build
* added support for DDIR_READ
* added required fio option 'conf' to load a ceph configuration file
* added multiple collections per job to simulate parallelism from pgs
* creates objects of the appropriate size on setup
* added support for multiple jobs that share an ObjectStore instance

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-09-13 11:02:17 -04:00
Ricardo Dias
a8f8598a73
cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries
Signed-off-by: Ricardo Dias <rdias@suse.com>
2016-09-09 14:12:44 +01:00
Kefu Chai
2ed44f993f cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake
find_package(lttng-ust REQUIRED) fails to find the lttng library without
this change. because find_path(LTTNG_LIBRARY_DIR ...) does not search
in the default library paths. and the second mode of
FIND_PACKAGE_HANDLE_STANDARD_ARGS() does not stop the cmake with a fatal
message, even some of the required vars are missing. so use the
implemetantion from cmake upstream.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-30 15:51:51 +08:00
Josh Durgin
aaac836380 Merge pull request #10208 from BlaXpirit/cmake-py3
Include Python 3 bindings into the cmake build and make packages for them

Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-08-12 16:30:35 -07:00
Oleh Prypin
5683a8259b cmake: Also build Python bindings for Python 3
Signed-off-by: Oleh Prypin <oleh@pryp.in>
2016-08-11 16:36:57 +03:00
Kefu Chai
96fdb6914a cmake: cleanup Findleveldb.cmake
* and reference leveldb library and include dir with fullpath

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-11 14:53:02 +08:00
Kefu Chai
6c12edbf9d cmake: cleanup Findgperftools.cmake
* remove Findtcmalloc.cmake, use Findgperftools.cmake instead.
* tcmalloc is packaged in gperftools-dev, so we can check them in a single
  place.
* fix the check of heap-profiler.h, we should enable the check as long
  as tcmalloc is enabled or profiler is enabled.
* only check gperftools headers in "include/gperftools", and do not
  "include/google" anymore. as we only support the distros which
  shipping recent gperftools-dev package with "include/gperftools".
  and "google/*.h" are deprecated.
* set ALLOC_LIBS with GPERFTOOLS_TCMALLOC_LIBRARY, so we can link
  against tcmalloc with full path.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-11 14:06:39 +08:00
Kefu Chai
8bac1c1eeb cmake: do not reference undefined variables
* AIO_LIBS is now named AIO_LIBARIES, and there is not point to print
  out its path
* USE_NSS is not defined if NSS is not checked, so if(USE_NSS) is better
  here.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-29 23:12:33 +08:00
Kefu Chai
221c47d349 cmake: set policies
this makes sure we are compatible with latest and future cmake

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-29 23:12:33 +08:00
Kefu Chai
8268d1ba6a cmake: do not link against profiler if gperftools is found
this behaviour matches the autotools. and we should not enable profiling
unless asked to do so.

Fixes: http://tracker.ceph.com/issues/16804
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 16:22:20 +08:00
Kefu Chai
f8553f3ab9 cmake: do not include undefind paths
for example
```
include_directories(${LEVELDB_PREFIX}/include)
```
does not make sense if `LEVELDB_PREFIX` is not defined.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:40:30 +08:00
Kefu Chai
e21d98aed4 cmake: cleanup FindOpenLdap.cmake
* use find_package_handle_standard_args() and remove unused bits.
* rename OPENLDAP_LIBS to OPENLDAP_LIBRARIES, to be consistent with
  find_package() modules.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:39:01 +08:00
Kefu Chai
3170f16e86 cmake: do not check libuuid anymore
libuuid dependency is not found in ceph.spec.in or debian/control.
and we are not using libuuid since 62bfc7a.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:39:01 +08:00
Kefu Chai
af1598a3b3 Merge pull request #10352 from wjwithagen/wip-wjw-freebsd-cmake-2
cmake: work to get inital FreeBSD stuff

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-24 18:18:45 +08:00
Willem Jan Withagen
a38a7fa198 CMakeLists.txt: Add FreeBSD isms
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2016-07-20 15:57:41 +02:00
Kefu Chai
ec84d7169b cmake: CMAKE_MODULE_PATH is a list and empty by default
we should not reference it using ${CMAKE_MODULE_PATH} before assigning
to it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-20 15:10:48 +08:00
Kefu Chai
636522b669 cmake: use FindBacktrace instead of Findexecinfo
always better to use upstream cmake modules.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-20 14:47:52 +08:00
Kefu Chai
ce5724effb cmake: add a "tests" target to build tests
please note "make test" is used by cmake to run tests, so we cannot just
repurpose it to *build* them.

* AddCephTest.cmake: depends on "tests"
* CMakeLists.txt: let "check" depend on "tests"
* src/CMakeLists.txt: update the run-tox tests
* run-make-check.sh: use "make tests" and "ctest" instead of "make check"
* ceph-detect-init/CMakeLists.txt: let "tests" depend on
    "ceph-detect-init"
* ceph-disk/CMakeLists.txt: let "tests" depend on "ceph-disk"

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-16 10:57:12 +08:00
Kefu Chai
2e7c72d8e8 cmake: do not check for availability of static_cast<> anymore
it's implied by C++11 compliance.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-13 17:23:11 +08:00
Kefu Chai
1a86184260 cmake: use CHECK_STRUCT_HAS_MEMBER for checking member variables in struct
we were using CHECK_CXX_SOURCE_COMPILES() for this purpose, which was a
little bit clumsy.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-13 17:13:20 +08:00
Kefu Chai
5e58249362 cmake: fix the detection of curl_multi_wait()
it was broken by b5bb77d5

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-11 21:29:11 +08:00
Kefu Chai
654d86fe2b Merge pull request #9763 from dx9/wip-pthread-np
compat: add abstractions for non portable pthread name funcs

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-11 11:46:47 +08:00
Kefu Chai
07387eb9af Merge pull request #10186 from ceph/wip-cmake-no-with-mds
cmake: remove WITH_MDS option

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-08 11:37:04 +08:00
Ali Maredia
cfcf0706f2 cmake: remove option
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-07-07 14:31:32 -04:00
Kefu Chai
b5bb77d566 cmake: use the stock FindCURL.cmake
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-07 23:26:02 +08:00
Kefu Chai
3646fa5c6b cmake: use the stock FindEXPAT.cmake
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-07 23:26:02 +08:00
John Coyle
3ba630636d compat: add abstractions for non portable pthread name funcs
Supports GNU, FreeBSD, OSX, and Alpine.

Signed-off-by: John Coyle <dx9err@gmail.com>
2016-07-04 11:19:51 -04:00
Kefu Chai
5850687875 cmake: use selinux/devel/Makefile for building selinux policy
was using selinux/devel/include/Makefile, which was wrong.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-30 19:27:44 +08:00
Kefu Chai
41061ce769 cmake: install systemd files
add an option "WITH_SYSTEMD", off by default

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-30 19:27:43 +08:00
Matt Benjamin
83e66809e9 cmake: rework NSS and SSL
The cmake build should select NSS or CryptoPP consistently with
current autoconf logic, as used in our RHEL builds (-DWITH_NSS),
and the SSL linkage must match (for NSS, -lssl3).

With this change, there is no direct linkage with libssl when NSS
is selected (I still see indirect linkage via libcurl, in turn
via libssh2, looking into that).

With guidance from upstream and downstream, NSS builds are now
selected by default.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-06-29 12:36:46 -04:00
Kefu Chai
6b12a395eb cmake: use CMAKE_POSITION_INDEPENDENT_CODE property instead of -fPIC
use the global setting of CMAKE_POSITION_INDEPENDENT_CODE instead of
hardwiring the CMAKE_C_FLAGS with -fPIC. this helps to reduce the
overhead of symbol resolution when user is using static libraries.
see
https://cmake.org/cmake/help/v2.8.11/cmake.html#variable:CMAKE_POSITION_INDEPENDENT_CODE

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-29 22:26:25 +08:00
Sage Weil
74ec4f94b1 CMakeLists: nss only, ignore cryptopp
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-29 22:26:24 +08:00
Matt Benjamin
1467637437 cmake: fix mis-matched arguments to if warning
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-06-10 15:09:45 -04:00
Kefu Chai
48a1f8eff5 cmake: always set ALLOCATOR at configure time
so it would be easier to figure out what allocator we are using later,
instead of poking around ${Foo}_FOUND variables.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-08 12:06:31 +08:00
Kefu Chai
9e768393bf cmake: s/BUILD_SHARED_LIBS/ENABLE_SHARED/
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-06 12:42:02 +08:00
Kefu Chai
cf9a42c7cc cmake: use ENABLE_SHARED instead of BUILD_SHARED_LIBS
we decided to drop the static libraries from the *-dev debian packages.
so no more tricky changes for supporting creating both libraries.

* partially revert 1dbfb26: s/BUILD_SHARED_LIBS/ENABLE_SHARED/
 - add_library() command use BUILD_SHARED_LIBS as the default library
   type, and all intermediate libraries should static ones. it would
   cause unnecessary confusion if some developer uses add_library() without
   specifying the library type, and ends up with a .so. so we use our
   own setting variables for specifying the type of user facing libraries.
* revert ac47440
 - the BUILD_SHARED_LIBS setting is also populated to the gmock libraries,
   which should be compiled as static ones. otherwise the unit tests will
   crash on exit.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-04 12:57:19 +08:00
Kefu Chai
c1a37101ea cmake: project name should be "ceph"
so it would be easier to figure out paths, also
CMAKE_INSTALL_DOCDIR is composed using the PROJECT_NAME also.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-01 23:49:46 +08:00
Kefu Chai
1dbfb264ff cmake: s/ENABLE_SHARED/BUILD_SHARED_LIBS/
* BUILD_SHARED_LIB is a cmake variable respected by add_library().
  so we can simply expose it as an option instead of reinventing our own.
* and mark internal libraries as STATIC explicitly
* and add keyutil to librbd as secret.cc is using it. and secret.cc is
  linked into librbd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-05-28 00:34:52 +08:00
Kefu Chai
a2706c7e16 cmake: revamp on lttng support
* Findlttng-ust.cmake: detect lttng-gen-tp, and make it a required var
* Findlttng-ust.cmake: fix the detection of lttng
* src/tracing/CMakeLists.txt:
  - do not put the generated header files into ${CMAKE_SOURCE_DIR}/src/tracing,
    instead we should put the generated files into ${PROJECT_BINARY_DIR}/include.
  - do not compile the tracing library using the .c files in the repo,
    instead, we should generate them at compile time using lttng-gen-tp,
    and compile the genererated .c files.
* CMakeLists.txt: make the lttng-use package REQUIRED if WITH_LTTNG=ON
* src/CMakeLists.txt: let librados depend on librados-tp if LTTNG is
  enabled: librados includes tracing/librados.h. the same applies to
  librbd, libos and libosd. cmake could deduce the dependencies if we
  add the lttng header files under include/tracing into the
  corresponding target, as the lttng header files are already listed
  as OUTPUT and GENERATED files, but this requires us to put all the
  involved targets in the same CMakeLists.txt. in this case, three
  CMakeLists.txts are impacted. so we create a new target for each
  lttng header, and let the impacted target depend on it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-05-27 19:54:42 +08:00
Kefu Chai
943d71ce92 Merge pull request #9156 from ceph/wip-cmake
cmake: Added #defines to config-h.in.cmake

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-05-27 11:37:52 +08:00
Ali Maredia
3a7111c310 cmake: remove verbose output from
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-05-26 17:26:50 -04:00
Ali Maredia
0ef09f32d4 cmake: Added #defines to config-h.in.cmake
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-05-26 17:26:48 -04:00
Kefu Chai
af902ec962 cmake: enable selinux support
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-05-16 23:09:06 +08:00
Kefu Chai
ef6b52373c cmake: build man pages
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-05-12 13:01:52 +08:00
Matt Benjamin
4df918ae8c cmake: <UPPERCASED_NAME>_FOUND in Findxio.cmake
For uniformity, upcase all these variables.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-05-03 17:36:59 -04:00
Ali Maredia
e0f400fdef cmake: test-ceph-helpers working
Moved all the libraries in CMAKE_BINARY_DIR/lib
and all the binaries in CMAKE_BINARY_DIR/bin. Set
various environment variables for test-ceph-helpers.
Put those variables throughout
qa/workunits/ceph-helpers.sh.

NOTE: This is a very rough draft of these fixes.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-04-14 20:48:19 -04:00
Kefu Chai
30ce32a67d cmake: pass RULE_LAUNCHER_* to cython
* pass the environment variables using `env` to pass environment
  varibles with space(s) in them to the COMMAND in add_custom_target.
  otherwise, cmake will try to quote the space with "\". this breaks the
  generated command line.
* add a comment for ccache to note that we do not expect ccache to speed
  up linking. we use it as the linker's launcher to workaround
  https://bugs.python.org/issue8027. to be specific,
  distutils.UnixCCompiler.link overwrites the first linker CLI's arg
  using the the first C++ compiler's CLI arg, if "env" is not used to
  launch the linker. this breaks the cythonization of our pybind APIs.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-04-11 00:46:31 +08:00
Ali Maredia
f02f1d17a6 cmake: Cython modules building with cmake
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-03-29 12:23:31 +01:00
Marcus Watts
5bf340ebae Update SSL support a bit.
Use cmake's FindOpenSSL.  Actually use the library definitions that
come out of it.  Also use the include path.  If SSL is disabled,
then build without any of this.  The result will be a version
of civetweb that includes openssl support using dlopen() - ie,
what we used to do.  This is probably a bit silly, and I hope
nobody actually expects to use it that way, but it's mostly harmless.

Signed-off-by: Marcus Watts <mwatts@redhat.com>
2016-03-25 06:18:56 -04:00
Matt Benjamin
8e87ce74e7 cmake: add FindOpenSSL.cmake
Use find_package to enforce the dependency up front (we should be
using this pattern throughout top-level CMakeLists.txt).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-03-25 06:18:56 -04:00
Matt Benjamin
38fd3f190a rgw: LDAP pass-through authentication
Implement a new external authenticator based on LDAP and the
new external token format.

External LDAP auth now works, at least with openldap/X.500 style
naming and ldaps:// (SSL).

The latter is AD-friendly, but since AD uses dnattr=cn (IIRC)
everywhere, AD will need testing.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-03-12 09:57:12 -08:00
Brad Hubbard
11222c5c59 cmake: Remove duplicate find_package libcurl line.
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2016-03-07 14:12:31 +10:00
Ali Maredia
61026c872b cmake: Turned LTTng OFF
This is temporary, until a way to stop repetitive
unecessary generation of headerfiles is figured out.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-03-01 18:11:39 -05:00
Yehuda Sadeh
4d494d5b05 Merge remote-tracking branch 'origin/master' into wip-rgw-new-multisite
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>

Conflicts:
	src/CMakeLists.txt
	src/rgw/Makefile.am
	src/rgw/rgw_admin.cc
	src/rgw/rgw_common.h
	src/rgw/rgw_main.cc
	src/rgw/rgw_op.cc
	src/rgw/rgw_rados.h
	src/rgw/rgw_rest_s3.cc
	src/test/Makefile-client.am
2016-02-18 17:14:07 -08:00
Orit Wasserman
7942c93725 rgw: fix compilation with older boost versions that don't have asio coroutines
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
2016-02-11 16:13:30 -08:00
Daniel Gryniewicz
d97718d4e6 CMake - add check for libcurl
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2016-02-11 16:13:16 -08:00
Kefu Chai
ef1573b171 cmake: disable warnings introduced by 457f023
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-02-09 21:20:06 -08:00
Sage Weil
a20134d94a Merge pull request #7349 from yuyuyu101/add-pwritev
osd: FileStore: use pwritev instead of lseek+writev

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2016-02-09 08:58:28 -05:00
Sage Weil
c87f3f3464 Merge pull request #7503 from tchaikov/wip-cmake-spdk
build: spdk submodule; cmake

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-02-05 09:16:59 -05:00
Kefu Chai
ecb1256968 cmake: enable NVMEDevice if SPDK is found
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-02-04 14:03:21 +08:00
Haomai Wang
aa7b5056ba cmake: add default pwritev support now
Signed-off-by: Haomai Wang <haomai@xsky.com>
2016-01-31 03:03:24 +08:00
Marcel Lauhoff
882672dcfa cmake: Add Graylog logging backend build support
Signed-off-by: Marcel Lauhoff <lauhoff@uni-mainz.de>
2016-01-29 15:33:36 +01:00
John Coyle
6d860ba46c cmake: musl libc does not implement backtrace. Added feature check and fallback to libexecinfo.
Signed-off-by: John Coyle <dx9err@gmail.com>
2016-01-29 08:50:46 -05:00
Kefu Chai
63d3d2bec7 cmake: link against libfuse if HAVE_LIBFUSE
* use ${FUSE_LIBRARIES} instead of "fuse" when referencing libfuse.
* do not compile FuseStore.cc if !HAVE_LIBFUSE.
* CMakeLists.txt: s/HAVE_FUSE/HAVE_LIBFUSE/, to match with the one
  defined for config.h.in.cmake, otherwise we need two vars:
  HAVE_LIBFUSE, and HAVE_FUSE

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-01-28 23:36:45 +08:00
Kefu Chai
5d91e6d398 Merge pull request #6875 from dx9/wip-cmake-ccache
cmake: support ccache via a WITH_CCACHE build option

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-01-28 15:35:16 +08:00
Loic Dachary
acd4314cf3 Merge pull request #7284 from ceph/wip-make-remove-libedit
makefile: remove libedit from libclient.la

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>
2016-01-25 13:15:48 +07:00
Kefu Chai
f5da159457 makefile: remove dependency on libedit
turns out we are not using it anymore

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-01-20 00:35:50 +08:00
Casey Bodley
4c9345bbab cmake: add missing check for HAVE_EXECINFO_H
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-01-18 14:13:19 -05:00
Kefu Chai
3ded44dc2d cmake: detect bzip2 and lz4 for rocksdb
* this change is the cmake port of 911e7a0.
  the rocksdb's Makefile will detect the installed libbz2 and libz4 by
  its own. if the building env happens to have these libraries installed,
  a link time dependency is introduced. so we are forced to link against
  them.
* do not REQUIRE BZip2 in cmake anymore
* only link against bzip2 if it is detected

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-01-07 04:33:06 -08:00
Ali Maredia
7151a47240 cmake: Findxio.cmake update Xio OFF by default
Option WITH_XIO now OFF but required by default,
Findxio.cmake now using
FIND_PACKAGE_HANDLE_STANDARD_ARGS.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
8ef0dfb30e cmake: Check for required Cython package
Added a FindCython.cmake, Cython is required.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
cbb71a4776 cmake: Boost libraries cleanup
Added components to Boost find_package, changed
libraries from boost_foo to ${Boost_FOO_LIBRARY}

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
330777051e cmake: Babeltrace detection supported
Babeltrace defaults to ON, Findbabeltrace.cmake &
BABELTRACE variables in config-h.in.cmake added.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
1aa7bc2ec4 cmake: LTTng functionality added
Set LTTNG option to ON by default, added
Findlttng.cmake, added CMakeLists.txt in
src/tracing that generates .h files using
lttng-gen-tp, added WITH_LTTNG to
config-h.in.cmake.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
a614c3b9c1 cmake: Updated allocator checking
Added a FindJeMalloc.cmake file, changed
allocator checking logic (tcmalloc is default),
replaced TCMALLOC_LIBS to ALLOC_LIBS, added
HAVE_LIB(ALLOCATOR) to config-h.in.cmake.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
Ali Maredia
b94f910cd1 cmake: kv dir and bluestore unittests
Added CMakeLists.txt in src/kv, replaced
os_mon_objs with kv_objs, linked libkv to os,
added HAVE_LIBROCKSDB to config-h.in.cmake,
tweaked rocksdb unittest, added bluestore
unittests, made rocksdb build with
add_custom_target instead of custom_command.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-01-05 15:42:06 -05:00
John Coyle
82c40b67f5 signal_handler: added support for using reentrant strsignal() implementations vs. sys_siglist[]
musl libc does not provide sys_siglist. It does provide a reentrant implementation of strsignal().

Added a cmake build option for using reentrant strsignal() impls instead of sys_siglist.

Signed-off-by: John Coyle <dx9err@gmail.com>
2015-12-09 13:08:59 -05:00
John Coyle
ae114aea03 cmake: support ccache via a WITH_CCACHE build option
When -DWITH_CCACHE=ON is specified, try to find and use ccache.

Signed-off-by: John Coyle <dx9err@gmail.com>
2015-12-09 13:01:37 -05:00
Ilya Dryomov
184914b8de cmake: define STRERROR_R_CHAR_P for GNU-specific strerror_r
This is what autotools does with AC_FUNC_STRERROR_R bit.  It takes us
from

    $ monmaptool --print nonexistant
    monmaptool: monmap file nonexistant
    monmaptool: couldn't open nonexistant: (2)

to

    $ monmaptool --print nonexistant
    monmaptool: monmap file nonexistant
    monmaptool: couldn't open nonexistant: (2) No such file or directory

on cmake - otherwise we end up using GNU-specific version as if it was
the POSIX version.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2015-12-01 15:07:48 +01:00
Yehuda Sadeh
53eda867bc Merge pull request #6292 from dx9/wip-12406-res_nquery
rgw/rgw_resolve: fallback to res_query when res_nquery not implemented

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2015-11-24 12:09:10 -08:00
John Coyle
cb2d4540d6 rgw/rgw_resolve: musl libc does not implement res_nquery. Added fallback to res_query.
res_query in musl libc is thread safe. Added a WITH_THREAD_SAFE_RES_QUERY cmake build option to disable default res_query lock.

Signed-off-by: John Coyle <dx9err@gmail.com>
2015-10-27 09:57:47 -04:00
John Coyle
e138e78574 common/MemoryModel: Alpine is a linux variant but does not implement mallinfo(). Added explicit feature check.
Signed-off-by: John Coyle <dx9err@gmail.com>
2015-10-18 20:48:38 -04:00
Daniel Gryniewicz
b1401e5124 CMake - fix check for UDEV
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:55 -04:00
Daniel Gryniewicz
0b27024698 CMake - fix check for FUSE
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:55 -04:00
Daniel Gryniewicz
a866a8947d CMake - add check for libedit
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
4d02f8746c CMake - fix check for Snappy
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
3570dd5625 CMake - add check for XFS
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
1a4262c31a CMake - add check for libcurl
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
a6c8b46101 CMake - fix check for fcgi
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
88f7df7d1a CMake - add check for libuuid
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
a18b649c1e CMake - fix check for leveldb
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
cb7fe45823 CMake - fix check for expat
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
a7ce8f5d68 CMake - Add check for keyutils
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
dcf647ec04 CMake - fix check for NSS
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Daniel Gryniewicz
b02e0f9bfe CMake - fix libatomic_ops and gperftools checks
Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
2015-09-23 10:55:54 -04:00
Ali Maredia
bf82c65e33 cmake: check_TESTPROGRAMS tests running
Make check working, accept rocksdb tests. Clean up coming.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2015-09-03 11:37:30 -04:00
John Spray
a3fc6e8356 CMake: update for boost_random
This became a dependency in dbcaa544

Signed-off-by: John Spray <john.spray@redhat.com>
2015-08-28 15:34:12 +01:00
Rohan Mars
62bfc7a1ab moved to use boost uuid implementation, based on commit 4fe89a7b14
Signed-off-by: Rohan Mars <code@rohanmars.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2015-08-19 06:46:17 -04:00
John Spray
22e8a2915d CMake: libblkid not only needed with rbd
It's linked in libcommon.

Signed-off-by: John Spray <john.spray@redhat.com>
2015-08-03 16:39:35 +01:00
John Spray
1f541b2e8e CMake: set WITH_CEPHFS by default
Option was referenced in CMakeLists but
not actually set.

Signed-off-by: John Spray <john.spray@redhat.com>
2015-08-03 16:39:35 +01:00
Casey Bodley
15dd70cd5a cmake: skip man/CMakeLists.txt
man pages have to be preprocessed now, and can't be installed directly.
skip installing them until we add the cmake-fu to copy what man/Makefile.am
is doing

Signed-off-by: Casey Bodley <casey@cohortfs.com>
2015-05-22 11:09:29 -07:00
Danny Al-Gaaf
4bb8843476 CMakeLists.txt: fix detection of nss
Libnss needs also to check for libnspr and add the related
-l targets to CRYPTO_LIBS, otherwise the build will fail.

Make sure USE_NSS is set correctly to 0 if cryptopp found
and in case nss was found set USE_CRYPTOPP also to 0.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2015-05-07 13:26:18 +02:00
Casey Bodley
aba35bcaff cmake: add xio
Signed-off-by: Casey Bodley <casey@linuxbox.com>
Signed-off-by: Matt Benjamin <matt@cohortfs.com>
2015-01-14 16:43:36 -05:00
Matt Benjamin
610d66f531 Ceph Accelio/RDMA Transport (XioMessenger).
XioMessenger implements a Ceph Messenger provider for Accelio,
a high-performance messaging transport by Mellanox.  Current
Accelio is layered on ibverbs, and supports Infiniband, ROCE,
and other RDMA transports.  Future Accelio verions will support
alternative transports (including TCP), and flexible transport
selection.

config: cluster_rdma drives messenger creation
ceph_mds ceph_mon and ceph_osd use XioMessengers for cluster
	communication when cluster_rdma is set
Move XioMessenger to msg/xio.
	This matches the other new Messenger locations.
test: tests for tcp and xio messengers
	(Not tests only.)
buffer: add subclass for xio buffers
xio: convert to Connection::send_message interface
config: -x, --xio as aliases for client_rdma
ceph-fuse: create xio messenger if client_rdma
Find XioMessenger.h and QueueStrategy.h in msg/xio.
ceph-syn: create xio messenger if client_rdma
librados: create xio messenger if client_rdma
Find XioMessenger.h and QueueStrategy.h in msg/xio.
Restore non-abort from Xio Mon integration.
Fix xio_client send count, again.
xio: must signal cond under mutex lock
xio: dispatch strategies support ms_fast_dispatch
xio: config variable xio_port_shift
remove set_port_shift() from XioMessenger, and just use the value
	from the configuration
xio: don't depend on g_ceph_context for dout
XioMessenger now uses its own cct for all logging operations
	the accelio log function, however, still depends on a global
	CephContext. so we maintain an extra one, separate from g_ceph_context,
	in XioMessenger.cc that is initialized on first construction and a
	reference is held indefinitely
script: cephfsnew to automate pool and fs creation
Use new on_ow_msg_send_complete hook.
	Replaces on_msg_delivered for one-way message style.
Prototype new xio_discon behavior.
	On shutdown, XioPortal threads should not exit before Accelio
	finalizes all sessions.
Inline join_sessions, it needs sh_mtx held across wait loop.
Fix assert on Cond::Signal.  Adds Cond2.
Avoid deadlock, xio_disconnect can deliver a session teardown event.
Also Mutex2.
	(Note, Mutex2 and Cond2 are replaced by standard C++ downstream.)
Restore SimpleDispatcher Timings.
	The simple_client/simple_server timings are based on a ping/pong
	of messages between the client and server, unlike those of the
	xio_client/server programs, which are one-way (so their corresponding
	1-way bandwidth is appx. 2x what the test reports).  We assert
	that the results are in general comparable, because in both setups,
	a fixed number of messages (def. 50) is maintained in flight.
Wrap Accelio mempool in XioPool, add stats.
	To enable stat prints, set xio_trace_mempool.  Currently, prints
	to stdout at each 64K messages sent or received.
Restore _send_message(..).
Fix merge errors in simple_client, simple_dispatcher.
xio: fix for size in pool stats
Add in/outbound msg counters to XioPoolStats.
Pool stats are easier to read.
	Pool stats are easier to read, and if enabled, print on session
	teardown. This is a convenient time to view stats, and with a small
Make pool stats counters atomic.
Track requests using hook ctor/dtor.
	Lockless, portal thread provides atomicity.
Adapt to recent changes on Accelio for_next
	* Accelio options now of opaque type
	* on_msg_err with extra direction param
	* RDMA behavior now governed by 2 new options
    		XIO_OPTNAME_MAX_INLINE_DATA
   	 	XIO_OPTNAME_MAX_INLINE_HEADER
	* Separated send and recv queue depth
xio_messenger: Change xio optname queue depth msgs
	* Set 16k threshold to rdma buffers instead of send
	* Change xio optname for queue depth msgs
  		XIO_OPTNAME_SND/RCV_QUEUE_DEPTH_MSGS
xio_messenger: Protect Accelio queue depth.
	(Minimal send flow control.)
	The guard is per xio_connection, and considering batches.
	Increment happens only if xio_send_msg succeeded, decrement in
	on_ms_ow_send_complete and on_msg_error.  Note that we don't need
	atomics because counters are touched only in the correct portal
	thread.
Find XioMsg.h in msg/xio
Find XioMessenger.h and QueueStrategy.h in msg/xio (tests).
Adapt to 2 Accelio API changes.
	1. xio_context_stop loop takes only 1 argument
	2. xio_connect() now takes a structure argument, by reference
Set CMP0046 iif CMake version >= 3
Move XioMessenger to msg/xio
xio: fix for segfault on xio_connect()
No more Mutex2, Cond2.
xio: number of portal threads is configurable
xio: only create additional portals on bind()
xio: use QueueStrategy(1) as default
xio: Messenger factory accepts ms_type "xio"
xio: use ms_type instead of client,cluster_rdma
     removing the ability to configure the client and cluster networks
     separately in favor of a single global messenger type
     --xio is now a command-line alias for --ms_type xio
     all daemons now use the Messenger::create() factory function instead of
     conditionally creating XioMessengers
     the OSD and Monitor classes no longer need separate messengers to
     deal with both tcp/rdma clients
xio: portal binding honors ms_bind_port_min,max
xio: remove xio_port_shift
     port shifting is no longer necessary, because we won't create both tcp
     and xio messengers for the same service
     Use Accelio sglist helper macros.
     xio: make xio buffer unshareable
xio: Nuke special_handling.
Replace GENERIC with MON (requested by Sage).

Signed-off-by: Casey Bodley <casey@cohortfs.com>
Signed-off-by: Vu Pham <vu@mellanox.com>
Signed-off-by: Matt Benjamin <matt@cohortfs.com>
2015-01-14 16:43:30 -05:00
Ali Maredia
0f6b9f2816 Combined CMake Build for Hammer
CMake Ceph Build System (Firefly)
CMake.  Add tests.
Respace src/CMakeLists.txt.
CMake.  Spacing cleanups.
CMake for Firefly is Triumphant
CMake for Giant
Adapt to Giant.
Fix installation for scripts and man pages
Fix CEPH_LIBDIR and CEPH_PKGLIBDIR defines
Add erasure-code libraries
	uses try_compile() to detect support for -msse flags
Fix rados object classes
Propagate Casey's cls library change to src/test.
Fix CMake build for Hammer.
Try-add rados and common to librbd link.
Fix name and linkage of libec_lrc.
Rename arch/neon.c arm.c
Fix libcommon.a dependencies (some unit tests).

Authors:
	Ali Maredia <ali@cohortfs.com>
	Casey Bodley <casey@cohortfs.com>
	Adam Emerson <aemerson@cohortfs.com>
	Marcus Watts <mdw@cohortfs.com>
	Matt Benjamin <matt@cohortfs.com>

Signed-off-by: Matt Benjamin <matt@cohortfs.com>
2015-01-14 16:40:05 -05:00