From 0f8f05db29bbad84bbc12cdefa7126088a589b43 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 12 Oct 2025 16:10:13 -0400 Subject: [PATCH] build: Enforce -Wundef on all targets. Simulators (and some hosted targets) no longer get a free pass! This commit includes general fixes for simulator builds, but it will undoubtedly result in many more warnings that need to be properly fixed. Change-Id: I6bb9d3fc4a29ccfe40366c438e058b5dfff0ddc3 --- firmware/drivers/button.c | 5 ++++- firmware/export/config.h | 4 +++- firmware/export/config/sim.h | 9 +++++++-- tools/configure | 12 ++++++------ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index b55bfb3192..010893619e 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -33,11 +33,14 @@ #include "serial.h" #include "power.h" #include "powermgmt.h" -#if defined(HAVE_SDL) && (SDL_MAJOR_VERSION > 1) +#if defined(HAVE_SDL) +#include +#if (SDL_MAJOR_VERSION > 1) #include "button-sdl.h" #else #include "button-target.h" #endif +#endif /* HAVE_SDL */ #ifdef HAVE_REMOTE_LCD #include "lcd-remote.h" #endif diff --git a/firmware/export/config.h b/firmware/export/config.h index ed440f2d2b..3fac987f94 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -623,7 +623,7 @@ Lyre prototype 1 */ #elif defined(RG_NANO) #include "config/rgnano.h" #else -//#error "unknown hwardware platform!" +#error "unknown hardware platform!" #endif #ifndef CONFIG_CPU @@ -649,8 +649,10 @@ Lyre prototype 1 */ #endif #ifdef APPLICATION +#ifndef CONFIG_CPU #define CONFIG_CPU 0 #endif +#endif /* keep this include after the target configs */ #ifdef SIMULATOR diff --git a/firmware/export/config/sim.h b/firmware/export/config/sim.h index 0aeca695f0..b4ba80a87a 100644 --- a/firmware/export/config/sim.h +++ b/firmware/export/config/sim.h @@ -2,6 +2,7 @@ target specific configs */ #undef CONFIG_CPU +#define CONFIG_CPU 0 #undef HAVE_FMADC @@ -17,6 +18,8 @@ #undef HAVE_ATA_POWER_OFF #undef CONFIG_LCD +#define CONFIG_LCD 0 + #undef LCD_DPI /* likely to be too different on a PC */ #undef CONFIG_LED @@ -86,7 +89,8 @@ #undef BUTTON_DRIVER_CLOSE -#if CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG +#if defined(CONFIG_BACKLIGHT_FADING) +#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG) #undef CONFIG_BACKLIGHT_FADING /* simulate SW_SETTING, as we handle sdl very similary */ #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING @@ -95,7 +99,8 @@ CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_TARGET) /* we don't simulate that yet */ #undef CONFIG_BACKLIGHT_FADING -#endif +#endif /* CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG */ +#endif /* defined(CONFIG_BACKLIGHT_FADING) */ #ifdef HAVE_BACKLIGHT_BRIGHTNESS #undef DEFAULT_BRIGHTNESS_SETTING diff --git a/tools/configure b/tools/configure index da28008c6f..2fbb27a334 100755 --- a/tools/configure +++ b/tools/configure @@ -262,7 +262,7 @@ simcc () { app_type=$1 winbuild="" macbuild="" - GCCOPTS=`echo $CCOPTS | sed -e s/\ -ffreestanding// -e s/\ -nostdlib// -e s/\ -Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/\ -ffreestanding// -e s/\ -nostdlib//` if [ "yes" = "$use_debug" ]; then GCCOPTS=`echo $GCCOPTS | sed -e s/\ -Os/\ -Og/` @@ -638,7 +638,7 @@ maemocc () { # Scratchbox sets up "gcc" based on the active target prefixtools "" - GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//` GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)" GCCOPTIMIZE='' LDOPTS="-lm -ldl $LDOPTS" @@ -733,7 +733,7 @@ pandoracc () { LDOPTS="-L$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib -Wl,-rpath,$PNDSDK/arm-angstrom-linux-gnueabi/usr/lib $LDOPTS" PKG_CONFIG="pkg-config" - GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//` GCCOPTS="$GCCOPTS -fno-builtin -g -I\$(SIMDIR)" GCCOPTIMIZE='' LDOPTS="-lm -ldl $LDOPTS" @@ -813,7 +813,7 @@ androidcc () { # the prebuilt android NDK only supports x86_64 architecture anyway, so we can take shortcuts buildhost=$(uname | tr "[:upper:]" "[:lower:]")-x86_64 - GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//` LDOPTS="$LDOPTS -ldl -llog" if [ "$modelname" != "ibassodx50" ] && [ "$modelname" != "ibassodx90" ]; then LDOPTS="$LDOPTS -Wl,-soname,librockbox.so -shared" @@ -903,7 +903,7 @@ androidndkcc() # the prebuilt android NDK only supports x86_64 architecture anyway, so we can take shortcuts buildhost=$(uname -s | tr "[:upper:]" "[:lower:]")-x86_64 - GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib//` LDOPTS="$LDOPTS -ldl -llog" SHARED_LDFLAGS="-shared" SHARED_CFLAGS='' @@ -988,7 +988,7 @@ rgnanocc () { DLLWRAP=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-dllwrap RANLIB=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-gcc-ranlib - GCCOPTS=`echo $CCOPTS | sed -e s/\ -ffreestanding// -e s/\ -nostdlib// -e s/\ -Wundef//` + GCCOPTS=`echo $CCOPTS | sed -e s/\ -ffreestanding// -e s/\ -nostdlib//` if [ "yes" = "$use_debug" ]; then GCCOPTS=`echo $GCCOPTS | sed -e s/\ -Os/\ -Og/`