diff options
author | Daniel Black <daniel.black@au.ibm.com> | 2015-12-18 16:48:38 +1100 |
---|---|---|
committer | Daniel Black <daniel.black@au.ibm.com> | 2015-12-18 17:15:06 +1100 |
commit | e4e2d9dd3c48e983e05b73501b00638ef4404308 (patch) | |
tree | 5560d794220c35a8e059c18623bf2b8aa6a759ee | |
parent | 953d5680a3c050273a8f29253f7386984679f92b (diff) | |
download | mariadb-git-e4e2d9dd3c48e983e05b73501b00638ef4404308.tar.gz |
Do not build optimised power crc32 on bigendian
-rw-r--r-- | extra/CMakeLists.txt | 12 | ||||
-rw-r--r-- | storage/innobase/CMakeLists.txt | 12 | ||||
-rw-r--r-- | storage/innobase/ut/ut0crc32.cc | 5 | ||||
-rw-r--r-- | storage/xtradb/CMakeLists.txt | 12 | ||||
-rw-r--r-- | storage/xtradb/ut/ut0crc32.cc | 5 |
5 files changed, 30 insertions, 16 deletions
diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt index de2c2ee5435..24090db6135 100644 --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -73,17 +73,21 @@ IF(WITH_INNOBASE_STORAGE_ENGINE OR WITH_XTRADB_STORAGE_ENGINE) # We use the InnoDB code directly in case the code changes. ADD_DEFINITIONS("-DUNIV_INNOCHECKSUM") - enable_language(ASM) - SET(INNOBASE_SOURCES ../storage/innobase/buf/buf0checksum.cc ../storage/innobase/ut/ut0crc32.cc ../storage/innobase/ut/ut0ut.cc - ../storage/innobase/ut/crc32_power8/crc32.S - ../storage/innobase/ut/crc32_power8/crc32_wrapper.c ../storage/innobase/page/page0zip.cc ) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") + enable_language(ASM) + LIST(APPEND INNOBASE_SOURCES + ../storage/innobase/ut/crc32_power8/crc32.S + ../storage/innobase/ut/crc32_power8/crc32_wrapper.c + ) + ENDIF() + MYSQL_ADD_EXECUTABLE(innochecksum innochecksum.cc ${INNOBASE_SOURCES}) TARGET_LINK_LIBRARIES(innochecksum mysys mysys_ssl) ADD_DEPENDENCIES(innochecksum GenError) diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index 240f54488cd..7ae962880d1 100644 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -362,8 +362,6 @@ IF(MSVC) PROPERTIES COMPILE_FLAGS "/wd4003") ENDIF() -enable_language(ASM) - SET(INNOBASE_SOURCES api/api0api.cc api/api0misc.cc @@ -478,8 +476,6 @@ SET(INNOBASE_SOURCES ut/ut0bh.cc ut/ut0byte.cc ut/ut0crc32.cc - ut/crc32_power8/crc32.S - ut/crc32_power8/crc32_wrapper.c ut/ut0dbg.cc ut/ut0list.cc ut/ut0mem.cc @@ -490,6 +486,14 @@ SET(INNOBASE_SOURCES ut/ut0wqueue.cc ut/ut0timer.cc) +IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") + enable_language(ASM) + LIST(APPEND INNOBASE_SOURCES + ut/crc32_power8/crc32.S + ut/crc32_power8/crc32_wrapper.c + ) +ENDIF() + IF(WITH_INNODB) # Legacy option SET(WITH_INNOBASE_STORAGE_ENGINE TRUE) diff --git a/storage/innobase/ut/ut0crc32.cc b/storage/innobase/ut/ut0crc32.cc index ad4645c9630..8f3c699c24f 100644 --- a/storage/innobase/ut/ut0crc32.cc +++ b/storage/innobase/ut/ut0crc32.cc @@ -194,7 +194,7 @@ ut_crc32_power8( const byte* buf, /*!< in: data over which to calculate CRC32 */ ulint len) /*!< in: data length */ { -#if defined(__powerpc__) +#if defined(__powerpc__) && !defined(WORDS_BIGENDIAN) return crc32_vpmsum(0, buf, len); #else ut_error; @@ -338,7 +338,8 @@ ut_crc32_init() #endif /* defined(__GNUC__) && defined(__x86_64__) */ -#if defined(__linux__) && defined(__powerpc__) && defined(AT_HWCAP2) +#if defined(__linux__) && defined(__powerpc__) && defined(AT_HWCAP2) \ + && !defined(WORDS_BIGENDIAN) if (getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_2_07) ut_crc32_power8_enabled = true; #endif /* defined(__linux__) && defined(__powerpc__) */ diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt index 6c6dbfd4c95..d03e1399e04 100644 --- a/storage/xtradb/CMakeLists.txt +++ b/storage/xtradb/CMakeLists.txt @@ -345,8 +345,6 @@ IF (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8) PROPERTIES COMPILE_FLAGS -Od) ENDIF() -enable_language(ASM) - SET(INNOBASE_SOURCES api/api0api.cc api/api0misc.cc @@ -464,8 +462,6 @@ SET(INNOBASE_SOURCES ut/ut0bh.cc ut/ut0byte.cc ut/ut0crc32.cc - ut/crc32_power8/crc32.S - ut/crc32_power8/crc32_wrapper.c ut/ut0dbg.cc ut/ut0list.cc ut/ut0mem.cc @@ -476,6 +472,14 @@ SET(INNOBASE_SOURCES ut/ut0wqueue.cc ut/ut0timer.cc) +IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") + enable_language(ASM) + LIST(APPEND INNOBASE_SOURCES + ut/crc32_power8/crc32.S + ut/crc32_power8/crc32_wrapper.c + ) +ENDIF() + MYSQL_ADD_PLUGIN(xtradb ${INNOBASE_SOURCES} STORAGE_ENGINE DEFAULT RECOMPILE_FOR_EMBEDDED LINK_LIBRARIES ${ZLIB_LIBRARY} ${LINKER_SCRIPT}) diff --git a/storage/xtradb/ut/ut0crc32.cc b/storage/xtradb/ut/ut0crc32.cc index 8884eda7db3..2e3924a997e 100644 --- a/storage/xtradb/ut/ut0crc32.cc +++ b/storage/xtradb/ut/ut0crc32.cc @@ -194,7 +194,7 @@ ut_crc32_power8( const byte* buf, /*!< in: data over which to calculate CRC32 */ ulint len) /*!< in: data length */ { -#if defined(__powerpc__) +#if defined(__powerpc__) && !defined(WORDS_BIGENDIAN) return crc32_vpmsum(0, buf, len); #else ut_error; @@ -338,7 +338,8 @@ ut_crc32_init() #endif /* defined(__GNUC__) && defined(__x86_64__) */ -#if defined(__linux__) && defined(__powerpc__) && defined(AT_HWCAP2) +#if defined(__linux__) && defined(__powerpc__) && defined(AT_HWCAP2) \ + && !defined(WORDS_BIGENDIAN) if (getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_2_07) ut_crc32_power8_enabled = true; #endif /* defined(__linux__) && defined(__powerpc__) */ |