summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-04-20 18:35:43 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-04-20 18:35:43 -0400
commit1eecfb308cb8409bd1299e45e7302086441e55bb (patch)
treec440719db77921e83b8561b9ba10c55346e2ca28
parenta005118d7f83a12b73361c3655812e437201146b (diff)
Full support for modern ARM toolchains
-rw-r--r--Makefile14
-rw-r--r--ld_script_modern.txt1
2 files changed, 10 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 3cd5ea184..da0af791d 100644
--- a/Makefile
+++ b/Makefile
@@ -15,12 +15,14 @@ endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
+LIBSUBDIR := thumb
else
export PATH := $(TOOLCHAIN)/bin:$(PATH)
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
+LIBSUBDIR := thumb/nofp
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
@@ -42,8 +44,7 @@ LIBPATH := -L ../../tools/agbcc/lib
else
CC1 := $(shell $(CC) --print-prog-name=cc1) -quiet
override CFLAGS += -mthumb -mthumb-interwork -O2 -mtune=arm7tdmi -march=armv4t -mabi=apcs-gnu -fno-toplevel-reorder -fno-aggressive-loop-optimizations -Wno-pointer-to-int-cast
-#LIBPATH := -L $(TOOLCHAIN)/lib/gcc/arm-none-eabi/$(GCC_VER)/thumb -L $(TOOLCHAIN)/arm-none-eabi/lib/thumb
-LIBPATH := -L ../../tools/agbcc/lib
+LIBPATH := -L $(shell dirname $(shell $(CC) --print-file-name=libgcc.a)) -L $(shell dirname $(shell $(CC) --print-file-name=libc.a))
endif
CPPFLAGS := -iquote include -D$(GAME_VERSION) -DREVISION=$(GAME_REVISION) -D$(GAME_LANGUAGE) -DMODERN=$(MODERN)
@@ -77,9 +78,12 @@ ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_RE
LDFLAGS = -Map ../../$(MAP)
LIB := $(LIBPATH) -lc -lgcc
-#ifneq ($(MODERN),0)
-#LIB += -lsysbase
-#endif
+ifneq ($(MODERN),0)
+ifeq ($(TOOLCHAIN),$(DEVKITARM))
+LIB += -lsysbase -lc
+endif
+LIB += -lnosys
+endif
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx
diff --git a/ld_script_modern.txt b/ld_script_modern.txt
index 9f1508067..fc6c0d0b7 100644
--- a/ld_script_modern.txt
+++ b/ld_script_modern.txt
@@ -29,6 +29,7 @@ SECTIONS {
/* COMMON starts at 0x30022A8 */
*(COMMON);
end = .;
+ __end__ = .;
. = 0x8000;
}