@@ -71,75 +71,81 @@ if [ "$CXX" = "g++" ]; then
7171 MEMCMP_FLAG=" -fno-builtin-memcmp"
7272fi
7373
74+ SSE_FLAG=
75+ if [ " $CXX " = " g++" ]; then
76+ # use hardware crc32 instruction
77+ SSE_FLAG=" -msse4.2"
78+ fi
79+
7480case " $TARGET_OS " in
7581 CYGWIN_* )
7682 PLATFORM=OS_LINUX
77- COMMON_FLAGS=" $MEMCMP_FLAG -lpthread -DOS_LINUX -DCYGWIN"
83+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -lpthread -DOS_LINUX -DCYGWIN"
7884 PLATFORM_LDFLAGS=" -lpthread"
7985 PORT_FILE=port/port_posix.cc
8086 ;;
8187 Darwin)
8288 PLATFORM=OS_MACOSX
83- COMMON_FLAGS=" $MEMCMP_FLAG -DOS_MACOSX"
89+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -DOS_MACOSX"
8490 PLATFORM_SHARED_EXT=dylib
8591 [ -z " $INSTALL_PATH " ] && INSTALL_PATH=` pwd`
8692 PLATFORM_SHARED_LDFLAGS=" -dynamiclib -install_name $INSTALL_PATH /"
8793 PORT_FILE=port/port_posix.cc
8894 ;;
8995 Linux)
9096 PLATFORM=OS_LINUX
91- COMMON_FLAGS=" $MEMCMP_FLAG -pthread -DOS_LINUX"
97+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -pthread -DOS_LINUX"
9298 PLATFORM_LDFLAGS=" -pthread"
9399 PORT_FILE=port/port_posix.cc
94100 ;;
95101 SunOS)
96102 PLATFORM=OS_SOLARIS
97- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_SOLARIS"
103+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_SOLARIS"
98104 PLATFORM_LIBS=" -lpthread -lrt"
99105 PORT_FILE=port/port_posix.cc
100106 ;;
101107 FreeBSD)
102108 PLATFORM=OS_FREEBSD
103- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_FREEBSD"
109+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_FREEBSD"
104110 PLATFORM_LIBS=" -lpthread"
105111 PORT_FILE=port/port_posix.cc
106112 ;;
107113 NetBSD)
108114 PLATFORM=OS_NETBSD
109- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_NETBSD"
115+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_NETBSD"
110116 PLATFORM_LIBS=" -lpthread -lgcc_s"
111117 PORT_FILE=port/port_posix.cc
112118 ;;
113119 OpenBSD)
114120 PLATFORM=OS_OPENBSD
115- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_OPENBSD"
121+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_OPENBSD"
116122 PLATFORM_LDFLAGS=" -pthread"
117123 PORT_FILE=port/port_posix.cc
118124 ;;
119125 DragonFly)
120126 PLATFORM=OS_DRAGONFLYBSD
121- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_DRAGONFLYBSD"
127+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_DRAGONFLYBSD"
122128 PLATFORM_LIBS=" -lpthread"
123129 PORT_FILE=port/port_posix.cc
124130 ;;
125131 OS_ANDROID_CROSSCOMPILE)
126132 PLATFORM=OS_ANDROID
127- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_ANDROID -DLEVELDB_PLATFORM_POSIX"
133+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_ANDROID -DLEVELDB_PLATFORM_POSIX"
128134 PLATFORM_LDFLAGS=" " # All pthread features are in the Android C library
129135 PORT_FILE=port/port_posix.cc
130136 CROSS_COMPILE=true
131137 ;;
132138 HP-UX)
133139 PLATFORM=OS_HPUX
134- COMMON_FLAGS=" $MEMCMP_FLAG -D_REENTRANT -DOS_HPUX"
140+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -D_REENTRANT -DOS_HPUX"
135141 PLATFORM_LDFLAGS=" -pthread"
136142 PORT_FILE=port/port_posix.cc
137143 # man ld: +h internal_name
138144 PLATFORM_SHARED_LDFLAGS=" -shared -Wl,+h -Wl,"
139145 ;;
140146 IOS)
141147 PLATFORM=IOS
142- COMMON_FLAGS=" $MEMCMP_FLAG -DOS_MACOSX"
148+ COMMON_FLAGS=" $MEMCMP_FLAG $SSE_FLAG -DOS_MACOSX"
143149 [ -z " $INSTALL_PATH " ] && INSTALL_PATH=` pwd`
144150 PORT_FILE=port/port_posix.cc
145151 PLATFORM_SHARED_EXT=
0 commit comments