Commit Graph

19 Commits

Author SHA1 Message Date
Yazen Ghannam
60762338a2 crc32c: add aarch64 optimized crc32c implementation
ARMv8 defines a set of optional CRC32/CRC32C instructions.
This patch defines an optimized function that uses these
instructions when available rather than table-based lookup.
Optimized function based on a Hadoop patch by Ed Nevill.

Autotools updated to check for compiler support.
Optimized function is selected at runtime based on HWCAP_CRC32.
Added crc32c "performance" unit test and arch unit test.

Tested on AMD Seattle.
Passes all crc32c unit tests.
Unit test shows ~4x performance increase versus sctp.

Signed-off-by: Yazen Ghannam <yazen.ghannam@linaro.org>
Reviewed-by: Steve Capper <steve.capper@linaro.org>
2015-03-17 13:56:52 -05:00
Janne Grunau
cec00c9f4a autotools: ARM/AArch64 NEON detection similar to x86 2014-11-25 14:17:37 +01:00
Sage Weil
5502dd3e0f configure: verify c++11 is present for rocksdb
Signed-off-by: Sage Weil <sage@redhat.com>
2014-07-31 21:11:24 -07:00
Dmitry Smirnov
8b682d167e prioritise use of javac executable (gcj provides it through alternatives).
On Debian this fixes FTBFS when gcj-jdk and openjdk-7-jdk are installed at
 the same time because build system will use default `javac` executable
 provided by current JDK through `update-alternatives` instead of blindly
 calling GCJ when it is present.

Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
2014-05-12 14:08:44 +10:00
Loic Dachary
14418a2911 autotools: s/ssse3/sse3/ typo
Reported-by: Justin Erenkrantz <justin@erenkrantz.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-30 17:57:22 +02:00
Loic Dachary
399de24e29 erasure-code: do not attempt to compile SSE4 on i386
SSE4 are only not availabe on older CPUs. Although the compiler could
probably generate the code, there is no point in doing so. The SSE4.1,
SSE4.2 and PCLMUL cpu features are only tested if the target CPU is
AMD64 or x86_64.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-29 10:34:29 +01:00
Loic Dachary
c07aedb6db autotools: intel cpu features detection
Rename SIMD to INTEL for clarity.

Instead of agregating all flags in INTEL_FLAGS, create individual flags
for each feature (INTEL_SSE2_FLAGS etc.) for finer control in the
makefiles.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-27 14:27:23 +01:00
Loic Dachary
8c7f6c11d4 autotools: AX_SSE detects the compiler SSE capabilities
For each SSE feature supported by the compiler

* add the corresponding -msse* flag
* define HAVE_SSE*

Remove AX_EXT because it decides based on the CPU capabilities of the
machine compiling the binary which may or may not be the one running
them.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-21 13:07:32 +01:00
Loic Dachary
b74115a508 autotools: set SIMD_FLAGS with SSE flags
As well as compiler options.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-10 08:24:20 +01:00
Noah Watkins
ac044812d0 assert: choose function-var name on non-gnu
Selects __PRETTY_FUNCTION__ or __func__. Linux assumes GNU, and chooses
__PRETTY_FUNCTION__ if gcc/g++ versions are favorable.

This also includes a fix in ax_c_var_func.m4:

AC_TRY_COMPILE will wrap the test in main{}, and then GCC will complain
about nested functions. Just use the original main{} body.

diff --git a/m4/ax_c_var_func.m4 b/m4/ax_c_var_func.m4
index 0ad7d2b..8b57563 100644
--- a/m4/ax_c_var_func.m4
+++ b/m4/ax_c_var_func.m4
@@ -57,9 +57,9 @@ AC_DEFUN([AX_C_VAR_FUNC],
 [AC_REQUIRE([AC_PROG_CC])
 AC_CACHE_CHECK(whether $CC recognizes __func__, ac_cv_c_var_func,
 AC_TRY_COMPILE(,
-[int main() {
+[
 char *s = __func__;
-}],
+],
 AC_DEFINE(HAVE_FUNC,,
 [Define if the C complier supports __func__]) ac_cv_c_var_func=yes,
 ac_cv_c_var_func=no) )

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-06 14:16:28 -08:00
Noah Watkins
6821a6e83a assert: use feature test for static_cast
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-11-04 13:14:11 -08:00
Roald J. van Loon
7845115f8b automake cleanup: adding vta support to configure
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
2013-09-07 22:41:09 +02:00
Gary Lowell
be0c4b34bc ac_prog_javah.m4: Use AC_CANONICAL_TARGET instead of AC_CANONICAL_SYSTEM. 2013-01-14 14:11:54 -08:00
Danny Al-Gaaf
59aad34795 configure.ac: check for org.junit.rules.ExternalResource
Check for org.junit.rules.ExternalResource if build with
--enable-cephfs-java and --with-debug. Checking for junit4
isn't enough since junit4 has this class not before 4.7.

Added some m4 files to get some JAVA related macros. Changed
autogen.sh to work with local m4 files/macros.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-01-09 19:52:05 -08:00
Kacper Kowalik (Xarthisius)
7bf01b1161 Makefile: Add recent acx_pthread.m4 that has a fix for nostdlib issue.
See http://code.google.com/p/protobuf/issues/detail?id=188 for details

Signed-off-by: Kacper Kowalik (Xarthisius) <xarthisius@gentoo.org>
2012-01-12 09:17:06 -08:00
Sage Weil
8c96daf08d autotools crap 2008-07-10 17:25:50 -07:00
Sage Weil
4a15a83faf m4: lower automake req version 2008-04-17 21:09:49 -07:00
Sage Weil
57db9eba54 libcrushwrapper.so now builds, yay 2008-03-12 19:36:54 -07:00
Sage Weil
05611eb377 m4 macros 2008-03-12 19:13:03 -07:00