diff --git a/Makefile b/Makefile index bd8a5b5c..d8f7cae0 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,8 @@ CFLAGS += $(call chkCCflag, -fno-caller-saves -fno-guess-branch-probability -fno # very old gcc toolchains may not have these options CFLAGS += $(call chkCCflag, -fno-tree-loop-if-convert -fipa-pta -fno-ipa-cp) endif +else +CFLAGS += $(call chkCCflag, -flto) endif # revision info from repository if this not a tagged release @@ -149,10 +151,6 @@ all: $(TARGET).opk endif endif -ifneq (,$(filter %mips32r2, $(CFLAGS))) -CFLAGS += -DMIPS_USE_SYNCI # mips32r2 clear_cache uses SYNCI instead of a syscall -endif - OBJS += platform/opendingux/inputmap.o use_inputmap ?= 1 @@ -416,6 +414,10 @@ ifneq (,$(findstring -flto,$(CFLAGS))) # to avoid saving and reloading it. However, this collides with the use of LTO. pico/32x/memory.o: CFLAGS += -fno-lto pico/32x/sh2soc.o: CFLAGS += -fno-lto +cpu/sh2/compiler.o: CFLAGS += -fno-lto +endif +ifneq (,$(filter mips64%, $(ARCH))$(filter %mips32r2, $(CFLAGS))) +CFLAGS += -DMIPS_USE_SYNCI # mips32r2 clear_cache uses SYNCI instead of a syscall endif endif