Skip to content

Commit b6d72ed

Browse files
author
wlad
committed
MDEV-14283 : Fix Solaris 10 build.
- introduce system check for posix_memalign (not available on Solaris 10) - Disable dtrace probes, to fix weird link errors in mariabackup
1 parent 7c4f859 commit b6d72ed

File tree

5 files changed

+21
-2
lines changed

5 files changed

+21
-2
lines changed

cmake/dtrace.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ MACRO(CHECK_DTRACE)
4343
IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD"
4444
AND NOT BUGGY_GCC_NO_DTRACE_MODULES
4545
AND NOT BUGGY_LINUX_DTRACE)
46+
AND NOT SYSTEM_NAME MATCHES "SunOS")
4647
SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace")
4748
ENDIF()
4849
SET(HAVE_DTRACE ${ENABLE_DTRACE})

storage/innobase/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DUNIV_DEBUG -DUNIV_SYNC_DEB
8585
CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
8686

8787
IF(NOT MSVC)
88+
89+
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
90+
IF(HAVE_POSIX_MEMALIGN)
91+
ADD_DEFINITIONS(-DHAVE_POSIX_MEMALIGN)
92+
ENDIF()
93+
8894
# either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
8995
# workaround for old gcc on x86, gcc atomic ops only work under -march=i686
9096
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_COMPILER_IS_GNUCC AND

storage/innobase/buf/buf0buf.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,13 @@ inline void* aligned_malloc(size_t size, size_t align) {
8686
void *result;
8787
#ifdef _MSC_VER
8888
result = _aligned_malloc(size, align);
89-
#else
89+
#elif defined (HAVE_POSIX_MEMALIGN)
9090
if(posix_memalign(&result, align, size)) {
9191
result = 0;
9292
}
93+
#else
94+
/* Use unaligned malloc as fallback */
95+
result = malloc(size);
9396
#endif
9497
return result;
9598
}

storage/xtradb/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DUNIV_DEBUG -DUNIV_SYNC_DEB
9393
CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
9494

9595
IF(NOT MSVC)
96+
97+
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
98+
IF(HAVE_POSIX_MEMALIGN)
99+
ADD_DEFINITIONS(-DHAVE_POSIX_MEMALIGN)
100+
ENDIF()
101+
96102
# either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
97103
# workaround for old gcc on x86, gcc atomic ops only work under -march=i686
98104
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_COMPILER_IS_GNUCC AND

storage/xtradb/buf/buf0buf.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,13 @@ inline void* aligned_malloc(size_t size, size_t align) {
102102
void *result;
103103
#ifdef _MSC_VER
104104
result = _aligned_malloc(size, align);
105-
#else
105+
#elif defined (HAVE_POSIX_MEMALIGN)
106106
if(posix_memalign(&result, align, size)) {
107107
result = 0;
108108
}
109+
#else
110+
/* Use unaligned malloc as fallback */
111+
result = malloc(size);
109112
#endif
110113
return result;
111114
}

0 commit comments

Comments
 (0)