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/build | |
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/build')
-rw-r--r-- | scripts/build/libc/avr-libc.sh | 71 | ||||
-rw-r--r-- | scripts/build/libc/glibc.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/mingw.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/musl.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/newlib.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/none.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/uClibc.sh | 4 |
7 files changed, 95 insertions, 0 deletions
diff --git a/scripts/build/libc/avr-libc.sh b/scripts/build/libc/avr-libc.sh new file mode 100644 index 00000000..502beb8b --- /dev/null +++ b/scripts/build/libc/avr-libc.sh @@ -0,0 +1,71 @@ +# This file adds functions to build the avr-libc C library + +do_libc_get() { + local libc_src + + libc_src="http://download.savannah.gnu.org/releases/avr-libc" + + if [ "${CT_LIBC_AVR_LIBC_CUSTOM}" = "y" ]; then + CT_GetCustom "avr-libc" "${CT_LIBC_VERSION}" \ + "${CT_LIBC_AVR_LIBC_CUSTOM_LOCATION}" + else # ! custom location + CT_GetFile "avr-libc-${CT_LIBC_VERSION}" "${libc_src}" + fi # ! custom location +} + +do_libc_extract() { + # If using custom directory location, nothing to do. + if [ "${CT_LIBC_AVR_LIBC_CUSTOM}" = "y" ]; then + # Abort if the custom directory is not found. + if ! [ -d "${CT_SRC_DIR}/avr-libc-${CT_LIBC_VERSION}" ]; then + CT_Abort "Directory not found: ${CT_SRC_DIR}/avr-libc-${CT_LIBC_VERSION}" + fi + + return 0 + fi + + CT_Extract "avr-libc-${CT_LIBC_VERSION}" + CT_Patch "avr-libc" "${CT_LIBC_VERSION}" +} + +do_libc_check_config() { + : +} + +do_libc_configure() { + CT_DoLog EXTRA "Configuring C library" + + CT_DoExecLog CFG \ + ./configure \ + --build=${CT_BUILD} \ + --host=${CT_TARGET} \ + --prefix=${CT_PREFIX_DIR} \ + "${CT_LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY[@]}" +} + +do_libc_start_files() { + : +} + +do_libc() { + : +} + +do_libc_post_cc() { + CT_DoStep INFO "Installing C library" + + CT_DoLog EXTRA "Copying sources to build directory" + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/avr-libc-${CT_LIBC_VERSION}" \ + "${CT_BUILD_DIR}/build-libc-post-cc" + cd "${CT_BUILD_DIR}/build-libc-post-cc" + + do_libc_configure + + CT_DoLog EXTRA "Building C library" + CT_DoExecLog ALL make ${JOBSFLAGS} + + CT_DoLog EXTRA "Installing C library" + CT_DoExecLog ALL make install + + CT_EndStep +} diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 672e6725..39dbe01d 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -665,3 +665,7 @@ do_libc_locales() { install_root="${CT_SYSROOT_DIR}" \ localedata/install-locales } + +do_libc_post_cc() { + : +} diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh index 23f31d1a..26a00e09 100644 --- a/scripts/build/libc/mingw.sh +++ b/scripts/build/libc/mingw.sh @@ -112,3 +112,7 @@ do_libc() { CT_EndStep } + +do_libc_post_cc() { + : +} diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh index ac98bb97..81a19d72 100644 --- a/scripts/build/libc/musl.sh +++ b/scripts/build/libc/musl.sh @@ -113,3 +113,7 @@ do_libc() { CT_EndStep } + +do_libc_post_cc() { + : +} diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index af04a6d1..744c291f 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -149,3 +149,7 @@ do_libc() { CT_EndStep } + +do_libc_post_cc() { + : +} diff --git a/scripts/build/libc/none.sh b/scripts/build/libc/none.sh index ca95e739..d4bf7dcb 100644 --- a/scripts/build/libc/none.sh +++ b/scripts/build/libc/none.sh @@ -21,3 +21,7 @@ do_libc_start_files() { do_libc() { : } + +do_libc_post_cc() { + : +} diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index f0522abd..d270915e 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -554,3 +554,7 @@ mungeuClibcConfig() { sed -r -f "${munge_file}" "${src_config_file}" >"${dst_config_file}" } + +do_libc_post_cc() { + : +} |