diff options
author | Daniel Tralamazza <daniel@tralamazza.com> | 2016-07-08 15:46:01 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-07-11 12:04:56 +0100 |
commit | 9626662819ebd677106ba2655c4370912bef8588 (patch) | |
tree | 4e2765a746334353b8b26abe2d148b30bafc789f | |
parent | 7711d87563f5ffe508eaea558299946469153928 (diff) | |
download | micropython-9626662819ebd677106ba2655c4370912bef8588.tar.gz micropython-9626662819ebd677106ba2655c4370912bef8588.zip |
qemu-arm: Enable gcc LTO option for nlrthumb.c
LTO can't "see" inside naked functions, but we can mark `nlr_push_tail` as used.
-rw-r--r-- | py/nlrthumb.c | 2 | ||||
-rw-r--r-- | qemu-arm/Makefile | 3 |
2 files changed, 1 insertions, 4 deletions
diff --git a/py/nlrthumb.c b/py/nlrthumb.c index a61c73c036..b57d8df464 100644 --- a/py/nlrthumb.c +++ b/py/nlrthumb.c @@ -71,7 +71,7 @@ __attribute__((naked)) unsigned int nlr_push(nlr_buf_t *nlr) { return 0; // needed to silence compiler warning } -unsigned int nlr_push_tail(nlr_buf_t *nlr) { +__attribute__((used)) unsigned int nlr_push_tail(nlr_buf_t *nlr) { nlr_buf_t **top = &MP_STATE_THREAD(nlr_top); nlr->prev = *top; *top = nlr; diff --git a/qemu-arm/Makefile b/qemu-arm/Makefile index d09282a1e8..31ba6baa26 100644 --- a/qemu-arm/Makefile +++ b/qemu-arm/Makefile @@ -53,9 +53,6 @@ OBJ_TEST += $(addprefix $(BUILD)/, $(SRC_TEST_C:.c=.o)) OBJ_TEST += $(addprefix $(BUILD)/, $(SRC_S:.s=.o)) OBJ_TEST += $(BUILD)/tinytest.o -# we can't use LTO for nlrthumb.c because it contains inline assembler -$(PY_BUILD)/nlrthumb.o: CFLAGS += -fno-lto - all: run run: $(BUILD)/firmware.elf |