aboutsummaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-04 20:29:04 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-04 20:29:04 +0000
commitbb96124a20a22f34eb8e6f35dbcdef10c5b84808 (patch)
tree87375c11f51bc44ebe7c45c2a92a92679f9bcd4b /nuttx
parent396d6787a7bb0532a7c21b3a5482054e664a9bc4 (diff)
downloadpx4-firmware-bb96124a20a22f34eb8e6f35dbcdef10c5b84808.tar.gz
px4-firmware-bb96124a20a22f34eb8e6f35dbcdef10c5b84808.tar.bz2
px4-firmware-bb96124a20a22f34eb8e6f35dbcdef10c5b84808.zip
Changes to get a clean build of apps/examples/cxxtest with the STM32 and uClibc++
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5310 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/configs/sim/cxxtest/Make.defs2
-rw-r--r--nuttx/configs/stm32f4discovery/README.txt29
-rw-r--r--nuttx/configs/stm32f4discovery/cxxtest/Make.defs2
-rw-r--r--nuttx/configs/twr-k60n512/scripts/ld.script2
4 files changed, 31 insertions, 4 deletions
diff --git a/nuttx/configs/sim/cxxtest/Make.defs b/nuttx/configs/sim/cxxtest/Make.defs
index 6f945cc51..9c7c3d46b 100644
--- a/nuttx/configs/sim/cxxtest/Make.defs
+++ b/nuttx/configs/sim/cxxtest/Make.defs
@@ -93,7 +93,7 @@ LDLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(LD)
CCLINKFLAGS = $(ARCHSCRIPT) # Link flags used with $(CC)
LDFLAGS = $(ARCHSCRIPT) # For backward compatibility, same as CCLINKFLAGS
-LIBSUPXX = ${shell $(CC) --print-file-name=libsupc++.a}
+LIBSUPXX = ${shell $(CC) $(CXXFLAGS) --print-file-name=libsupc++.a}
EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}"
EXTRA_LIBS = -lsupc++
diff --git a/nuttx/configs/stm32f4discovery/README.txt b/nuttx/configs/stm32f4discovery/README.txt
index 730bf66ef..02fdbb07a 100644
--- a/nuttx/configs/stm32f4discovery/README.txt
+++ b/nuttx/configs/stm32f4discovery/README.txt
@@ -1008,7 +1008,34 @@ Where <subdir> is one of the following:
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
- 3. At present (2012/11/02), this example builds only with exceptions
+ 3. Ideally, you should build with a toolchain based on GLIBC or
+ uClibc++. It you use a toolchain based on newlib, you may see
+ an error like the following:
+
+ .../lib/libsupc++.a(vterminate.o): In function `__gnu_cxx::__verbose_terminate_handler()':
+ vterminate.cc:(....): undefined reference to `_impure_ptr'
+
+ Here is a quick'n'dirty fix:
+
+ 1. Get the directory where you can find libsupc++:
+
+ arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -print-file-name=libsupc++.a
+
+ 2. Go to that directory and save a copy of vterminate.o (in case you
+ want to restore it later:
+
+ cd <the-directory-containing-libsupc++.a>
+ arm-none-eabi-ar.exe -x libsupc++.a vterminate.o
+
+ 3. Then remove vterminate.o from the library. At build time, the
+ uClibc++ package will provide a usable replacement vterminate.o.
+
+ Now NuttX should link with no problem. If you want to restore the
+ vterminate.o that you removed from libsupc++, you can do that with:
+
+ arm-none-eabi-ar.exe rcs libsupc++.a vterminate.o
+
+ 4. At present (2012/11/02), this example builds only with exceptions
disabled (CONFIG_UCLIBCXX_EXCEPTIONS=n).
elf:
diff --git a/nuttx/configs/stm32f4discovery/cxxtest/Make.defs b/nuttx/configs/stm32f4discovery/cxxtest/Make.defs
index f81d6ec2c..004643950 100644
--- a/nuttx/configs/stm32f4discovery/cxxtest/Make.defs
+++ b/nuttx/configs/stm32f4discovery/cxxtest/Make.defs
@@ -114,7 +114,7 @@ ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gc
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
LDSCRIPT = ld.script
-LIBSUPXX = ${shell $(CC) --print-file-name=libsupc++.a}
+LIBSUPXX = ${shell $(CC) $(CXXFLAGS) --print-file-name=libsupc++.a}
EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}"
EXTRA_LIBS = -lsupc++
diff --git a/nuttx/configs/twr-k60n512/scripts/ld.script b/nuttx/configs/twr-k60n512/scripts/ld.script
index 26410e6d8..34f1527eb 100644
--- a/nuttx/configs/twr-k60n512/scripts/ld.script
+++ b/nuttx/configs/twr-k60n512/scripts/ld.script
@@ -1,4 +1,4 @@
- /****************************************************************************
+/****************************************************************************
* configs/twr-k60n512/scripts/ld.script
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.