From 0f8f05db29bbad84bbc12cdefa7126088a589b43 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 12 Oct 2025 16:10:13 -0400 Subject: [PATCH 1/2] 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/` From 9aa6a35b3f812c0c551b26790abdad79db5fd894 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 12 Oct 2025 17:04:06 -0400 Subject: [PATCH 2/2] Fix warnings introduced in prior commit * #define CONFIG_RTC APPLICATION (in sim builds) * #define CONFIG_STORAGE 0 (in PCTOOL builds) Change-Id: Iabb77bd0a29ca06a13d1075f1e8cedb00f785c64 --- firmware/export/config.h | 2 ++ firmware/export/config/android.h | 2 +- firmware/export/config/fiiom3klinux.h | 2 +- firmware/export/config/hibylinux.h | 2 +- firmware/export/config/nokian8xx.h | 2 +- firmware/export/config/nokian900.h | 2 +- firmware/export/config/pandora.h | 2 +- firmware/export/config/rgnano.h | 2 +- firmware/export/config/samsungypr1.h | 2 +- firmware/export/config/sdlapp.h | 2 +- 10 files changed, 11 insertions(+), 9 deletions(-) diff --git a/firmware/export/config.h b/firmware/export/config.h index 3fac987f94..fe66f06644 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -340,6 +340,7 @@ Lyre prototype 1 */ #define NAND_IMX233 6 /* CONFIG_RTC */ +#define RTC_HOSTED 1 /* Generic hosted */ #define RTC_PCF50605 2 /* iPod 3G, 4G & Mini */ #define RTC_PCF50606 3 /* iriver H300 */ #define RTC_S3C2440 4 @@ -642,6 +643,7 @@ Lyre prototype 1 */ #undef HAVE_MULTIDRIVE #undef CONFIG_STORAGE_MULTI #undef CONFIG_STORAGE +#define CONFIG_STORAGE 0 #endif #ifndef CONFIG_BUFLIB_BACKEND diff --git a/firmware/export/config/android.h b/firmware/export/config/android.h index dcf996ebc3..60f094b36d 100644 --- a/firmware/export/config/android.h +++ b/firmware/export/config/android.h @@ -52,7 +52,7 @@ #define HAVE_BUTTON_DATA /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000 diff --git a/firmware/export/config/fiiom3klinux.h b/firmware/export/config/fiiom3klinux.h index ebf49a568b..2a8170f32f 100644 --- a/firmware/export/config/fiiom3klinux.h +++ b/firmware/export/config/fiiom3klinux.h @@ -66,7 +66,7 @@ #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000 diff --git a/firmware/export/config/hibylinux.h b/firmware/export/config/hibylinux.h index ebab5bdf97..e3f881e324 100644 --- a/firmware/export/config/hibylinux.h +++ b/firmware/export/config/hibylinux.h @@ -60,7 +60,7 @@ #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED #ifndef SIMULATOR /* We have usb power and can detect usb but it is handled by Linux */ diff --git a/firmware/export/config/nokian8xx.h b/firmware/export/config/nokian8xx.h index b145641586..9fb9e81780 100644 --- a/firmware/export/config/nokian8xx.h +++ b/firmware/export/config/nokian8xx.h @@ -44,7 +44,7 @@ #define HAVE_BUTTON_DATA /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000 diff --git a/firmware/export/config/nokian900.h b/firmware/export/config/nokian900.h index cac8a66457..a939ff0799 100644 --- a/firmware/export/config/nokian900.h +++ b/firmware/export/config/nokian900.h @@ -43,7 +43,7 @@ #define HAVE_BUTTON_DATA /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000 diff --git a/firmware/export/config/pandora.h b/firmware/export/config/pandora.h index 377b8aa04e..841d7e2b4b 100644 --- a/firmware/export/config/pandora.h +++ b/firmware/export/config/pandora.h @@ -44,7 +44,7 @@ #define HAVE_BUTTON_DATA /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000 diff --git a/firmware/export/config/rgnano.h b/firmware/export/config/rgnano.h index d5c9727a9f..c75b6409e8 100644 --- a/firmware/export/config/rgnano.h +++ b/firmware/export/config/rgnano.h @@ -48,7 +48,7 @@ #define HAVE_VOLUME_IN_LIST /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x200000 diff --git a/firmware/export/config/samsungypr1.h b/firmware/export/config/samsungypr1.h index 57da716aae..0853f59a94 100644 --- a/firmware/export/config/samsungypr1.h +++ b/firmware/export/config/samsungypr1.h @@ -112,7 +112,7 @@ /* R1 has a standard linux RTC driver on /dev/rtc1 (->/dev/rtc) * The RTC is S35392 A */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED #define BATTERY_CAPACITY_DEFAULT 600 /* default battery capacity */ #define BATTERY_CAPACITY_MIN 600 /* min. capacity selectable */ diff --git a/firmware/export/config/sdlapp.h b/firmware/export/config/sdlapp.h index 4421e5e1ea..5a5ef2ccae 100644 --- a/firmware/export/config/sdlapp.h +++ b/firmware/export/config/sdlapp.h @@ -53,7 +53,7 @@ #define HAVE_BUTTON_DATA /* define this if you have a real-time clock */ -#define CONFIG_RTC APPLICATION +#define CONFIG_RTC RTC_HOSTED /* The number of bytes reserved for loadable codecs */ #define CODEC_SIZE 0x100000