Fix several build issues noted by Mike Smith

git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5459 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-12-24 20:22:14 +00:00
parent 7c73fe57c6
commit 6953365d30
12 changed files with 228 additions and 80 deletions

View File

@ -439,12 +439,18 @@
* Makefiles: Removed dependency of distclean on clean in most top-level * Makefiles: Removed dependency of distclean on clean in most top-level
files. It makes sense for 'leaf' Makefiles to have this dependency, files. It makes sense for 'leaf' Makefiles to have this dependency,
but it does not make sense for upper-level Makefiles. but it does not make sense for upper-level Makefiles.
* namedapp/: Renamed to builtins in preparation for another change. * apps/namedapp/: Renamed to builtins in preparation for another change.
* .context: Removed the .context kludge. This caused lots of problems * .context: Removed the .context kludge. This caused lots of problems
when changing configurations because there is no easy way to get the when changing configurations because there is no easy way to get the
system to rebuild the context. Now, the context will be rebuilt system to rebuild the context. Now, the context will be rebuilt
whenever there is a change in either .config or the Makefile. whenever there is a change in either .config or the Makefile.
* builtin/registry: Updated new built-in registration logic to handle * apps/builtin/registry: Updated new built-in registration logic to handle
cases where (1) old apps/.config is used, and (2) applications ared cases where (1) old apps/.config is used, and (2) applications ared
removed, not just added. removed, not just added.
* apps/examples/nettest/Makefile: Fix an error that crept in during
some of the recent, massive build system changes.
* apps/builtin/Makefile: Need to have auto-generated header files
in place early in the dependency generation phase to avoid warnings.
It is not important if they are only stubbed out header files at
this build phase.

View File

@ -75,6 +75,9 @@ $(AOBJS): %$(OBJEXT): %.S
$(COBJS): %$(OBJEXT): %.c $(COBJS): %$(OBJEXT): %.c
$(call COMPILE, $<, $@) $(call COMPILE, $<, $@)
registry/.updated:
$(V) $(MAKE) -C registry .updated TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"
builtin_list.h: registry/.updated builtin_list.h: registry/.updated
$(call DELFILE, builtin_list.h) $(call DELFILE, builtin_list.h)
$(Q) touch builtin_list.h $(Q) touch builtin_list.h
@ -110,7 +113,7 @@ endif
context: context:
$(Q) $(MAKE) -C registry context TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" $(Q) $(MAKE) -C registry context TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)"
.depend: Makefile $(SRCS) .depend: Makefile $(SRCS) builtin_list.h builtin_proto.h
$(Q) $(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep $(Q) $(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep
$(Q) touch $@ $(Q) touch $@

View File

@ -66,8 +66,7 @@ endif
HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_HOST=1 HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_HOST=1
ifeq ($(CONFIG_EXAMPLES_NETTEST_SERVER),y) ifeq ($(CONFIG_EXAMPLES_NETTEST_SERVER),y)
HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_SERVER=1 \ HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_SERVER=1 -DCONFIG_EXAMPLES_NETTEST_CLIENTIP="$(CONFIG_EXAMPLES_NETTEST_CLIENTIP)"
-DCONFIG_EXAMPLES_NETTEST_CLIENTIP="$(CONFIG_EXAMPLES_NETTEST_CLIENTIP)"
endif endif
ifeq ($(CONFIG_EXAMPLES_NETTEST_PERFORMANCE),y) ifeq ($(CONFIG_EXAMPLES_NETTEST_PERFORMANCE),y)
HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_PERFORMANCE=1 HOSTCFLAGS += -DCONFIG_EXAMPLES_NETTEST_PERFORMANCE=1
@ -80,7 +79,8 @@ else
HOST_SRCS += nettest_server.c HOST_SRCS += nettest_server.c
endif endif
HOST_OBJS = $(HOST_SRCS:.c=.o) HOSTOBJEXT ?= .hobj
HOST_OBJS = $(HOST_SRCS:.c=$(HOSTOBJEXT))
HOST_BIN = host HOST_BIN = host
ROOTDEPPATH = --dep-path . ROOTDEPPATH = --dep-path .
@ -104,7 +104,7 @@ $(TARG_AOBJS): %$(OBJEXT): %.S
$(TARG_COBJS): %$(OBJEXT): %.c $(TARG_COBJS): %$(OBJEXT): %.c
$(call COMPILE, $<, $@) $(call COMPILE, $<, $@)
$(HOST_OBJS): %.o: %.c $(HOST_OBJS): %$(HOSTOBJEXT): %.c
@echo "CC: $<" @echo "CC: $<"
@$(HOSTCC) -c $(HOSTCFLAGS) $< -o $@ @$(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
@ -113,7 +113,7 @@ $(HOST_BIN): $(HOST_OBJS)
@$(HOSTCC) $(HOSTLDFLAGS) $(HOST_OBJS) -o $@ @$(HOSTCC) $(HOSTLDFLAGS) $(HOST_OBJS) -o $@
.built: $(TARG_OBJS) .built: $(TARG_OBJS)
$(call ARCHIVE, $(BIN), $(TARG_OBJS)) $(call ARCHIVE, $(TARG_BIN), $(TARG_OBJS))
@touch .built @touch .built
ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
@ -132,6 +132,7 @@ endif
depend: .depend depend: .depend
clean: clean:
$(call DELFILE, *$(HOSTOBJEXT))
$(call DELFILE, $(HOST_BIN)) $(call DELFILE, $(HOST_BIN))
$(call DELFILE, .built) $(call DELFILE, .built)
$(call CLEAN) $(call CLEAN)

View File

@ -3815,4 +3815,7 @@
* sched/sig_timedwait.c: Should always move the time up to the next * sched/sig_timedwait.c: Should always move the time up to the next
largest number of system ticks. The logic was rounding. Noted by largest number of system ticks. The logic was rounding. Noted by
Petteri Aimonen. Petteri Aimonen.
* arch/arm/src/up_head.S: Fix backward conditional compilation. NOTE
there is a issue of ARM9 systems with low vectors and large memories
that will have to be addressed in the future.

View File

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* arch/arm/src/arm/up_head.S * arch/arm/src/arm/up_pghead.S
* *
* Copyright (C) 2007, 2009-2010 Gregory Nutt. All rights reserved. * Copyright (C) 2007, 2009-2010 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
@ -78,6 +78,10 @@
* beginning of FLASH. * beginning of FLASH.
*/ */
# if !defined(CONFIG_FLASH_START) || !defined(CONFIG_FLASH_VSTART)
# error "CONFIG_FLASH_START or CONFIG_FLASH_VSTART is not defined"
# endif
# if CONFIG_FLASH_START == CONFIG_FLASH_VSTART # if CONFIG_FLASH_START == CONFIG_FLASH_VSTART
# define CONFIG_IDENTITY_TEXTMAP 1 # define CONFIG_IDENTITY_TEXTMAP 1
# endif # endif
@ -102,6 +106,10 @@
* beginning of FLASH. * beginning of FLASH.
*/ */
# if !defined(CONFIG_FLASH_START) || !defined(CONFIG_FLASH_VSTART)
# error "CONFIG_FLASH_START or CONFIG_FLASH_VSTART is not defined"
# endif
# if CONFIG_FLASH_START == CONFIG_FLASH_VSTART # if CONFIG_FLASH_START == CONFIG_FLASH_VSTART
# define CONFIG_IDENTITY_TEXTMAP 1 # define CONFIG_IDENTITY_TEXTMAP 1
# endif # endif
@ -120,6 +128,10 @@
* beginning of RAM. * beginning of RAM.
*/ */
# if !defined(CONFIG_DRAM_START) || !defined(CONFIG_DRAM_VSTART)
# error "CONFIG_DRAM_START or CONFIG_DRAM_VSTART is not defined"
# endif
# if CONFIG_DRAM_START == CONFIG_DRAM_VSTART # if CONFIG_DRAM_START == CONFIG_DRAM_VSTART
# define CONFIG_IDENTITY_TEXTMAP 1 # define CONFIG_IDENTITY_TEXTMAP 1
# endif # endif
@ -162,26 +174,37 @@
* Assembly Macros * Assembly Macros
****************************************************************************/ ****************************************************************************/
/* The ARM9 L1 page table can be placed at the beginning or at the end of the /* The ARM9 L1 page table can be placed at the beginning or at the end of
* RAM space. This decision is based on the placement of the vector area: * the RAM space. This decision is based on the placement of the vector
* If the vectors are place in low memory at address 0x0000 0000, then the * area: If the vectors are place in low memory at address 0x0000 0000, then
* page table is placed in high memory; if the vectors are placed in high * the page table is placed in high memory; if the vectors are placed in
* memory at address 0xfff0 0000, then the page table is locating at the * high memory at address 0xfff0 0000, then the page table is locating at
* beginning of RAM. * the beginning of RAM.
* *
* For the special case where (1) the program executes out of RAM, and (2) the * For the special case where (1) the program executes out of RAM, and (2)
* page is located at the beginning of RAM, then the following macro can * the page is located at the beginning of RAM (i.e., the high vector case),
* easily find the physical address of the section that includes the first * then the following macro can easily find the physical address of the
* part of the text region: Since the page table is closely related to the * section that includes the first part of the text region: Since the page
* NuttX base address in this case, we can convert the page table base address * table is closely related to the NuttX base address in this case, we can
* to the base address of the section containing both. * convert the page table base address to the base address of the section
* containing both.
*/
/* REVISIT: This works now of the low vector case only because the RAM
* sizes that we have been dealing with are less then 1MB so that both the
* page table and the vector table are in the same 1MB RAM block. But
* this will certainly break later. Hence, the annoying warning.
*/ */
#ifdef CONFIG_ARCH_LOWVECTORS #ifdef CONFIG_ARCH_LOWVECTORS
# warning "REVISIT"
#endif
//#ifndef CONFIG_ARCH_LOWVECTORS
.macro mksection, section, pgtable .macro mksection, section, pgtable
bic \section, \pgtable, #0x000ff000 bic \section, \pgtable, #0x000ff000
.endm .endm
#endif //#endif
/* This macro will modify r0, r1, r2 and r14 */ /* This macro will modify r0, r1, r2 and r14 */

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"

View File

@ -32,15 +32,31 @@
# POSSIBILITY OF SUCH DAMAGE. # POSSIBILITY OF SUCH DAMAGE.
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
WD=`pwd` WD=`pwd`
export BUILDROOT_BIN=${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin if [ ! -x "setenv.sh" ]; then
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG} echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
# This is the Cygwin path to the location where I installed the CodeSourcery
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}" echo "PATH : ${PATH}"