mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 23:24:27 +01:00
configure: use "-Og" for non-developer builds, add COPTFLAGS variable.
Unfortuntely we get spurious uninitialized variable warnings with anything but -O3 or no optimization, so set default CWARNFLAGS appropriately. MCP bench results without optimization: store_load_msec:28509-31001(29206.6+/-9.4e+02) vsz_kb:580004-580016(580006+/-4.8) store_rewrite_sec:11.640000-12.730000(11.908+/-0.41) listnodes_sec:1.790000-1.880000(1.83+/-0.032) listchannels_sec:21.180000-21.950000(21.476+/-0.27) routing_sec:2.210000-11.160000(7.126+/-3.1) peer_write_all_sec:36.270000-41.200000(38.168+/-1.9) MCP bench with -Og: 22% speedup vs no optimization store_load_msec:21963-23645(22841+/-6.6e+02) vsz_kb:579916 store_rewrite_sec:10.080000-10.960000(10.456+/-0.3) listnodes_sec:1.280000-1.390000(1.338+/-0.047) listchannels_sec:14.770000-16.080000(15.518+/-0.46) routing_sec:0.990000-6.660000(3.958+/-2.2) peer_write_all_sec:29.950000-32.950000(31.138+/-1) MCP bench with -O2: 31% speedup vs no optimization store_load_msec:20713-22088(21505.6+/-4.8e+02) vsz_kb:579928 store_rewrite_sec:9.570000-11.200000(10.192+/-0.54) listnodes_sec:0.960000-1.090000(1.028+/-0.045) listchannels_sec:10.400000-11.770000(11.012+/-0.48) routing_sec:0.300000-3.140000(1.978+/-1.1) peer_write_all_sec:28.980000-30.310000(29.572+/-0.44) MCP bench with -O3 -flto: 36% speedup vs no optimization store_load_msec:19616-20191(19862.6+/-1.9e+02) vsz_kb:578452 store_rewrite_sec:8.980000-9.960000(9.55+/-0.32) listnodes_sec:0.920000-1.910000(1.18+/-0.38) listchannels_sec:8.960000-9.450000(9.206+/-0.16) routing_sec:0.730000-1.850000(1.438+/-0.42) peer_write_all_sec:28.090000-29.410000(28.772+/-0.42) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
committed by
neil saitug
parent
b95e10c354
commit
6b32b72dee
@@ -17,7 +17,7 @@ addons:
|
|||||||
- gcc-4.8
|
- gcc-4.8
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- ARCH=64 SOURCE_CHECK_ONLY=true CDEBUGFLAGS="-std=gnu11 -g -fstack-protector -O3 -flto" LDFLAGS="-O3 -flto"
|
- ARCH=64 SOURCE_CHECK_ONLY=true COPTFLAGS="-O3 -flto"
|
||||||
# - VALGRIND=0 ARCH=32 DEVELOPER=1 COMPILER=gcc TEST_GROUP=1 TEST_GROUP_COUNT=2 SOURCE_CHECK_ONLY=false
|
# - VALGRIND=0 ARCH=32 DEVELOPER=1 COMPILER=gcc TEST_GROUP=1 TEST_GROUP_COUNT=2 SOURCE_CHECK_ONLY=false
|
||||||
# - VALGRIND=0 ARCH=32 DEVELOPER=1 COMPILER=gcc TEST_GROUP=2 TEST_GROUP_COUNT=2 SOURCE_CHECK_ONLY=false
|
# - VALGRIND=0 ARCH=32 DEVELOPER=1 COMPILER=gcc TEST_GROUP=2 TEST_GROUP_COUNT=2 SOURCE_CHECK_ONLY=false
|
||||||
- VALGRIND=0 ARCH=64 DEVELOPER=1 COMPILER=gcc SOURCE_CHECK_ONLY=false
|
- VALGRIND=0 ARCH=64 DEVELOPER=1 COMPILER=gcc SOURCE_CHECK_ONLY=false
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
- JSON API: `invoice` expiry defaults to 7 days, and can have s/m/h/d/w suffixes.
|
- JSON API: `invoice` expiry defaults to 7 days, and can have s/m/h/d/w suffixes.
|
||||||
- Config: Increased default amount for minimal channel capacity from 1k sat to 10k sat.
|
- Config: Increased default amount for minimal channel capacity from 1k sat to 10k sat.
|
||||||
|
- Build: Non-developer builds are now done with "-Og" optimization.
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -185,14 +185,12 @@ WIRE_GEN := tools/generate-wire.py
|
|||||||
ALL_PROGRAMS =
|
ALL_PROGRAMS =
|
||||||
|
|
||||||
CPPFLAGS = -DBINTOPKGLIBEXECDIR='"'$(shell sh tools/rel.sh $(bindir) $(pkglibexecdir))'"'
|
CPPFLAGS = -DBINTOPKGLIBEXECDIR='"'$(shell sh tools/rel.sh $(bindir) $(pkglibexecdir))'"'
|
||||||
CWARNFLAGS := -Werror -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition
|
CFLAGS = $(CPPFLAGS) $(CWARNFLAGS) $(CDEBUGFLAGS) $(COPTFLAGS) -I $(CCANDIR) $(EXTERNAL_INCLUDE_FLAGS) -I . -I/usr/local/include $(FEATURES) $(COVFLAGS) $(DEV_CFLAGS) -DSHACHAIN_BITS=48 -DJSMN_PARENT_LINKS $(PIE_CFLAGS) $(COMPAT_CFLAGS)
|
||||||
CDEBUGFLAGS := -std=gnu11 -g -fstack-protector $(SANITIZER_FLAGS)
|
|
||||||
CFLAGS = $(CPPFLAGS) $(CWARNFLAGS) $(CDEBUGFLAGS) -I $(CCANDIR) $(EXTERNAL_INCLUDE_FLAGS) -I . -I/usr/local/include $(FEATURES) $(COVFLAGS) $(DEV_CFLAGS) -DSHACHAIN_BITS=48 -DJSMN_PARENT_LINKS $(PIE_CFLAGS) $(COMPAT_CFLAGS)
|
|
||||||
|
|
||||||
# We can get configurator to run a different compile cmd to cross-configure.
|
# We can get configurator to run a different compile cmd to cross-configure.
|
||||||
CONFIGURATOR_CC := $(CC)
|
CONFIGURATOR_CC := $(CC)
|
||||||
|
|
||||||
LDFLAGS = $(PIE_LDFLAGS) $(SANITIZER_FLAGS)
|
LDFLAGS = $(PIE_LDFLAGS) $(SANITIZER_FLAGS) $(COPTFLAGS)
|
||||||
ifeq ($(STATIC),1)
|
ifeq ($(STATIC),1)
|
||||||
LDLIBS = -L/usr/local/lib -Wl,-dn -lgmp -lsqlite3 -lz -Wl,-dy -lm -lpthread -ldl $(COVFLAGS)
|
LDLIBS = -L/usr/local/lib -Wl,-dn -lgmp -lsqlite3 -lz -Wl,-dy -lm -lpthread -ldl $(COVFLAGS)
|
||||||
else
|
else
|
||||||
|
|||||||
26
configure
vendored
26
configure
vendored
@@ -6,7 +6,6 @@ set -e
|
|||||||
# Default values, loaded from environment or canned.
|
# Default values, loaded from environment or canned.
|
||||||
PREFIX=${PREFIX:-/usr/local}
|
PREFIX=${PREFIX:-/usr/local}
|
||||||
CC=${CC:-cc}
|
CC=${CC:-cc}
|
||||||
CWARNFLAGS=${CWARNFLAGS:--Werror -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition}
|
|
||||||
CDEBUGFLAGS=${CDEBUGFLAGS:--std=gnu11 -g -fstack-protector}
|
CDEBUGFLAGS=${CDEBUGFLAGS:--std=gnu11 -g -fstack-protector}
|
||||||
DEVELOPER=${DEVELOPER:-0}
|
DEVELOPER=${DEVELOPER:-0}
|
||||||
EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-0}
|
EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-0}
|
||||||
@@ -43,6 +42,7 @@ usage()
|
|||||||
usage_with_default "CDEBUGFLAGS" "$CDEBUGFLAGS"
|
usage_with_default "CDEBUGFLAGS" "$CDEBUGFLAGS"
|
||||||
usage_with_default "CONFIGURATOR_CC" "$CONFIGURATOR_CC"
|
usage_with_default "CONFIGURATOR_CC" "$CONFIGURATOR_CC"
|
||||||
usage_with_default "PYTEST" "$PYTEST"
|
usage_with_default "PYTEST" "$PYTEST"
|
||||||
|
usage_with_default "COPTFLAGS" "$COPTFLAGS"
|
||||||
echo " To override compile line for configurator itself"
|
echo " To override compile line for configurator itself"
|
||||||
|
|
||||||
echo "Options include:"
|
echo "Options include:"
|
||||||
@@ -110,6 +110,7 @@ for opt in "$@"; do
|
|||||||
CONFIGURATOR_CC=*) CONFIGURATOR_CC="${opt#CONFIGURATOR_CC=}";;
|
CONFIGURATOR_CC=*) CONFIGURATOR_CC="${opt#CONFIGURATOR_CC=}";;
|
||||||
CWARNFLAGS=*) CWARNFLAGS="${opt#CWARNFLAGS=}";;
|
CWARNFLAGS=*) CWARNFLAGS="${opt#CWARNFLAGS=}";;
|
||||||
CDEBUGFLAGS=*) CDEBUGFLAGS="${opt#CDEBUGFLAGS=}";;
|
CDEBUGFLAGS=*) CDEBUGFLAGS="${opt#CDEBUGFLAGS=}";;
|
||||||
|
COPTFLAGS=*) COPTFLAGS="${opt#COPTFLAGS=}";;
|
||||||
PYTEST=*) PYTEST="${opt#PYTEST=}";;
|
PYTEST=*) PYTEST="${opt#PYTEST=}";;
|
||||||
--prefix=*) PREFIX="${opt#--prefix=}";;
|
--prefix=*) PREFIX="${opt#--prefix=}";;
|
||||||
--enable-developer) DEVELOPER=1;;
|
--enable-developer) DEVELOPER=1;;
|
||||||
@@ -132,8 +133,26 @@ for opt in "$@"; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Default COPTFLAGS is only set if not developer
|
||||||
|
if [ -z ${COPTFLAGS+x} ]; then
|
||||||
|
if [ "$DEVELOPER" = 0 ]; then
|
||||||
|
COPTFLAGS="-Og"
|
||||||
|
else
|
||||||
|
COPTFLAGS=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We only enable Werror if we're -O3 or no-optimization. Otherwise gcc gives
|
||||||
|
# false positives.
|
||||||
|
if [ -z ${CWARNFLAGS+x} ]; then
|
||||||
|
CWARNFLAGS="-Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition"
|
||||||
|
if [ -x ${COPTFLAGS+x} ] || [ -z "${COPTFLAGS##*-O3*}" ]; then
|
||||||
|
CWARNFLAGS="$CWARNFLAGS -Werror"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo -n "Compiling $CONFIGURATOR..."
|
echo -n "Compiling $CONFIGURATOR..."
|
||||||
$CC $CWARNFLAGS $CDEBUGFLAGS -o $CONFIGURATOR $CONFIGURATOR.c
|
$CC $CWARNFLAGS $CDEBUGFLAGS $COPTFLAGS -o $CONFIGURATOR $CONFIGURATOR.c
|
||||||
echo "done"
|
echo "done"
|
||||||
|
|
||||||
if [ -z "$VALGRIND" ]; then
|
if [ -z "$VALGRIND" ]; then
|
||||||
@@ -156,7 +175,7 @@ if [ "$ASAN" = "1" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f $CONFIG_VAR_FILE.$$
|
rm -f $CONFIG_VAR_FILE.$$
|
||||||
$CONFIGURATOR --extra-tests --autotools-style --var-file=$CONFIG_VAR_FILE.$$ --header-file=$CONFIG_HEADER --configurator-cc="$CONFIGURATOR_CC" "$CC" $CWARNFLAGS $CDEBUGFLAGS <<EOF
|
$CONFIGURATOR --extra-tests --autotools-style --var-file=$CONFIG_VAR_FILE.$$ --header-file=$CONFIG_HEADER --configurator-cc="$CONFIGURATOR_CC" "$CC" $CWARNFLAGS $CDEBUGFLAGS $COPTFLAGS <<EOF
|
||||||
var=HAVE_GOOD_LIBSODIUM
|
var=HAVE_GOOD_LIBSODIUM
|
||||||
desc=libsodium with IETF chacha20 variants
|
desc=libsodium with IETF chacha20 variants
|
||||||
style=DEFINES_EVERYTHING|EXECUTE|MAY_NOT_COMPILE
|
style=DEFINES_EVERYTHING|EXECUTE|MAY_NOT_COMPILE
|
||||||
@@ -194,6 +213,7 @@ add_var CC "$CC"
|
|||||||
add_var CONFIGURATOR_CC "$CONFIGURATOR_CC"
|
add_var CONFIGURATOR_CC "$CONFIGURATOR_CC"
|
||||||
add_var CWARNFLAGS "$CWARNFLAGS"
|
add_var CWARNFLAGS "$CWARNFLAGS"
|
||||||
add_var CDEBUGFLAGS "$CDEBUGFLAGS"
|
add_var CDEBUGFLAGS "$CDEBUGFLAGS"
|
||||||
|
add_var COPTFLAGS "$COPTFLAGS"
|
||||||
add_var VALGRIND "$VALGRIND"
|
add_var VALGRIND "$VALGRIND"
|
||||||
add_var DEVELOPER "$DEVELOPER" $CONFIG_HEADER
|
add_var DEVELOPER "$DEVELOPER" $CONFIG_HEADER
|
||||||
add_var EXPERIMENTAL_FEATURES "$EXPERIMENTAL_FEATURES" $CONFIG_HEADER
|
add_var EXPERIMENTAL_FEATURES "$EXPERIMENTAL_FEATURES" $CONFIG_HEADER
|
||||||
|
|||||||
Reference in New Issue
Block a user