A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

build: Various LTO fixes

* Give arm panicf_f() USED_ATTR
* Ensure start_thread() has USED_ATTR

Change-Id: I6a833be7fbe25410c21e0df233fcae91e451bf00

+5 -5
+1 -1
firmware/asm/m68k/thread.c
··· 25 25 * Start the thread running and terminate it if it returns 26 26 *--------------------------------------------------------------------------- 27 27 */ 28 - void start_thread(void); /* Provide C access to ASM label */ 28 + void start_thread(void) USED_ATTR; /* Provide C access to ASM label */ 29 29 static void USED_ATTR __start_thread(void) 30 30 { 31 31 /* a0=macsr, a1=context */
+1 -1
firmware/asm/mips/thread-mips32.c
··· 26 26 *--------------------------------------------------------------------------- 27 27 */ 28 28 29 - void start_thread(void); /* Provide C access to ASM label */ 29 + void start_thread(void) USED_ATTR; /* Provide C access to ASM label */ 30 30 static void USED_ATTR _start_thread(void) 31 31 { 32 32 /* t1 = context */
+1 -1
firmware/firmware.make
··· 49 49 50 50 ifdef USE_LTO 51 51 $(BUILDDIR)/firmware/asm/%.o: CFLAGS += -fno-lto 52 - $(BUILDDIR)/firmware/kernel/%.o: CFLAGS += -fno-lto 52 + $(BUILDDIR)/firmware/kernel/thread.o: CFLAGS += -fno-lto 53 53 endif 54 54 55 55 # GNU make (at least) has a bug/feature that exported variable are not available
+2 -2
firmware/panic.c
··· 47 47 #define LINECHARS (LCD_WIDTH/SYSFONT_WIDTH) - 2 48 48 49 49 #if defined(CPU_ARM) && defined(HAVE_RB_BACKTRACE) 50 - void panicf_f( const char *fmt, ...); 50 + void panicf_f( const char *fmt, ...) USED_ATTR; 51 51 52 52 /* we wrap panicf() here with naked function to catch SP value */ 53 53 void __attribute__((naked)) panicf( const char *fmt, ...) ··· 60 60 } 61 61 62 62 /* 63 - * "Dude. This is pretty fucked-up, right here." 63 + * "Dude. This is pretty fucked-up, right here." 64 64 */ 65 65 void panicf_f( const char *fmt, ...) 66 66 {