unix: Fix behaviour of COPT/NDEBUG for unix variants.

Based on eg 1e6fd9f2b4, it's understood that
the intention for unix builds is that regular builds disable assert, but
the coverage build should set -O0 and enable asserts.

It looks like this didn't work (even before variants were introduced, eg at
v1.11) -- coverage always built with -Os and -DNDEBUG.

This commit makes it possible for variants to have finer-grained control
over COPT flags, and enables assert() and -O0 on coverage builds.

Other variants already match the defaults so they have been updated.
pull/5890/head
Jim Mussared 2020-04-03 12:55:14 +11:00 zatwierdzone przez Damien George
rodzic f66c989516
commit 45cf76465c
4 zmienionych plików z 14 dodań i 7 usunięć

Wyświetl plik

@ -44,10 +44,18 @@ CFLAGS += $(INC) $(CWARN) -std=gnu99 -DUNIX $(CFLAGS_MOD) $(COPT) -I$(VARIANT_DI
# Debugging/Optimization
ifdef DEBUG
CFLAGS += -g
COPT = -O0
COPT ?= -O0
else
COPT = -Os -fdata-sections -ffunction-sections -DNDEBUG
COPT ?= -Os
COPT += -fdata-sections -ffunction-sections
COPT += -DNDEBUG
endif
# Always enable symbols -- They're occasionally useful, and don't make it into the
# final .bin/.hex/.dfu so the extra size doesn't matter.
CFLAGS += -g
ifndef DEBUG
# _FORTIFY_SOURCE is a feature in gcc/glibc which is intended to provide extra
# security for detecting buffer overflows. Some distros (Ubuntu at the very least)
# have it enabled by default.

Wyświetl plik

@ -1,6 +1,7 @@
PROG ?= micropython-coverage
COPT = -O0
# Disable optimisations and enable assert() on coverage builds.
DEBUG ?= 1
CFLAGS += \
-fprofile-arcs -ftest-coverage \

Wyświetl plik

@ -1,6 +1,6 @@
# build synthetically fast interpreter for benchmarking
COPT = "-O2 -DNDEBUG -fno-crossjumping"
COPT += "-fno-crossjumping -O2"
PROG = micropython-fast

Wyświetl plik

@ -1,6 +1,4 @@
# build a minimal interpreter
COPT = -Os -DNDEBUG
PROG = micropython-minimal
FROZEN_MANIFEST =