Use -Os for lite release build (#4652)
Summary: Set `-Os` for lite release build to minimize binary size. Pull Request resolved: https://github.com/facebook/rocksdb/pull/4652 Differential Revision: D12965427 Pulled By: yiwu-arbug fbshipit-source-id: c8b647642c24b3e5df6a2cd13112e452a08e8398
This commit is contained in:
parent
fce5994603
commit
8c2a48742a
@ -366,7 +366,7 @@ endif()
|
|||||||
option(ROCKSDB_LITE "Build RocksDBLite version" OFF)
|
option(ROCKSDB_LITE "Build RocksDBLite version" OFF)
|
||||||
if(ROCKSDB_LITE)
|
if(ROCKSDB_LITE)
|
||||||
add_definitions(-DROCKSDB_LITE)
|
add_definitions(-DROCKSDB_LITE)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -Os")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "Cygwin")
|
if(CMAKE_SYSTEM_NAME MATCHES "Cygwin")
|
||||||
|
17
Makefile
17
Makefile
@ -93,9 +93,24 @@ ifeq ($(MAKECMDGOALS),rocksdbjavastaticpublish)
|
|||||||
DEBUG_LEVEL=0
|
DEBUG_LEVEL=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Lite build flag.
|
||||||
|
LITE ?= 0
|
||||||
|
ifneq ($(LITE), 0)
|
||||||
|
OPT += -DROCKSDB_LITE
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Figure out optimize level.
|
||||||
|
ifneq ($(DEBUG_LEVEL), 2)
|
||||||
|
ifeq ($(LITE), 0)
|
||||||
|
OPT += -O2
|
||||||
|
else
|
||||||
|
OPT += -Os
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# compile with -O2 if debug level is not 2
|
# compile with -O2 if debug level is not 2
|
||||||
ifneq ($(DEBUG_LEVEL), 2)
|
ifneq ($(DEBUG_LEVEL), 2)
|
||||||
OPT += -O2 -fno-omit-frame-pointer
|
OPT += -fno-omit-frame-pointer
|
||||||
# Skip for archs that don't support -momit-leaf-frame-pointer
|
# Skip for archs that don't support -momit-leaf-frame-pointer
|
||||||
ifeq (,$(shell $(CXX) -fsyntax-only -momit-leaf-frame-pointer -xc /dev/null 2>&1))
|
ifeq (,$(shell $(CXX) -fsyntax-only -momit-leaf-frame-pointer -xc /dev/null 2>&1))
|
||||||
OPT += -momit-leaf-frame-pointer
|
OPT += -momit-leaf-frame-pointer
|
||||||
|
@ -85,7 +85,6 @@ NON_SHM="TMPD=/tmp/rocksdb_test_tmp"
|
|||||||
GCC_481="ROCKSDB_FBCODE_BUILD_WITH_481=1"
|
GCC_481="ROCKSDB_FBCODE_BUILD_WITH_481=1"
|
||||||
ASAN="COMPILE_WITH_ASAN=1"
|
ASAN="COMPILE_WITH_ASAN=1"
|
||||||
CLANG="USE_CLANG=1"
|
CLANG="USE_CLANG=1"
|
||||||
LITE="OPT=\"-DROCKSDB_LITE -g\""
|
|
||||||
TSAN="COMPILE_WITH_TSAN=1"
|
TSAN="COMPILE_WITH_TSAN=1"
|
||||||
UBSAN="COMPILE_WITH_UBSAN=1"
|
UBSAN="COMPILE_WITH_UBSAN=1"
|
||||||
TSAN_CRASH='CRASH_TEST_EXT_ARGS="--compression_type=zstd --log2_keys_per_lock=22"'
|
TSAN_CRASH='CRASH_TEST_EXT_ARGS="--compression_type=zstd --log2_keys_per_lock=22"'
|
||||||
@ -345,7 +344,7 @@ LITE_BUILD_COMMANDS="[
|
|||||||
$CLEANUP_ENV,
|
$CLEANUP_ENV,
|
||||||
{
|
{
|
||||||
'name':'Build RocksDB debug version',
|
'name':'Build RocksDB debug version',
|
||||||
'shell':'$LITE make J=1 all check || $CONTRUN_NAME=lite $TASK_CREATION_TOOL',
|
'shell':'make J=1 LITE=1 all check || $CONTRUN_NAME=lite $TASK_CREATION_TOOL',
|
||||||
'user':'root',
|
'user':'root',
|
||||||
$PARSER
|
$PARSER
|
||||||
},
|
},
|
||||||
@ -663,12 +662,12 @@ run_regression()
|
|||||||
|
|
||||||
# === lite build ===
|
# === lite build ===
|
||||||
make clean
|
make clean
|
||||||
OPT=-DROCKSDB_LITE make -j$(nproc) static_lib
|
make LITE=1 -j$(nproc) static_lib
|
||||||
send_size_to_ods static_lib_lite $(stat --printf="%s" librocksdb.a)
|
send_size_to_ods static_lib_lite $(stat --printf="%s" librocksdb.a)
|
||||||
strip librocksdb.a
|
strip librocksdb.a
|
||||||
send_size_to_ods static_lib_lite_stripped $(stat --printf="%s" librocksdb.a)
|
send_size_to_ods static_lib_lite_stripped $(stat --printf="%s" librocksdb.a)
|
||||||
|
|
||||||
OPT=-DROCKSDB_LITE make -j$(nproc) shared_lib
|
make LITE=1 -j$(nproc) shared_lib
|
||||||
send_size_to_ods shared_lib_lite $(stat --printf="%s" `readlink -f librocksdb.so`)
|
send_size_to_ods shared_lib_lite $(stat --printf="%s" `readlink -f librocksdb.so`)
|
||||||
strip `readlink -f librocksdb.so`
|
strip `readlink -f librocksdb.so`
|
||||||
send_size_to_ods shared_lib_lite_stripped $(stat --printf="%s" `readlink -f librocksdb.so`)
|
send_size_to_ods shared_lib_lite_stripped $(stat --printf="%s" `readlink -f librocksdb.so`)
|
||||||
|
Loading…
Reference in New Issue
Block a user