summaryrefslogtreecommitdiff
path: root/scripts/functions
diff options
context:
space:
mode:
authorErico Nunes <nunes.erico@gmail.com>2015-06-21 23:53:06 (GMT)
committerErico Nunes <nunes.erico@gmail.com>2015-06-21 23:53:06 (GMT)
commitb8e64a0c08ea2c3b2940d8e7154970f0dc610ed5 (patch)
treef03abeb0de40df3a4ae192eb16e2ded7f73cd10f /scripts/functions
parent230dc12285842a51e0a2a95137ae4eae675b97d3 (diff)
avr-libc: add support for avr-libc C library
This commit adds support for the avr-libc C library. According to the project page at http://www.nongnu.org/avr-libc , the avr-libc package provides a subset of the standard C library for Atmel AVR 8-bit RISC microcontrollers. In addition, the library provides the basic startup code needed by most applications. Support for this library in crosstool-ng is only enabled for the AVR 8-bit target. The avr-libc manual and most distributions build the AVR 8-bit gcc toolchain with the "avr" (non-canonical) target. Some experimentation also led to the conclusion that other (canonical) targets are not very well supported, so we force the "avr" target for crosstool-ng as well. The manual also recommends building avr-libc after the final gcc build. To accomplish this with crosstool-ng, a new do_libc_post_cc step is added, in which currently only avr-libc performs its build, and is a no-op for the other libc options. Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Diffstat (limited to 'scripts/functions')
-rw-r--r--scripts/functions10
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/functions b/scripts/functions
index e62fba2..0fe8239 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -1206,6 +1206,11 @@ CT_DoBuildTargetTuple() {
*glibc) CT_TARGET_SYS=gnu;;
uClibc) CT_TARGET_SYS=uclibc;;
musl) CT_TARGET_SYS=musl;;
+ avr-libc)
+ # avr-libc only seems to work with the non-canonical "avr" target.
+ CT_TARGET_SKIP_CONFIG_SUB=y
+ CT_TARGET_SYS= # CT_TARGET_SYS must be empty too
+ ;;
*) CT_TARGET_SYS=elf;;
esac
@@ -1259,7 +1264,10 @@ CT_DoBuildTargetTuple() {
esac
# Canonicalise it
- CT_TARGET=$(CT_DoConfigSub "${CT_TARGET}")
+ if [ "${CT_TARGET_SKIP_CONFIG_SUB}" != "y" ]; then
+ CT_TARGET=$(CT_DoConfigSub "${CT_TARGET}")
+ fi
+
# Prepare the target CFLAGS
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ENDIAN_CFLAG}"
CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ARCH_CFLAG}"