From cd93e82845a9f23b97bdbb12d5358e3bcf679d2e Mon Sep 17 00:00:00 2001 From: Dhruba Borthakur Date: Wed, 17 Oct 2012 11:59:44 -0700 Subject: [PATCH] Enable SSE when building with fbcode support. Summary: fbcode build now support SSE instructions. Delete older version of the compile-helper fbcode.sh. This is subsumed by fbcode.gcc471.sh. Test Plan: run make check Reviewers: heyongqiang, MarkCallaghan Reviewed By: heyongqiang Differential Revision: https://reviews.facebook.net/D6057 --- README.fb | 2 +- build_detect_platform | 3 +++ fbcode.gcc471.sh | 3 +++ fbcode.sh | 46 ------------------------------------------- 4 files changed, 7 insertions(+), 47 deletions(-) delete mode 100644 fbcode.sh diff --git a/README.fb b/README.fb index f8e3074a9..3c45a722d 100644 --- a/README.fb +++ b/README.fb @@ -4,7 +4,7 @@ * Compiling for CPUs with SSE4 support - make OPT='-O2 -DNDEBUG -D__SSE4_2__' + make OPT='-O2 -DNDEBUG -msse -msse4.2' This makes CRC computation much faster, but binaries won't run on CPUs that don't support it. diff --git a/build_detect_platform b/build_detect_platform index 03fa29cc0..582cdcfd3 100755 --- a/build_detect_platform +++ b/build_detect_platform @@ -220,6 +220,9 @@ if test "$USE_THRIFT" || test "$USE_SCRIBE" ; then PLATFORM_LDFLAGS+=$THRIFT_LDFLAGS fi +# if Intel SSE instruction set is supported, set USE_SSE=" -msse -msse4.2 " +COMMON_FLAGS+=$USE_SSE + PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS" PLATFORM_CXXFLAGS="$PLATFORM_CXXFLAGS $COMMON_FLAGS" diff --git a/fbcode.gcc471.sh b/fbcode.gcc471.sh index 922a3f1dc..b518fed00 100644 --- a/fbcode.gcc471.sh +++ b/fbcode.gcc471.sh @@ -32,6 +32,9 @@ THRIFT_INCLUDE=" -I $TOOLCHAIN_LIB_BASE/boost/boost-1.48.0/bef9365/include -std= THRIFT_INCLUDE+=" -I./thrift -I./thrift/gen-cpp -I./thrift/lib/cpp" THRIFT_LIBS=" -L $TOOLCHAIN_LIB_BASE/boost/boost-1.48.0/bef9365/lib" +# use Intel SSE support for checksum calculations +export USE_SSE=" -msse -msse4.2 " + CC="$TOOLCHAIN_EXECUTABLES/gcc/gcc-4.7.1-glibc-2.14.1/bin/gcc" CXX="$TOOLCHAIN_EXECUTABLES/gcc/gcc-4.7.1-glibc-2.14.1/bin/g++ $JINCLUDE $SNAPPY_INCLUDE $THRIFT_INCLUDE" AR=$TOOLCHAIN_EXECUTABLES/binutils/binutils-2.21.1/da39a3e/bin/ar diff --git a/fbcode.sh b/fbcode.sh deleted file mode 100644 index 9e9cfe672..000000000 --- a/fbcode.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# -# Set environment variables so that we can compile leveldb using -# fbcode settings. It uses the latest g++ compiler and also -# uses jemalloc - -TOOLCHAIN_REV=d28c90311ca14f9f0b2bb720f4e34b285513d4f4 -TOOLCHAIN_EXECUTABLES="/mnt/gvfs/third-party/$TOOLCHAIN_REV/centos5.2-native" -TOOLCHAIN_LIB_BASE="/mnt/gvfs/third-party/$TOOLCHAIN_REV/gcc-4.6.2-glibc-2.13" - -# always build thrift server -export USE_THRIFT=1 - -# location of libhdfs libraries -if test "$USE_HDFS"; then - JAVA_HOME="/usr/local/jdk-6u22-64" - JINCLUDE="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" - GLIBC_RUNTIME_PATH="/usr/local/fbcode/gcc-4.6.2-glibc-2.13" - HDFSLIB=" -Wl,--no-whole-archive hdfs/libhdfs.a -L$JAVA_HOME/jre/lib/amd64 " - HDFSLIB+=" -L$JAVA_HOME/jre/lib/amd64/server -L$GLIBC_RUNTIME_PATH/lib " - HDFSLIB+=" -ldl -lverify -ljava -ljvm " -fi - -# location of snappy headers and libraries -SNAPPY_INCLUDE=" -I ./snappy" -SNAPPY_LIBS=" -L./snappy/libs" - -# location of boost headers and libraries -THRIFT_INCLUDE=" -I $TOOLCHAIN_LIB_BASE/boost/default/eed002c/include -std=gnu++0x" -THRIFT_INCLUDE+=" -I./thrift -I./thrift/gen-cpp -I./thrift/lib/cpp" -THRIFT_LIBS=" -L $TOOLCHAIN_LIB_BASE/boost/default/eed002c/lib" - -CC="$TOOLCHAIN_EXECUTABLES/gcc/gcc-4.6.2-glibc-2.13/bin/gcc" -CXX="$TOOLCHAIN_EXECUTABLES/gcc/gcc-4.6.2-glibc-2.13/bin/g++ $JINCLUDE $SNAPPY_INCLUDE $THRIFT_INCLUDE" -AR=$TOOLCHAIN_EXECUTABLES/binutils/binutils-2.21.1/da39a3e/bin/ar -RANLIB=$TOOLCHAIN_EXECUTABLES/binutils/binutils-2.21.1/da39a3e/bin/ranlib - -CFLAGS="-B$TOOLCHAIN_EXECUTABLES/binutils/binutils-2.21.1/bin/gold -m64 -mtune=generic -fPIC" -CFLAGS+=" -I $TOOLCHAIN_LIB_BASE/jemalloc/jemalloc-2.2.5/96de4f9/include -DHAVE_JEMALLOC" - -EXEC_LDFLAGS=" -Wl,--whole-archive $TOOLCHAIN_LIB_BASE/jemalloc/jemalloc-2.2.4/96de4f9/lib/libjemalloc.a " -EXEC_LDFLAGS+="-Wl,--no-whole-archive $TOOLCHAIN_LIB_BASE/libunwind/libunwind-20100810/4bc2c16/lib/libunwind.a" -EXEC_LDFLAGS+="$HDFSLIB $SNAPPY_LIBS $THRIFT_LIBS " -EXEC_LDFLAGS_SHARED="$SNAPPY_LIBS $TOOLCHAIN_LIB_BASE/jemalloc/jemalloc-2.2.4/96de4f9/lib/libjemalloc.so" - -export CC CXX AR RANLIB CFLAGS EXEC_LDFLAGS EXEC_LDFLAGS_SHARED