diff --git a/config/build/std_mb87q1100/rominfo.lnk b/config/build/std_mb87q1100/rominfo.lnk index b6971f7..728b162 100644 --- a/config/build/std_mb87q1100/rominfo.lnk +++ b/config/build/std_mb87q1100/rominfo.lnk @@ -17,7 +17,7 @@ * ROM information linker script */ -OUTPUT_FORMAT("elf32-larm-tkernel", "elf32-barm-tkernel", "elf32-larm-tkernel") +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) PHDRS { diff --git a/etc/mkiflib b/etc/mkiflib index c16d106..6b66ddf 100755 --- a/etc/mkiflib +++ b/etc/mkiflib @@ -1,4 +1,4 @@ -#! /usr/local/bin/perl +#! /usr/bin/env perl # # ---------------------------------------------------------------------- # T-Kernel diff --git a/etc/mktdsvc b/etc/mktdsvc index 6ae4adb..3091b96 100755 --- a/etc/mktdsvc +++ b/etc/mktdsvc @@ -1,4 +1,4 @@ -#! /usr/local/bin/perl +#! /usr/bin/env perl # # ---------------------------------------------------------------------- # T-Kernel diff --git a/etc/mktksvc b/etc/mktksvc index d1a40f5..3ef72c2 100755 --- a/etc/mktksvc +++ b/etc/mktksvc @@ -1,4 +1,4 @@ -#! /usr/local/bin/perl +#! /usr/bin/env perl # # ---------------------------------------------------------------------- # T-Kernel diff --git a/etc/platform b/etc/platform index 31c2695..865fb93 100755 --- a/etc/platform +++ b/etc/platform @@ -19,6 +19,7 @@ case $os in SunOS) platform=$os-`uname -p` ;; Linux) platform=$os-`uname -m` ;; FreeBSD) platform=$os-`uname -p` ;; + OpenBSD) platform=$os-`uname -m` ;; *) platform=unknown ;; esac diff --git a/etc/sysdepend/std_mb87q1100/makerules.sysdepend b/etc/sysdepend/std_mb87q1100/makerules.sysdepend index 25144a9..e921963 100644 --- a/etc/sysdepend/std_mb87q1100/makerules.sysdepend +++ b/etc/sysdepend/std_mb87q1100/makerules.sysdepend @@ -38,11 +38,17 @@ endif ifneq ($(filter Linux-%, $(CROSS_ARCH)), ) PATH := $(PATH):/usr/local/bin:/bin:/usr/bin endif +ifneq ($(filter OpenBSD-%, $(CROSS_ARCH)), ) + PATH := $(PATH):/usr/local/bin:/bin:/usr/bin +endif # ----- T-Engine/MB87Q1100(ARM926EJ) --------------------------------- # GCC environment TARGET_ARCH = +ifndef TOOL_PREFIX + TOOL_PREFIX = arm-none-eabi- +endif # target type _CPUTYPE_FLAGS = -march=armv4t -msoft-float @@ -59,7 +65,7 @@ ASFLAGS += LDFLAGS += ### C ### -CC := $(GNUarm)/bin/gccarm +CC := $(GNUarm)/bin/$(TOOL_PREFIX)gcc OUTPUT_OPTION = -o $@ ifeq ($(mode), debug) CFLAGS += -g @@ -87,7 +93,7 @@ LINK.c = $(CC) $(TARGET_ARCH) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CC) $(TARGET_ARCH) $(CFLAGS) $(CPPFLAGS) -E $< $(OUTPUT_OPTION) ### C++ ### -CXX := $(GNUarm)/bin/gccarm +CXX := $(GNUarm)/bin/$(TOOL_PREFIX)gcc CXXFLAGS = $(CFLAGS) COMPILE.cc = $(CXX) $(TARGET_ARCH) $(CXXFLAGS) $(CPPFLAGS) -c @@ -103,7 +109,7 @@ LINK.cc = $(CXX) $(TARGET_ARCH) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CXX) $(TARGET_ARCH) $(CXXFLAGS) $(CPPFLAGS) -E $< $(OUTPUT_OPTION) ### asm ### -AS = $(GNUarm)/bin/as +AS = $(GNUarm)/bin/$(TOOL_PREFIX)as ifeq ($(mode), debug) ASFLAGS += else @@ -126,7 +132,7 @@ COMPILE.s = $(AS) $(ASFLAGS.s) $(CC) $(TARGET_ARCH) $(ASFLAGS) $(CPPFLAGS) -E $< $(OUTPUT_OPTION) ### linker ### -LD = $(GNUarm)/bin/ld +LD = $(GNUarm)/bin/$(TOOL_PREFIX)ld ifeq ($(mode), debug) LDFLAGS += $(LIBDIR:%=-L%) else @@ -174,15 +180,15 @@ LOCATE.o = $(CC) $(TARGET_ARCH) $(LDFLAGS) -nostdlib $(LDFLAGS3) $(START_ADR) $(RM) _$@ ### library ### -AR = $(GNUarm)/bin/ar +AR = $(GNUarm)/bin/$(TOOL_PREFIX)ar ARFLAGS = rv -RANLIB = $(GNUarm)/bin/ranlib +RANLIB = $(GNUarm)/bin/$(TOOL_PREFIX)ranlib (%): % $(AR) $(ARFLAGS) $@ $% ### create name list ### -NM = $(GNUarm)/bin/nm +NM = $(GNUarm)/bin/$(TOOL_PREFIX)nm NMFLAGS = -n %.map: % @@ -222,9 +228,9 @@ DATABOX = $(DB) $(DBFLAGS) ### other ### ifndef CPP - CPP = $(GNU_BD)/bin/arm-unknown-tkernel-cpp + CPP = $(GNUarm)/bin/$(TOOL_PREFIX)cpp endif -STRIP = $(GNUarm)/bin/strip --strip-unneeded +STRIP = $(GNUarm)/bin/$(TOOL_PREFIX)strip --strip-unneeded -OBJCOPY = $(GNU_BD)/bin/arm-unknown-tkernel-objcopy +OBJCOPY = $(GNUarm)/bin/$(TOOL_PREFIX)objcopy OUTPUT_SREC = -O srec --srec-forceS3 --srec-len 32 diff --git a/kernel/sysdepend/device/std_mb87q1100/cntwus.c b/kernel/sysdepend/device/std_mb87q1100/cntwus.c index f3c1bb5..1a866e3 100644 --- a/kernel/sysdepend/device/std_mb87q1100/cntwus.c +++ b/kernel/sysdepend/device/std_mb87q1100/cntwus.c @@ -27,8 +27,8 @@ */ LOCAL void WaitLoop( UW count ) { - Asm(" _loop: subs %0, %0, #1 \n" - " bhi _loop " + Asm(" 0: subs %0, %0, #1 \n" + " bhi 0b " : "=r"(count) : "0"(count + 1) ); diff --git a/kernel/sysmain/build/std_mb87q1100/kernel-ram.lnk b/kernel/sysmain/build/std_mb87q1100/kernel-ram.lnk index 47bf0af..a6b4f82 100644 --- a/kernel/sysmain/build/std_mb87q1100/kernel-ram.lnk +++ b/kernel/sysmain/build/std_mb87q1100/kernel-ram.lnk @@ -17,7 +17,7 @@ * linker script (RAM) */ -OUTPUT_FORMAT("elf32-larm-tkernel", "elf32-barm-tkernel", "elf32-larm-tkernel") +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) @@ -79,4 +79,8 @@ SECTIONS _end = .; PROVIDE (end = .); } /*:data*/ + /DISCARD/ : { + *(.ARM.exidx*); + *(.gnu.linkonce.armeixidex.*); + } } diff --git a/kernel/sysmain/build/std_mb87q1100/kernel-rom.lnk b/kernel/sysmain/build/std_mb87q1100/kernel-rom.lnk index c200513..31325f5 100644 --- a/kernel/sysmain/build/std_mb87q1100/kernel-rom.lnk +++ b/kernel/sysmain/build/std_mb87q1100/kernel-rom.lnk @@ -17,7 +17,7 @@ * linker script (ROM) */ -OUTPUT_FORMAT("elf32-larm-tkernel", "elf32-barm-tkernel", "elf32-larm-tkernel") +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) @@ -75,4 +75,8 @@ SECTIONS { _end = .; PROVIDE (end = .); } + /DISCARD/ : { + *(.ARM.exidx*); + *(.gnu.linkonce.armeixidex.*); + } } diff --git a/kernel/sysmain/src/Makefile.common b/kernel/sysmain/src/Makefile.common index 5752899..4f74e5e 100644 --- a/kernel/sysmain/src/Makefile.common +++ b/kernel/sysmain/src/Makefile.common @@ -116,18 +116,18 @@ $(TARGET_ROM:%.rom=%.mot): $(TARGET_ROM) $(OBJCOPY) $(OUTPUT_SREC) $< $@ tkernel: - ( cd $(OBJ_TKERNEL_PATH) ; make ) + ( cd $(OBJ_TKERNEL_PATH) ; $(MAKE) ) sysmgr: - ( cd $(OBJ_SYSMGR_PATH) ; make ) + ( cd $(OBJ_SYSMGR_PATH) ; $(MAKE) ) sysinit: - ( cd $(OBJ_SYSINIT_PATH) ; make ) + ( cd $(OBJ_SYSINIT_PATH) ; $(MAKE) ) clean: - ( cd $(OBJ_TKERNEL_PATH) ; make clean ) - ( cd $(OBJ_SYSMGR_PATH) ; make clean ) - ( cd $(OBJ_SYSINIT_PATH) ; make clean ) + ( cd $(OBJ_TKERNEL_PATH) ; $(MAKE) clean ) + ( cd $(OBJ_SYSMGR_PATH) ; $(MAKE) clean ) + ( cd $(OBJ_SYSINIT_PATH) ; $(MAKE) clean ) $(RM) $(OBJ) $(TARGET_CRT0) $(ALL) $(DEPS) install: $(addprefix $(EXE_INSTALLDIR)/, $(ALL)) diff --git a/lib/build/Makefile.common b/lib/build/Makefile.common index 90dc95e..e4f5027 100644 --- a/lib/build/Makefile.common +++ b/lib/build/Makefile.common @@ -28,20 +28,20 @@ all: $(LIB_SYSDEP_TARGET) $(LIB_CPUDEP_TARGET) $(LIB_SYSDEP_TARGET): cd ../../$@/build/$(TETYPE)_$(MACHINE) ; \ - make ; \ - make install + $(MAKE) ; \ + $(MAKE) install $(LIB_CPUDEP_TARGET): cd ../../$@/build/$(MACHINE) ; \ - make ; \ - make install + $(MAKE) ; \ + $(MAKE) install clean: @( cd ../.. ; \ for dir in $(LIB_SYSDEP_TARGET); do \ - ( cd $$dir/build/$(TETYPE)_$(MACHINE) ; make clean ) ; \ + ( cd $$dir/build/$(TETYPE)_$(MACHINE) ; $(MAKE) clean ) ; \ done ; \ for dir in $(LIB_CPUDEP_TARGET); do \ - ( cd $$dir/build/$(MACHINE) ; make clean ) ; \ + ( cd $$dir/build/$(MACHINE) ; $(MAKE) clean ) ; \ done ) ; rm -rf $(addsuffix .a, $(LIB_ARCHIVE_OBJ)) *.o \#*.o.* \#*.a.*