From 80f454d546aa28fafeabcdb863121a7152c7d7b3 Mon Sep 17 00:00:00 2001 From: Kurt Sassenrath Date: Thu, 20 Jul 2023 22:38:20 -0700 Subject: [PATCH] Various fixes for C++ compilation. --- common.mk | 5 +++-- lwip/component.mk | 2 +- parameters.mk | 8 ++++---- utils/filteroutput.py | 12 ++++++------ 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/common.mk b/common.mk index 82a6cc1..398c9be 100644 --- a/common.mk +++ b/common.mk @@ -115,6 +115,7 @@ $(1)_CPPFLAGS ?= $(CPPFLAGS) $(1)_CFLAGS ?= $(CFLAGS) $(1)_CXXFLAGS ?= $(CXXFLAGS) $(1)_CC_BASE = $(Q) $(CC) $$(addprefix -I,$$(INC_DIRS)) $$(addprefix -I,$$($(1)_INC_DIR)) $$($(1)_CPPFLAGS) +$(1)_CXX_BASE = $(Q) $(C++) $$(addprefix -I,$$(INC_DIRS)) $$(addprefix -I,$$($(1)_INC_DIR)) $$($(1)_CPPFLAGS) $(1)_AR = $(call lc,$(BUILD_DIR)$(1).a) $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.c $$($(1)_MAKEFILE) $(wildcard $(ROOT)*.mk) | $$($(1)_SRC_DIR) @@ -126,8 +127,8 @@ $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.c $$($(1)_MAKEFILE) $(wildcard $(ROOT)* $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.cpp $$($(1)_MAKEFILE) $(wildcard $(ROOT)*.mk) | $$($(1)_SRC_DIR) $(vecho) "C++ $$<" $(Q) mkdir -p $$(dir $$@) - $$($(1)_CC_BASE) $$($(1)_CXXFLAGS) -c $$< -o $$@ - $$($(1)_CC_BASE) $$($(1)_CXXFLAGS) -MM -MT $$@ -MF $$(@:.o=.d) $$< + $$($(1)_CXX_BASE) $$($(1)_CXXFLAGS) -c $$< -o $$@ + $$($(1)_CXX_BASE) $$($(1)_CXXFLAGS) -MM -MT $$@ -MF $$(@:.o=.d) $$< $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.S $$($(1)_MAKEFILE) $(wildcard $(ROOT)*.mk) | $$($(1)_SRC_DIR) $(vecho) "AS $$<" diff --git a/lwip/component.mk b/lwip/component.mk index ea35d05..9dd9c4b 100644 --- a/lwip/component.mk +++ b/lwip/component.mk @@ -6,7 +6,7 @@ INC_DIRS += $(LWIP_DIR)include $(ROOT)lwip/include $(lwip_ROOT)include $(LWIP_DI # args for passing into compile rule generation lwip_INC_DIR = # all in INC_DIRS, needed for normal operation lwip_SRC_DIR = $(lwip_ROOT) $(LWIP_DIR)api $(LWIP_DIR)core $(LWIP_DIR)core/ipv4 $(LWIP_DIR)core/ipv6 $(LWIP_DIR)netif -lwip_SRC_DIR += $(LWIP_DIR)apps/* +#lwip_SRC_DIR += $(LWIP_DIR)apps/* $(eval $(call component_compile_rules,lwip)) diff --git a/parameters.mk b/parameters.mk index d133ef5..c25e12a 100644 --- a/parameters.mk +++ b/parameters.mk @@ -30,7 +30,7 @@ ESPPORT ?= /dev/ttyUSB0 ESPBAUD ?= 115200 # firmware tool arguments -ESPTOOL_ARGS=-fs $(FLASH_SIZE)m -fm $(FLASH_MODE) -ff $(FLASH_SPEED)m +ESPTOOL_ARGS=-fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_SPEED)m # set this to 0 if you don't need floating point support in printf/scanf @@ -88,9 +88,9 @@ WARNINGS_AS_ERRORS ?= 0 # Common flags for both C & C++_ C_CXX_FLAGS ?= -Wall -Wl,-EL -nostdlib $(EXTRA_C_CXX_FLAGS) # Flags for C only -CFLAGS ?= $(C_CXX_FLAGS) -std=gnu99 $(EXTRA_CFLAGS) +CFLAGS ?= $(C_CXX_FLAGS) -std=gnu11 $(EXTRA_CFLAGS) # Flags for C++ only -CXXFLAGS ?= $(C_CXX_FLAGS) -std=c++0x -fno-exceptions -fno-rtti $(EXTRA_CXXFLAGS) +CXXFLAGS ?= $(C_CXX_FLAGS) --std=c++20 -fno-exceptions -fno-rtti $(EXTRA_CXXFLAGS) # these aren't all technically preprocesor args, but used by all 3 of C, C++, assembler CPPFLAGS += -mlongcalls -mtext-section-literals @@ -130,10 +130,10 @@ CPPFLAGS += -DGITSHORTREV=$(GITSHORTREV) LINKER_SCRIPTS += $(ROOT)ld/program.ld $(ROOT)ld/rom.ld # rboot firmware binary paths for flashing +RBOOT_CONF ?= $(ROOT)bootloader/firmware_prebuilt/blank_config.bin RBOOT_ARGS ?= 0x0 $(RBOOT_BIN) 0x1000 $(RBOOT_CONF) RBOOT_BIN = $(ROOT)bootloader/firmware/rboot.bin RBOOT_PREBUILT_BIN = $(ROOT)bootloader/firmware_prebuilt/rboot.bin -RBOOT_CONF = $(ROOT)bootloader/firmware_prebuilt/blank_config.bin # if a custom bootloader hasn't been compiled, use the # prebuilt binary from the source tree diff --git a/utils/filteroutput.py b/utils/filteroutput.py index 5e9b1cf..9b8c932 100755 --- a/utils/filteroutput.py +++ b/utils/filteroutput.py @@ -74,13 +74,13 @@ def main(): print("Reading from stdin...") port = sys.stdin # disable echo - try: + try: old_attr = termios.tcgetattr(sys.stdin.fileno()) - attr = termios.tcgetattr(sys.stdin.fileno()) - attr[3] = attr[3] & ~termios.ECHO - termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN, attr) - except termios.error: - pass + attr = termios.tcgetattr(sys.stdin.fileno()) + attr[3] = attr[3] & ~termios.ECHO + termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN, attr) + except termios.error: + pass try: while True: