diff options
author | Erico Nunes <nunes.erico@gmail.com> | 2015-06-21 20:53:06 -0300 |
---|---|---|
committer | Erico Nunes <nunes.erico@gmail.com> | 2015-06-21 20:53:06 -0300 |
commit | b8e64a0c08ea2c3b2940d8e7154970f0dc610ed5 (patch) | |
tree | f03abeb0de40df3a4ae192eb16e2ded7f73cd10f /scripts/functions | |
parent | 230dc12285842a51e0a2a95137ae4eae675b97d3 (diff) | |
download | crosstool-ng-b8e64a0c08ea2c3b2940d8e7154970f0dc610ed5.tar.gz crosstool-ng-b8e64a0c08ea2c3b2940d8e7154970f0dc610ed5.tar.bz2 crosstool-ng-b8e64a0c08ea2c3b2940d8e7154970f0dc610ed5.zip |
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/functions | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/functions b/scripts/functions index e62fba2b..0fe8239a 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}" |