From 091ef89a6d82b84e3e8fa509106444e4b5ca9c2f Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Fri, 29 Nov 2024 17:02:40 +0100 Subject: [PATCH] A dummy example to show how to make binary smaller --- src/samples/Makefile.am | 1 + src/samples/Makefile.samples | 1 + .../libcglue/light_elf/Makefile.sample | 16 +++++++ src/samples/libcglue/light_elf/main.c | 44 +++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 src/samples/libcglue/light_elf/Makefile.sample create mode 100644 src/samples/libcglue/light_elf/main.c diff --git a/src/samples/Makefile.am b/src/samples/Makefile.am index 2db7137b..e15ac84c 100644 --- a/src/samples/Makefile.am +++ b/src/samples/Makefile.am @@ -56,6 +56,7 @@ SAMPLES = \ kernel/regenum \ kernel/systimer \ kernel/sysevent \ + libcglue/light_elf \ mp3 \ ms/callback \ nand/dumpipl \ diff --git a/src/samples/Makefile.samples b/src/samples/Makefile.samples index 98215f86..5c9a4641 100644 --- a/src/samples/Makefile.samples +++ b/src/samples/Makefile.samples @@ -53,6 +53,7 @@ SAMPLES = \ kernel/regenum \ kernel/systimer \ kernel/sysevent \ + libcglue/light_elf \ mp3 \ ms/callback \ nand/dumpipl \ diff --git a/src/samples/libcglue/light_elf/Makefile.sample b/src/samples/libcglue/light_elf/Makefile.sample new file mode 100644 index 00000000..8dadeb0b --- /dev/null +++ b/src/samples/libcglue/light_elf/Makefile.sample @@ -0,0 +1,16 @@ +TARGET = light_size +OBJS = main.o + +INCDIR = +CFLAGS = -Os -Wall -fdata-sections -ffunction-sections +CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti +ASFLAGS = $(CFLAGS) + +LIBDIR = +LDFLAGS = -s + +EXTRA_TARGETS = EBOOT.PBP +PSP_EBOOT_TITLE = Light Hello World + +PSPSDK=$(shell psp-config --pspsdk-path) +include $(PSPSDK)/lib/build.mak diff --git a/src/samples/libcglue/light_elf/main.c b/src/samples/libcglue/light_elf/main.c new file mode 100644 index 00000000..c32db929 --- /dev/null +++ b/src/samples/libcglue/light_elf/main.c @@ -0,0 +1,44 @@ +/* + * PSP Software Development Kit - https://github.com/pspdev + * ----------------------------------------------------------------------- + * Licensed under the BSD license, see LICENSE in PSPSDK root for details. + * + * + * Sample program to demonstrate a minimalistic Hello World program. + * The main scope here is to show how we can disable newlib features if we don't need them. + */ + +#include + +// Specific psp headers +#include +#include +#include +#include +#include +#include +#include + +// We won't fully disable newlib as we are using printf +// However we can disable timezone, pthreads, pipe and socket support +PSP_DISABLE_NEWLIB_PIPE_SUPPORT() +PSP_DISABLE_NEWLIB_SOCKET_SUPPORT() +PSP_DISABLE_NEWLIB_TIMEZONE_SUPPORT() +PSP_DISABLE_NEWLIB_CWD_SUPPORT() +PSP_DISABLE_AUTOSTART_PTHREAD() + +// configure PSP stuff +#define VERS 1 +#define REVS 0 + +PSP_MODULE_INFO("Light Hello World", PSP_MODULE_USER, VERS, REVS); +PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER); + +int main(int argc, char** argv) +{ + while(1) { + printf("Hello World!\n"); + } + + return 0; +} \ No newline at end of file