From b6d37008f5acf43b74daa011084d574b54de47f7 Mon Sep 17 00:00:00 2001 From: mjs1441 Date: Sun, 6 Jul 2025 17:13:06 +0100 Subject: [PATCH] Fix missing #if for PINIO_COUNT (#14515) Allow user to supply CFLAGS_DISABLED to Makefile. Fix missing #if..endif for PINIO_COUNT in pinio.c. Fix other strncpy build warning/errors for build with CFLAGS_DISABLED="-flto=auto". --- Makefile | 4 +++- src/main/cms/cms_menu_firmware.c | 2 ++ src/main/fc/board_info.c | 4 ++++ src/main/pg/pinio.c | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c6d2c6463d..4e03b04399 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ SERIAL_DEVICE ?= $(firstword $(wildcard /dev/ttyACM*) $(firstword $(wildcard / FLASH_SIZE ?= # Disabled build flags -CFLAGS_DISABLED := +CFLAGS_DISABLED ?= ############################################################################### # Things that need to be maintained as the source changes @@ -349,6 +349,8 @@ LD_FLAGS = -lm \ $(EXTRA_LD_FLAGS) endif +LTO_FLAGS := $(filter-out $(CFLAGS_DISABLED), $(LTO_FLAGS)) + ############################################################################### # No user-serviceable parts below ############################################################################### diff --git a/src/main/cms/cms_menu_firmware.c b/src/main/cms/cms_menu_firmware.c index 25073a93aa..f039e24595 100644 --- a/src/main/cms/cms_menu_firmware.c +++ b/src/main/cms/cms_menu_firmware.c @@ -196,7 +196,9 @@ static const void *cmsx_FirmwareInit(displayPort_t *pDisp) UNUSED(pDisp); strncpy(manufacturerId, getManufacturerId(), MAX_MANUFACTURER_ID_LENGTH + 1); + manufacturerId[MAX_MANUFACTURER_ID_LENGTH] = 0; strncpy(boardName, getBoardName(), MAX_BOARD_NAME_LENGTH + 1); + boardName[MAX_BOARD_NAME_LENGTH] = 0; return NULL; } diff --git a/src/main/fc/board_info.c b/src/main/fc/board_info.c index f66ab3acca..fcc7f4ebee 100644 --- a/src/main/fc/board_info.c +++ b/src/main/fc/board_info.c @@ -43,7 +43,9 @@ void initBoardInformation(void) boardInformationSet = boardConfig()->boardInformationSet; if (boardInformationSet) { strncpy(manufacturerId, boardConfig()->manufacturerId, MAX_MANUFACTURER_ID_LENGTH + 1); + manufacturerId[MAX_MANUFACTURER_ID_LENGTH] = 0; strncpy(boardName, boardConfig()->boardName, MAX_BOARD_NAME_LENGTH + 1); + boardName[MAX_BOARD_NAME_LENGTH] = 0; } #endif @@ -87,6 +89,7 @@ bool setManufacturerId(const char *newManufacturerId) #if !defined(BOARD_NAME) if (!boardInformationSet || strlen(manufacturerId) == 0) { strncpy(manufacturerId, newManufacturerId, MAX_MANUFACTURER_ID_LENGTH + 1); + manufacturerId[MAX_MANUFACTURER_ID_LENGTH] = 0; boardInformationWasUpdated = true; @@ -105,6 +108,7 @@ bool setBoardName(const char *newBoardName) #if !defined(BOARD_NAME) if (!boardInformationSet || strlen(boardName) == 0) { strncpy(boardName, newBoardName, MAX_BOARD_NAME_LENGTH + 1); + boardName[MAX_BOARD_NAME_LENGTH] = 0; boardInformationWasUpdated = true; diff --git a/src/main/pg/pinio.c b/src/main/pg/pinio.c index c08033778b..bd6e65d3aa 100644 --- a/src/main/pg/pinio.c +++ b/src/main/pg/pinio.c @@ -104,9 +104,11 @@ void pgResetFn_pinioConfig(pinioConfig_t *config) config->config[1] = PINIO2_CONFIG; config->config[2] = PINIO3_CONFIG; config->config[3] = PINIO4_CONFIG; +#if PINIO_COUNT > 4 config->config[4] = PINIO5_CONFIG; config->config[5] = PINIO6_CONFIG; config->config[6] = PINIO7_CONFIG; config->config[7] = PINIO8_CONFIG; +#endif } #endif