diff --git a/src/Makefile b/src/Makefile index 5250fa1..cb18578 100644 --- a/src/Makefile +++ b/src/Makefile @@ -16,7 +16,7 @@ endif BUILD_DIR=build/$(BOARD)/$(ENDIANESS) LSYS_BUILD_DIR=libsys/build/$(BOARD)/$(ENDIANESS) -CFLAGS:=$(ENDIAN_FLAGS) -G 0 -Tlink/link.ld -g -msoft-float -O2 -march=r3000 -I. -Ilibsys -Ilibsys/boards/$(BOARD) -L$(LSYS_BUILD_DIR) -Wl,-M +CFLAGS:=$(ENDIAN_FLAGS) -ffunction-sections -fdata-sections -Wl,--gc-sections -G 0 -Tlink/link.ld -g -msoft-float -O2 -march=r3000 -I. -Ilibsys -Ilibsys/boards/$(BOARD) -L$(LSYS_BUILD_DIR) -Wl,-M ifeq ($(TLB),yes) CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000 else diff --git a/src/bootloader/Makefile b/src/bootloader/Makefile index 4f3b490..d068393 100644 --- a/src/bootloader/Makefile +++ b/src/bootloader/Makefile @@ -22,8 +22,8 @@ ifeq ($(DEBUGGER),mips) DBG_OBJ := mips_dbg.o mips_dis.o endif -CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) $(DBG_FLAGS) -LFLAGS=$(ENDIAN_FLAGS) -Os -flto -nostartfiles -nodefaultlibs -nostdlib +CFLAGS=$(ENDIAN_FLAGS) -Os -ffunction-sections -fdata-sections -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) $(DBG_FLAGS) +LFLAGS=$(ENDIAN_FLAGS) -Os -nostartfiles -nodefaultlibs -nostdlib -Wl,--gc-sections -Wl,-M ifeq ($(TLB),yes) CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000 diff --git a/src/libsys/Makefile b/src/libsys/Makefile index d7795da..9828941 100644 --- a/src/libsys/Makefile +++ b/src/libsys/Makefile @@ -29,7 +29,7 @@ ifeq ($(DEBUGGER),rom) endif -CFLAGS=$(ENDIAN_FLAGS) -g -msoft-float -O2 -march=r3000 -I. -Iboards/$(BOARD) -D$(BOARD) $(DBG_FLAGS) +CFLAGS=$(ENDIAN_FLAGS) -ffunction-sections -fdata-sections -g -msoft-float -O2 -march=r3000 -I. -Iboards/$(BOARD) -D$(BOARD) $(DBG_FLAGS) ifeq ($(TLB),yes) CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000 diff --git a/src/link/link.ld b/src/link/link.ld index 938ddbd..b7d10bb 100644 --- a/src/link/link.ld +++ b/src/link/link.ld @@ -19,7 +19,7 @@ SECTIONS entry = ALIGN(2); _entry = ALIGN(2); __entry = ALIGN(2); - *(.start) + KEEP (*(.start)) } >ram .exc_vector ORIGIN(ram) + 0x80 : @@ -33,6 +33,7 @@ SECTIONS .text : { *(.text) + *(.text*) } >ram .fini : {