diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile
index c4fcb4c6ca03c6efad0827237b229d086d0d9784..70fac87d69b0f15b2ecc2865339e252bfced36dc 100644
--- a/arch/arm/src/Makefile
+++ b/arch/arm/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/arm/src/Makefile
 #
-#   Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2007-2009, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -85,6 +85,7 @@ endif
 # The "head" object
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 # Flat build or kernel-mode objects
 
@@ -188,10 +189,10 @@ endif
 # Note that there may not be a head object if layout is handled
 # by the linker configuration.
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
-ifneq ($(HEAD_OBJ),)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
+ifneq ($(STARTUP_OBJS),)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup/."; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 	exit 1; \
diff --git a/arch/arm/src/a1x/Make.defs b/arch/arm/src/a1x/Make.defs
index c06e3a6c8f8b87388c85c6cc94ead9e2c4cabcd2..98972d8722728f4ff7f4dcf6590e76a50498e9cb 100644
--- a/arch/arm/src/a1x/Make.defs
+++ b/arch/arm/src/a1x/Make.defs
@@ -38,6 +38,10 @@
 
 HEAD_ASRC  = arm_vectortab.S
 
+ifeq ($(CONFIG_BUILD_KERNEL),y)
+STARTUP_OBJS = crt0$(OBJEXT)
+endif
+
 # Force the start-up logic to be at the beginning of the .text to simplify
 # debug.
 
diff --git a/arch/arm/src/armv7-a/crt0.c b/arch/arm/src/armv7-a/crt0.c
index 8b661708ebf82c67522db01b7b5b7733863c5cd7..2127ab2edb44fd3d34bf330d2e85b720792db457 100644
--- a/arch/arm/src/armv7-a/crt0.c
+++ b/arch/arm/src/armv7-a/crt0.c
@@ -40,6 +40,7 @@
 #include <nuttx/config.h>
 
 #include <sys/types.h>
+#include <stdlib.h>
 
 #include <nuttx/addrenv.h>
 
@@ -57,7 +58,7 @@
  * Public Function Prototypes
  ****************************************************************************/
 
-extern main_t main;
+int main(int argc, char *argv[]);
 
 /****************************************************************************
  * Private Functions
@@ -100,8 +101,9 @@ static void sig_trampoline(void)
     " blx  ip\n"         /* Call the signal handler */
     " pop  {r2}\n"       /* Recover LR in R2 */
     " mov  lr, r2\n"     /* Restore LR */
-    " mov  r0, #4\n"     /* SYS_signal_handler_return
+    " mov  r0, #4\n"     /* SYS_signal_handler_return */
     " svc #0x900001\n"   /* Return from the signal handler */
+  );
 }
 #endif
 
@@ -138,7 +140,7 @@ void _start(int argc, FAR char *argv[])
    * that is visible to the RTOS.
    */
 
-  ADDRENV_DATA_RESERVE->ar_sigtramp = (addrenv_sigtramp_t)sig_trampoline;
+  ARCH_DATA_RESERVE->ar_sigtramp = (addrenv_sigtramp_t)sig_trampoline;
 #endif
 
   /* Call C++ constructors */
@@ -147,7 +149,7 @@ void _start(int argc, FAR char *argv[])
 
   /* Call the main() entry point passing argc and argv. */
 
-  ret = main(argc, argc);
+  ret = main(argc, argv);
 
   /* Call exit() if/when the main() returns */
 
diff --git a/arch/arm/src/sama5/Make.defs b/arch/arm/src/sama5/Make.defs
index 241bb6a60e3b43bf4d40a312ba18628e2d94db27..c07fcc81a45e3d1e1a8f5ea418f822f83404337b 100644
--- a/arch/arm/src/sama5/Make.defs
+++ b/arch/arm/src/sama5/Make.defs
@@ -38,6 +38,10 @@
 
 HEAD_ASRC  = arm_vectortab.S
 
+ifeq ($(CONFIG_BUILD_KERNEL),y)
+STARTUP_OBJS = crt0$(OBJEXT)
+endif
+
 # Force the start-up logic to be at the beginning of the .text to simplify
 # debug.
 
diff --git a/arch/avr/src/Makefile b/arch/avr/src/Makefile
index 2220bbfde28e018466021d079ebde307b9a2040e..a3f288efb61dae6a3ed96dbe82b26c56b2fe68d1 100644
--- a/arch/avr/src/Makefile
+++ b/arch/avr/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/avr/src/Makefile
 #
-#   Copyright (C) 2010-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2010-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -72,6 +72,7 @@ CXXFLAGS += $(INCLUDES)
 AFLAGS += $(INCLUDES)
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 AOBJS = $(ASRCS:.S=$(OBJEXT))
@@ -147,9 +148,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile
index d1ce2e205a7325ffa38cf659f240f5b93570ff6d..eaccee174635695be5ce781487342cd6f784bace 100644
--- a/arch/hc/src/Makefile
+++ b/arch/hc/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/hc/src/Makefile
 #
-#   Copyright (C) 2009, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2009, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -68,6 +68,7 @@ endif
 endif
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 AOBJS = $(ASRCS:.S=$(OBJEXT))
@@ -142,9 +143,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/mips/src/Makefile b/arch/mips/src/Makefile
index 906bac59fc75127c8e2a168a679bab2c7d5bf9d2..aeb3238a0f07af9f570ac95c7ee241e089b90f8e 100644
--- a/arch/mips/src/Makefile
+++ b/arch/mips/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/mips/src/Makefile
 #
-#   Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -65,6 +65,7 @@ endif
 endif
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 AOBJS = $(ASRCS:.S=$(OBJEXT))
@@ -140,9 +141,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/rgmp/src/Makefile b/arch/rgmp/src/Makefile
index 05ef21feaf923dd1817e6d744074dd6dc8f391d1..09fb372f44836050bb2dfb2fe0bad85a49806308 100644
--- a/arch/rgmp/src/Makefile
+++ b/arch/rgmp/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/rgmp/src/Makefile
 #
-#   Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -85,7 +85,7 @@ nuttx$(EXEEXT): $(LINKOBJS)
 
 # This is part of the top-level export target
 
-export_head:
+expport_startup:
 
 # Dependencies
 
diff --git a/arch/sh/src/Makefile b/arch/sh/src/Makefile
index e8be489cde6741b9536e98d43ac1a8f668ff2083..280b843a1a4edbfae0bf3210d0d9fde5696b209b 100644
--- a/arch/sh/src/Makefile
+++ b/arch/sh/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/sh/src/Makefile
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -63,6 +63,7 @@ endif
 CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(TOPDIR)/sched
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 AOBJS = $(ASRCS:.S=$(OBJEXT))
@@ -138,9 +139,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile
index bb44ab705f4bb6935f58968fba5b19234ae9dab4..8bbf67a8fc6296e07046dfe0909df5933a0eeacc 100644
--- a/arch/sim/src/Makefile
+++ b/arch/sim/src/Makefile
@@ -145,7 +145,7 @@ RELLIBS += -lboard
 
 all: up_head$(OBJEXT) libarch$(LIBEXT)
 
-.PHONY: board/libboard$(LIBEXT) export_head clean distclean cleanrel depend
+.PHONY: board/libboard$(LIBEXT) export_startup clean distclean cleanrel depend
 
 $(AOBJS): %$(OBJEXT): %.S
 	$(call ASSEMBLE, $<, $@)
@@ -199,7 +199,7 @@ nuttx$(EXEEXT): cleanrel nuttx.rel $(HOSTOBJS)
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) up_head.o $(HOSTOBJS)
+export_startup: board/libboard$(LIBEXT) up_head.o $(HOSTOBJS)
 	cp up_head.o $(HOSTOBJS) ${EXPORT_DIR}/startup
 	cp nuttx-names.dat ${EXPORT_DIR}/libs
 	echo main NXmain >> ${EXPORT_DIR}/libs/nuttx-names.dat
diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile
index 2539c0f112fc5cbd2f816d7ddb6b122725f25ac0..0de6b7c0829a16d055e3a5ce7dd03a8d40c1cbc1 100644
--- a/arch/x86/src/Makefile
+++ b/arch/x86/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/x86/src/Makefile
 #
-#   Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -65,6 +65,7 @@ endif
 endif
 
 HEAD_OBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 AOBJS = $(ASRCS:.S=$(OBJEXT))
@@ -148,9 +149,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/z16/src/Makefile b/arch/z16/src/Makefile
index 5c0ef42beb3c7846fedb254262cbaccd9de8deda..02d9c6eb67439e513a3c29c405df9da7aaf9bfdc 100644
--- a/arch/z16/src/Makefile
+++ b/arch/z16/src/Makefile
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z16/src/Makefile
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -65,6 +65,7 @@ endif
 
 HEAD_ASRC = $(HEAD_SSRC:.S=$(ASMEXT))
 HEAD_OBJ = $(HEAD_SSRC:.S=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 SSRCS = $(CHIP_SSRCS) $(CMN_SSRCS)
 ASRCS = $(SSRCS:.S=$(ASMEXT))
@@ -145,12 +146,12 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-	$(Q) if exist "$(EXPORT_DIR)$(DELIM)startup" ( copy $(HEAD_OBJ) "$(EXPORT_DIR)$(DELIM)startup$(DELIM)." /b /y)
+	$(Q) if exist "$(EXPORT_DIR)$(DELIM)startup" ( copy $(STARTUP_OBJS) "$(EXPORT_DIR)$(DELIM)startup$(DELIM)." /b /y)
 else
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/z80/src/Makefile.sdccl b/arch/z80/src/Makefile.sdccl
index c444690e769bcee77e0db956e06b9ed559adfc81..3afd657de4d571b8da74b23d8ec2a6732f3d7c0b 100644
--- a/arch/z80/src/Makefile.sdccl
+++ b/arch/z80/src/Makefile.sdccl
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z80/src/Makefile.sdccl
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -43,6 +43,7 @@ CPPFLAGS += -D__ASSEMBLY__
 # There should be one head source (.asm file)
 
 HEAD_OBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 # Assembly sources and objects
 
@@ -181,9 +182,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board/libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board/libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)/startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)/startup"; \
 	 else \
 		echo "$(EXPORT_DIR)/startup does not exist"; \
 		exit 1; \
diff --git a/arch/z80/src/Makefile.sdccw b/arch/z80/src/Makefile.sdccw
index 79e1b002e31c7d1a230fe21c081710953b10f548..ee7948c6711335af1ffa52960643d68178e26518 100644
--- a/arch/z80/src/Makefile.sdccw
+++ b/arch/z80/src/Makefile.sdccw
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z80/src/Makefile.sdccw
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -43,6 +43,7 @@ CPPFLAGS += -D__ASSEMBLY__
 # There should be one head source (.asm file)
 
 HEAD_OBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))
+STARTUP_OBJS ?= $(HEAD_OBJ)
 
 # Assembly sources and objects
 
@@ -179,9 +180,9 @@ endif
 
 # This is part of the top-level export target
 
-export_head: board\libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board\libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if not exist board\Makefile ( echo $(EXPORT_DIR)\startup does not exist )
-	$(Q) if exist board\Makefile ( cp -f $(HEAD_OBJ) "$(EXPORT_DIR)\startup" )
+	$(Q) if exist board\Makefile ( cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)\startup" )
 
 # Build dependencies
 
diff --git a/arch/z80/src/Makefile.zdsiil b/arch/z80/src/Makefile.zdsiil
index 87ada571fcd56ed5b4d0625bd28b4f05de35e1c1..39c4cbe1eb6299d47359360aa6d28b4fd60ae679 100644
--- a/arch/z80/src/Makefile.zdsiil
+++ b/arch/z80/src/Makefile.zdsiil
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z80/src/Makefile.zdsiil
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -51,6 +51,7 @@ LDFLAGS  += @nuttx.linkcmd
 
 ############################################################################
 # Files and directories
+
 ifneq ($(HEAD_SSRC),)
 HEAD_GENSRC = $(HEAD_SSRC:.S=$(ASMEXT))
 HEAD_OBJ = $(HEAD_SSRC:.S=$(OBJEXT))
@@ -58,6 +59,8 @@ else
 HEAD_OBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))
 endif
 
+STARTUP_OBJS ?= $(HEAD_OBJ)
+
 SSRCS = $(CHIP_SSRCS) $(CMN_SSRCS)
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 GENSRCS = $(SSRCS:.S=$(ASMEXT))
@@ -140,9 +143,9 @@ nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) nuttx.linkcmd
 
 # This is part of the top-level export target
 
-export_head: board$(DELIM)libboard$(LIBEXT) $(HEAD_OBJ)
+export_startup: board$(DELIM)libboard$(LIBEXT) $(STARTUP_OBJS)
 	$(Q) if [ -d "$(EXPORT_DIR)$(DELIM)startup" ]; then \
-		cp -f $(HEAD_OBJ) "$(EXPORT_DIR)$(DELIM)startup"; \
+		cp -f $(STARTUP_OBJS) "$(EXPORT_DIR)$(DELIM)startup"; \
 	 else \
 		echo "$(EXPORT_DIR)$(DELIM)startup does not exist"; \
 		exit 1; \
diff --git a/arch/z80/src/Makefile.zdsiiw b/arch/z80/src/Makefile.zdsiiw
index bf599ecaeadc7fc0d6d321f31385ee5bc72886e2..25099e8a60b663697e642f82a58441b050d36989 100644
--- a/arch/z80/src/Makefile.zdsiiw
+++ b/arch/z80/src/Makefile.zdsiiw
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z80/src/Makefile.zdsiiw
 #
-#   Copyright (C) 2008, 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -55,6 +55,8 @@ else
 HEAD_OBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))
 endif
 
+STARTUP_OBJS ?= $(HEAD_OBJ)
+
 SSRCS = $(CHIP_SSRCS) $(CMN_SSRCS)
 ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
 GENSRCS = $(SSRCS:.S=$(ASMEXT))
@@ -132,8 +134,8 @@ nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) nuttx.linkcmd
 
 # This is part of the top-level export target
 
-export_head: board$(DELIM)libboard$(LIBEXT) $(HEAD_OBJ)
-	$(Q) if exist "$(EXPORT_DIR)$(DELIM)startup" ( copy $(HEAD_OBJ) "$(EXPORT_DIR)$(DELIM)startup$(DELIM)." /b /y)
+export_startup: board$(DELIM)libboard$(LIBEXT) $(STARTUP_OBJS)
+	$(Q) if exist "$(EXPORT_DIR)$(DELIM)startup" ( copy $(STARTUP_OBJS) "$(EXPORT_DIR)$(DELIM)startup$(DELIM)." /b /y)
 
 # Dependencies
 
diff --git a/tools/mkexport.sh b/tools/mkexport.sh
index cbdcddc78ec7b2b08ce7e92c7bbb1bff42b348cb..6b16e4b077d508c1ace9f6b2704bb24ad72761b4 100755
--- a/tools/mkexport.sh
+++ b/tools/mkexport.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 # tools/mkexport.sh
 #
-#   Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -194,7 +194,7 @@ cp -LR -p "${TOPDIR}/include" "${EXPORTDIR}/." || \
 
 # Copy the startup object file(s)
 
-make -C ${ARCHDIR} export_head TOPDIR=${TOPDIR} EXPORT_DIR="${EXPORTDIR}"
+make -C ${ARCHDIR} export_startup TOPDIR=${TOPDIR} EXPORT_DIR="${EXPORTDIR}"
 
 # Copy architecture-specific header files into the arch export sub-directory.
 # This is tricky because each architecture does things in a little different