diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in index 0eaadfd18736..c446fc3815a9 100644 --- a/erts/emulator/Makefile.in +++ b/erts/emulator/Makefile.in @@ -209,8 +209,8 @@ LIBS += $(TYPE_LIBS) ORIG_LIBS:= $(LIBS) comma:=, -space:= -space+= +empty:= +space:=$(empty) $(empty) STATIC_NIFS=@STATIC_NIFS@ ifneq ($(STATIC_NIFS),no) @@ -351,7 +351,7 @@ endif CS_CFLAGS_ = $(TYPE_FLAGS) $(DEFS) $(WFLAGS) ifeq ($(GCC),yes) -CS_CFLAGS = $(subst -O2, $(GEN_OPT_FLGS) $(UNROLL_FLG), $(CS_CFLAGS_)) +CS_CFLAGS = $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) $(UNROLL_FLG) , $(CS_CFLAGS_)) else CS_CFLAGS = $(CS_CFLAGS_) endif @@ -856,28 +856,28 @@ endif # Usually the same as the default rule, but certain platforms (e.g. win32) mix # different compilers $(OBJDIR)/beam_emu.o: beam/emu/beam_emu.c - $(V_EMU_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_EMU_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/beam_emu.S: beam/emu/beam_emu.c - $(V_EMU_CC) -S -fverbose-asm $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_EMU_CC) -S -fverbose-asm $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pg.o: beam/%.c - $(V_CC) $(PROFILE_GENERATE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(PROFILE_GENERATE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pg.o: beam/emu/%.c - $(V_CC) $(PROFILE_GENERATE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(PROFILE_GENERATE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pu.o: beam/%.c $(PROFILE_USE_DEPS) - $(V_CC) $(PROFILE_USE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(PROFILE_USE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pu.o: beam/emu/%.c $(PROFILE_USE_DEPS) - $(V_CC) $(PROFILE_USE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(PROFILE_USE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pu.S: beam/%.c $(PROFILE_USE_DEPS) - $(V_CC) -S -fverbose-asm $(PROFILE_USE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) -S -fverbose-asm $(PROFILE_USE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%_pu.S: beam/emu/%.c $(PROFILE_USE_DEPS) - $(V_CC) -S -fverbose-asm $(PROFILE_USE) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) -S -fverbose-asm $(PROFILE_USE) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/PROFILE: $(BINDIR)/$(PROFILE_EXECUTABLE) $(V_at)echo " PROFILE ${PROFILE_EXECUTABLE}" @@ -903,7 +903,7 @@ ifeq ($(ERTS_BUILD_FALLBACK_POLL),yes) # Have to treat erl_poll differently as the same .c file is used # twice for kernel poll builds. $(OBJDIR)/erl_poll.o: sys/common/erl_poll.c - $(V_CC) -DERTS_KERNEL_POLL_VERSION $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) -DERTS_KERNEL_POLL_VERSION $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ # Do a copy in order to make debuggers less confused $(TTF_DIR)/erl_poll.flbk.c: sys/common/erl_poll.c @@ -911,7 +911,7 @@ $(TTF_DIR)/erl_poll.flbk.c: sys/common/erl_poll.c @touch $@ $(OBJDIR)/erl_poll.flbk.o: $(TTF_DIR)/erl_poll.flbk.c - $(V_CC) -DERTS_NO_KERNEL_POLL_VERSION $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) -DERTS_NO_KERNEL_POLL_VERSION $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ endif @@ -919,13 +919,13 @@ endif # General targets # $(OBJDIR)/%.o: beam/%.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%.o: beam/emu/%.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%.o: beam/jit/%.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%.o: $(TARGET)/%.c $(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@ @@ -937,7 +937,7 @@ $(OBJDIR)/%.o: sys/$(ERLANG_OSTYPE)/%.c $(V_CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%.o: sys/common/%.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(OBJDIR)/%.o: drivers/common/%.c $(V_CC) $(CFLAGS) -DLIBSCTP=$(LIBSCTP) $(INCLUDES) -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) -c $< -o $@ @@ -968,24 +968,24 @@ ASMJIT_PCH_SRC=$(TTF_DIR)/asmjit/asmjit.hpp $(OBJDIR)/%.o: beam/jit/%.cpp $(ASMJIT_PCH_OBJ) $(V_CXX) $(ASMJIT_FLAGS) $(INCLUDES) \ - $(subst -O2, $(GEN_OPT_FLGS), $(CXXFLAGS)) \ + $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CXXFLAGS)) \ -include $(ASMJIT_PCH_SRC) -c $< -o $@ $(OBJDIR)/%.o: beam/jit/$(JIT_ARCH)/%.cpp beam/jit/$(JIT_ARCH)/beam_asm.hpp $(ASMJIT_PCH_OBJ) $(V_CXX) $(ASMJIT_FLAGS) $(INCLUDES) \ - $(subst -O2, $(GEN_OPT_FLGS), $(CXXFLAGS)) \ + $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CXXFLAGS)) \ -include $(ASMJIT_PCH_SRC) -c $< -o $@ $(OBJDIR)/asmjit/%.o: asmjit/%.cpp $(ASMJIT_PCH_OBJ) $(dir $@) $(V_CXX) $(ASMJIT_FLAGS) $(INCLUDES) \ - $(subst -O2, $(GEN_OPT_FLGS), $(ASMJIT_CXXFLAGS)) \ + $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(ASMJIT_CXXFLAGS)) \ -include $(ASMJIT_PCH_SRC) -c $< -o $@ ## The dependency on erl_bif_info.c is in order to trigger a rebuild when ## the git sha define on the command line argument changes $(ASMJIT_PCH_OBJ): $(ASMJIT_PCH_SRC) $(ASMJIT_TTF_H) beam/erl_bif_info.c $(V_CXX) $(ASMJIT_FLAGS) $(INCLUDES) \ - $(subst -O2, $(GEN_OPT_FLGS), $(CXXFLAGS)) \ + $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) , $(CXXFLAGS)) \ -I$(TTF_DIR) -c $< -o $@ ## We copy all asmjit headers into TTF_DIR in order for cross-compilation @@ -1017,7 +1017,7 @@ $(BINDIR)/$(CS_EXECUTABLE): $(TTF_DIR)/GENERATED $(PRELOAD_SRC) $(CS_OBJ) $(ERTS ifeq ($(GCC),yes) $(OBJDIR)/erl_goodfit_alloc.o: beam/erl_goodfit_alloc.c - $(V_CC) $(subst -O2, $(GEN_OPT_FLGS) $(UNROLL_FLG), $(CFLAGS)) $(INCLUDES) -c $< -o $@ + $(V_CC) $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) $(UNROLL_FLG) , $(CFLAGS)) $(INCLUDES) -c $< -o $@ endif # ---------------------------------------------------------------------- @@ -1384,8 +1384,8 @@ DEP_CXX=$(CXX) DEP_INCLUDES=$(INCLUDES) -I../etc/win32 \ -Idrivers/common -Idrivers/$(ERLANG_OSTYPE) \ -Inifs/common -Inifs/$(ERLANG_OSTYPE) -DEP_FLAGS=-MM $(subst -O2,,$(CFLAGS)) $(INCLUDES) -DEP_CXXFLAGS=-MM $(subst -O2,,$(CXXFLAGS)) $(DEP_INCLUDES) $(ASMJIT_FLAGS) +DEP_FLAGS=-MM $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) ,$(CFLAGS)) $(INCLUDES) +DEP_CXXFLAGS=-MM $(subst $(space)-O2$(space), $(GEN_OPT_FLGS) ,$(CXXFLAGS)) $(DEP_INCLUDES) $(ASMJIT_FLAGS) # ifeq ($(USING_VC),yes) # VC++ used for compiling. If __GNUC__ is defined we will include diff --git a/erts/emulator/zstd/zstd.mk b/erts/emulator/zstd/zstd.mk index 2362be95e21f..5c1886df97cd 100644 --- a/erts/emulator/zstd/zstd.mk +++ b/erts/emulator/zstd/zstd.mk @@ -51,7 +51,8 @@ ifeq ($(TYPE),debug) ZSTD_CFLAGS = -DDEBUGLEVEL=1 $(DEBUG_CFLAGS) $(DEFS) $(THR_DEFS) else # !debug && !gcov -ZSTD_CFLAGS = $(subst -O2, -O3, $(CONFIGURE_CFLAGS) $(DEFS) $(THR_DEFS)) +space:=$(subst ,, ) +ZSTD_CFLAGS = $(subst $(space)-O2$(space), -O3 , $(CONFIGURE_CFLAGS) $(DEFS) $(THR_DEFS)) ifeq ($(TYPE), asan) ZSTD_CFLAGS += -DZSTD_ADDRESS_SANITIZER endif # asan diff --git a/erts/lib_src/Makefile.in b/erts/lib_src/Makefile.in index b92210ba74e5..28bb60c079a8 100644 --- a/erts/lib_src/Makefile.in +++ b/erts/lib_src/Makefile.in @@ -43,7 +43,9 @@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ ERLANG_OSTYPE=@ERLANG_OSTYPE@ OMIT_FP=false -CFLAGS=$(subst O2,O3, @CFLAGS@) +empty:= +space:=$(empty) $(empty) +CFLAGS:=$(subst $(space)-O2$(space), -O3 , @CFLAGS@) LDFLAGS=@LDFLAGS@ ifeq ($(TYPE),debug)