summaryrefslogtreecommitdiff
path: root/build_tools
diff options
context:
space:
mode:
authorTomas Kolda <koldat@gmail.com>2017-04-21 20:41:37 -0700
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>2017-04-21 20:48:04 -0700
commit04d58970cb5e5fbffafa2ccfee42fc479cdd48f0 (patch)
treeda1a2a58a96a06ecc69bac61bc96364cdbffbea7 /build_tools
parentafff9951e2b6aa0e1bb0949c68967951734604ef (diff)
AIX and Solaris Sparc Support
Summary: Replacement of #2147 The change was squashed due to a lot of conflicts. Closes https://github.com/facebook/rocksdb/pull/2194 Differential Revision: D4929799 Pulled By: siying fbshipit-source-id: 5cd49c254737a1d5ac13f3c035f128e86524c581
Diffstat (limited to 'build_tools')
-rwxr-xr-xbuild_tools/build_detect_platform25
1 files changed, 22 insertions, 3 deletions
diff --git a/build_tools/build_detect_platform b/build_tools/build_detect_platform
index 55c107dc8..4358d9df9 100755
--- a/build_tools/build_detect_platform
+++ b/build_tools/build_detect_platform
@@ -128,10 +128,17 @@ case "$TARGET_OS" in
;;
SunOS)
PLATFORM=OS_SOLARIS
- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_SOLARIS"
- PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lrt"
+ COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_SOLARIS -m64"
+ PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lrt -static-libstdc++ -static-libgcc -m64"
# PORT_FILES=port/sunos/sunos_specific.cc
;;
+ AIX)
+ PLATFORM=OS_AIX
+ CC=gcc
+ COMMON_FLAGS="$COMMON_FLAGS -maix64 -pthread -fno-builtin-memcmp -D_REENTRANT -DOS_AIX -D__STDC_FORMAT_MACROS"
+ PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -pthread -lpthread -lrt -maix64 -static-libstdc++ -static-libgcc"
+ # PORT_FILES=port/aix/aix_specific.cc
+ ;;
FreeBSD)
PLATFORM=OS_FREEBSD
COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_FREEBSD"
@@ -382,6 +389,18 @@ EOF
if [ "$?" = 0 ]; then
PROFILING_FLAGS=-pg
fi
+
+ # Test whether sync_file_range is supported for compatibility with an old glibc
+ $CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
+ #include <fcntl.h>
+ int main() {
+ int fd = open("/dev/null", 0);
+ sync_file_range(fd, 0, 1024, SYNC_FILE_RANGE_WRITE);
+ }
+EOF
+ if [ "$?" = 0 ]; then
+ COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_RANGESYNC_PRESENT"
+ fi
fi
# TODO(tec): Fix -Wshorten-64-to-32 errors on FreeBSD and enable the warning.
@@ -427,7 +446,7 @@ elif test -z "$PORTABLE"; then
COMMON_FLAGS="$COMMON_FLAGS -mcpu=$POWER -mtune=$POWER "
elif test -n "`echo $TARGET_ARCHITECTURE | grep ^s390x`"; then
COMMON_FLAGS="$COMMON_FLAGS -march=z10 "
- else
+ elif [ "$TARGET_OS" != AIX ] && [ "$TARGET_OS" != SunOS ]; then
COMMON_FLAGS="$COMMON_FLAGS -march=native "
fi
fi