From a94b87075666680ca0285cd67efc253a5089756f Mon Sep 17 00:00:00 2001 From: "Martin Lund\"" Date: Fri, 22 May 2009 14:46:18 +0000 Subject: Added initial AVR32 support (bare-metal,newlib) --- scripts/build/libc/newlib.sh | 71 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 scripts/build/libc/newlib.sh (limited to 'scripts/build/libc') diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh new file mode 100644 index 00000000..79f074e9 --- /dev/null +++ b/scripts/build/libc/newlib.sh @@ -0,0 +1,71 @@ +# This file adds functions to build the Newlib C library +# Copyright 2008 Yann E. MORIN +# Licensed under the GPL v2. See COPYING in the root of this package +# +# Edited by by Martin Lund +# + + +do_libc_get() { + libc_src="ftp://sources.redhat.com/pub/newlib" + + CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src} + + return 0 +} + +do_libc_extract() { + CT_Extract "newlib-${CT_LIBC_VERSION}" + CT_Patch "newlib-${CT_LIBC_VERSION}" + + return 0 +} + +do_libc_check_config() { + : +} + +do_libc_headers() { + : +} + +do_libc_start_files() { + : +} + +do_libc() { + CT_DoStep INFO "Installing C library" + + mkdir -p "${CT_BUILD_DIR}/build-libc" + cd "${CT_BUILD_DIR}/build-libc" + + CT_DoLog EXTRA "Configuring C library" + + BUILD_CC="${CT_BUILD}-gcc" \ + CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ + CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \ + AR=${CT_TARGET}-ar \ + RANLIB=${CT_TARGET}-ranlib \ + CT_DoExecLog ALL \ + "${CT_SRC_DIR}/newlib-${CT_LIBC_VERSION}/configure" \ + --build=${CT_BUILD} \ + --host=${CT_HOST} \ + --target=${CT_TARGET} \ + --prefix=${CT_PREFIX_DIR} \ + ${extra_config} \ + ${CT_LIBC_GLIBC_EXTRA_CONFIG} + + CT_DoLog EXTRA "Building C library" + + CT_DoExecLog ALL make + + CT_DoLog EXTRA "Installing C library" + + CT_DoExecLog ALL make install install_root="${CT_SYSROOT_DIR}" + + CT_EndStep +} + +do_libc_finish() { + : +} -- cgit v1.2.3 From 72aea3b682d8138970793d08462807e07f7842aa Mon Sep 17 00:00:00 2001 From: "Martin Lund\"" Date: Fri, 22 May 2009 20:44:01 +0000 Subject: Temp fix for newlib configure. Updated avr32 crosstool.config. --- samples/avr32-unknown-none/crosstool.config | 28 +++++++++++----------------- scripts/build/libc/newlib.sh | 7 ++++--- 2 files changed, 15 insertions(+), 20 deletions(-) (limited to 'scripts/build/libc') diff --git a/samples/avr32-unknown-none/crosstool.config b/samples/avr32-unknown-none/crosstool.config index d9d84c37..b72d963f 100644 --- a/samples/avr32-unknown-none/crosstool.config +++ b/samples/avr32-unknown-none/crosstool.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# crosstool-NG version: svn_trunk@1547 -# Thu May 21 21:55:59 2009 +# crosstool-NG version: svn_devel_avr32@1553M +# Fri May 22 20:25:45 2009 # # @@ -14,8 +14,9 @@ # CT_OBSOLETE is not set CT_EXPERIMENTAL=y CT_DEBUG_CT=y -CT_DEBUG_PAUSE_STEPS=y -# CT_DEBUG_CT_SAVE_STEPS is not set +# CT_DEBUG_PAUSE_STEPS is not set +CT_DEBUG_CT_SAVE_STEPS=y +# CT_DEBUG_CT_SAVE_STEPS_GZIP is not set # CT_NO_OVERIDE_LC_MESSAGES is not set # @@ -82,7 +83,7 @@ CT_ARCH="avr32" # CT_ARCH_SUPPORT_TUNE is not set # CT_ARCH_SUPPORT_FPU is not set # CT_ARCH_DEFAULT_HAS_MMU is not set -# CT_ARCH_DEFAULT_BE is not set +CT_ARCH_DEFAULT_BE=y # CT_ARCH_DEFAULT_LE is not set # CT_ARCH_FLOAT_HW is not set CT_ARCH_FLOAT_SW=y @@ -102,7 +103,8 @@ CT_ARCH_avr32=y # CT_ARCH_sh is not set # CT_ARCH_x86_64 is not set # CT_ARCH_x86 is not set -# CT_ARCH_USE_MMU is not set +CT_ARCH_AVR32="avr32" +CT_ARCH_USE_MMU=y # # Target optimisations @@ -158,8 +160,8 @@ CT_KERNEL_bare_metal=y # # Binary utilities # -# CT_ARCH_BINFMT_ELF is not set -CT_ARCH_BINFMT_FLAT=y +CT_ARCH_BINFMT_ELF=y +# CT_ARCH_BINFMT_FLAT is not set # # GNU binutils @@ -186,14 +188,6 @@ CT_BINUTILS_V_2_18=y # CT_BINUTILS_V_2_19_51_0_2 is not set CT_BINUTILS_EXTRA_CONFIG="" -# -# elf2flt -# -CT_ELF2FLT_VERSION="head" -CT_ELF2FLT_CVSHEAD=y -# CT_ELF2FLT_CVS_SNAPSHOT is not set -CT_ELF2FLT_EXTRA_CONFIG="" - # # C compiler # @@ -235,7 +229,7 @@ CT_CC_SUPPORT_OBJCXX=y # Additional supported languages: # # CT_CC_LANG_CXX is not set -CT_LIBC="none" +CT_LIBC="newlib" # # C-library diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 79f074e9..2d8d69dd 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -41,9 +41,10 @@ do_libc() { CT_DoLog EXTRA "Configuring C library" - BUILD_CC="${CT_BUILD}-gcc" \ - CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ - CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \ + # FIXME +# BUILD_CC="${CT_BUILD}-gcc" \ +# CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ +# CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \ AR=${CT_TARGET}-ar \ RANLIB=${CT_TARGET}-ranlib \ CT_DoExecLog ALL \ -- cgit v1.2.3 From 07a71d8c420019b627c191259d14a2eaa1561b20 Mon Sep 17 00:00:00 2001 From: "Martin Lund\"" Date: Sat, 23 May 2009 18:46:42 +0000 Subject: Added support for Atmel AVR32 headers --- config/libc/newlib.in | 12 ++++++++++++ samples/avr32-unknown-none/crosstool.config | 5 +++-- scripts/build/libc/newlib.sh | 19 +++++++++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) (limited to 'scripts/build/libc') diff --git a/config/libc/newlib.in b/config/libc/newlib.in index e674cddd..fdca4ce1 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -29,3 +29,15 @@ config LIBC_VERSION # CT_INSERT_VERSION_STRING_ABOVE # Don't remove above line! + +config ATMEL_AVR32_HEADERS + bool + prompt "Install Atmel AVR32 headers" + default y + help + Install Atmel AVR32 headers for native AVR32 development. Most + AVR32 MCU devices are supported. + + If you do native AVR32 development you want to say 'Y' here. + + diff --git a/samples/avr32-unknown-none/crosstool.config b/samples/avr32-unknown-none/crosstool.config index b72d963f..2f9e8c47 100644 --- a/samples/avr32-unknown-none/crosstool.config +++ b/samples/avr32-unknown-none/crosstool.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# crosstool-NG version: svn_devel_avr32@1553M -# Fri May 22 20:25:45 2009 +# crosstool-NG version: svn_devel_avr32@1555M +# Sat May 23 19:57:07 2009 # # @@ -240,6 +240,7 @@ CT_LIBC_VERSION="1.17.0" CT_LIBC_newlib=y # CT_LIBC_uClibc is not set CT_NEWLIB_V_1_17_0=y +CT_ATMEL_AVR32_HEADERS=y # # Common C library options diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 2d8d69dd..07c254c8 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -8,9 +8,14 @@ do_libc_get() { libc_src="ftp://sources.redhat.com/pub/newlib" - + avr32headers_src="http://dev.doredevelopment.dk/avr32-toolchain/sources" + CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src} + if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then + CT_GetFile "avr32headers" ${avr32headers_src} + fi + return 0 } @@ -18,6 +23,10 @@ do_libc_extract() { CT_Extract "newlib-${CT_LIBC_VERSION}" CT_Patch "newlib-${CT_LIBC_VERSION}" + if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then + CT_Extract "avr32headers" + fi + return 0 } @@ -68,5 +77,11 @@ do_libc() { } do_libc_finish() { - : + CT_DoStep INFO "Installing Atmel AVR32 headers" + + if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then + CT_DoExecLog ALL cp -r ${CT_SRC_DIR}/avr32headers "${CT_PREFIX_DIR}/${CT_TARGET}/include/avr32" + fi + + CT_EndStep } -- cgit v1.2.3 From 6b2b096869072b8dfb58e35e55e45947fcbed75a Mon Sep 17 00:00:00 2001 From: Martin Lund Date: Sun, 14 Jun 2009 22:43:33 +0200 Subject: Changed copyright --- scripts/build/libc/newlib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts/build/libc') diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 07c254c8..80dc0f49 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -1,8 +1,8 @@ # This file adds functions to build the Newlib C library -# Copyright 2008 Yann E. MORIN +# Copyright 2009 DoréDevelopment # Licensed under the GPL v2. See COPYING in the root of this package # -# Edited by by Martin Lund +# Edited by Martin Lund # -- cgit v1.2.3 From 8fb846f5b5174e42b913f20ab1f058b502fd4791 Mon Sep 17 00:00:00 2001 From: Martin Lund Date: Sat, 20 Jun 2009 17:16:54 +0200 Subject: Misc AVR32 cleanups. --- config/arch/avr32.in | 10 +++++----- config/libc.in | 7 ++----- config/libc/newlib.in | 1 - samples/avr32-unknown-none/crosstool.config | 19 +++++++++++-------- scripts/build/libc/newlib.sh | 4 ---- 5 files changed, 18 insertions(+), 23 deletions(-) (limited to 'scripts/build/libc') diff --git a/config/arch/avr32.in b/config/arch/avr32.in index 2965828d..63916da5 100644 --- a/config/arch/avr32.in +++ b/config/arch/avr32.in @@ -4,10 +4,10 @@ config ARCH_avr32 select ARCH_USE_MMU select ARCH_DEFAULT_BE - help + select ARCH_SUPPORT_ARCH + select ARCH_SUPPORT_CPU + select ARCH_SUPPORT_TUNE + select ARCH_SUPPORT_FPU + help The AVR32 architecture, as defined by: http://www.atmel.com/products/avr32 - -config ARCH_AVR32 - string - default "avr32" diff --git a/config/libc.in b/config/libc.in index a10b942d..d8020ca5 100644 --- a/config/libc.in +++ b/config/libc.in @@ -2,11 +2,8 @@ config LIBC string -# default "none" if BARE_METAL - default "newlib" if EXPERIMENTAL - -# FIXME: toolchain can be BARE_METAL (no OS) but have OS independent LIBC (eg. newlib) -# new combinations needed + default "none" if BARE_METAL + default "newlib" if BARE_METAL && ARCH_avr32 && EXPERIMENTAL menu "C-library" diff --git a/config/libc/newlib.in b/config/libc/newlib.in index fdca4ce1..c4b9e088 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -40,4 +40,3 @@ config ATMEL_AVR32_HEADERS If you do native AVR32 development you want to say 'Y' here. - diff --git a/samples/avr32-unknown-none/crosstool.config b/samples/avr32-unknown-none/crosstool.config index 2f9e8c47..f60bd734 100644 --- a/samples/avr32-unknown-none/crosstool.config +++ b/samples/avr32-unknown-none/crosstool.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# crosstool-NG version: svn_devel_avr32@1555M -# Sat May 23 19:57:07 2009 +# crosstool-NG version: svn_devel_avr32@1596M +# Sat Jun 20 17:03:17 2009 # # @@ -77,14 +77,18 @@ CT_ARCH="avr32" # CT_ARCH_64 is not set # CT_ARCH_SUPPORTS_BOTH_MMU is not set # CT_ARCH_SUPPORTS_BOTH_ENDIAN is not set -# CT_ARCH_SUPPORT_ARCH is not set +CT_ARCH_SUPPORT_ARCH=y # CT_ARCH_SUPPORT_ABI is not set -# CT_ARCH_SUPPORT_CPU is not set -# CT_ARCH_SUPPORT_TUNE is not set -# CT_ARCH_SUPPORT_FPU is not set +CT_ARCH_SUPPORT_CPU=y +CT_ARCH_SUPPORT_TUNE=y +CT_ARCH_SUPPORT_FPU=y # CT_ARCH_DEFAULT_HAS_MMU is not set CT_ARCH_DEFAULT_BE=y # CT_ARCH_DEFAULT_LE is not set +CT_ARCH_ARCH="" +CT_ARCH_CPU="" +CT_ARCH_TUNE="" +CT_ARCH_FPU="" # CT_ARCH_FLOAT_HW is not set CT_ARCH_FLOAT_SW=y CT_TARGET_CFLAGS="" @@ -103,7 +107,6 @@ CT_ARCH_avr32=y # CT_ARCH_sh is not set # CT_ARCH_x86_64 is not set # CT_ARCH_x86 is not set -CT_ARCH_AVR32="avr32" CT_ARCH_USE_MMU=y # @@ -229,7 +232,7 @@ CT_CC_SUPPORT_OBJCXX=y # Additional supported languages: # # CT_CC_LANG_CXX is not set -CT_LIBC="newlib" +CT_LIBC="none" # # C-library diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 80dc0f49..a5446933 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -15,8 +15,6 @@ do_libc_get() { if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then CT_GetFile "avr32headers" ${avr32headers_src} fi - - return 0 } do_libc_extract() { @@ -26,8 +24,6 @@ do_libc_extract() { if [ "${CT_ATMEL_AVR32_HEADERS}" = "y" ]; then CT_Extract "avr32headers" fi - - return 0 } do_libc_check_config() { -- cgit v1.2.3 From b4467e66171a5e00dd878edae088263e78260fd0 Mon Sep 17 00:00:00 2001 From: Martin Lund Date: Sat, 20 Jun 2009 18:54:56 +0200 Subject: Fix libc config --- config/libc.in | 2 +- scripts/build/libc/newlib.sh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'scripts/build/libc') diff --git a/config/libc.in b/config/libc.in index d8020ca5..30e39e55 100644 --- a/config/libc.in +++ b/config/libc.in @@ -2,8 +2,8 @@ config LIBC string - default "none" if BARE_METAL default "newlib" if BARE_METAL && ARCH_avr32 && EXPERIMENTAL + default "none" if BARE_METAL menu "C-library" diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index a5446933..094f2e1c 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -46,10 +46,11 @@ do_libc() { CT_DoLog EXTRA "Configuring C library" - # FIXME -# BUILD_CC="${CT_BUILD}-gcc" \ -# CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ + CT_DoLog INFO "${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" + # CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \ + BUILD_CC="${CT_BUILD}-gcc" \ + CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ AR=${CT_TARGET}-ar \ RANLIB=${CT_TARGET}-ranlib \ CT_DoExecLog ALL \ -- cgit v1.2.3 From bfe21badf86bf69e42a2f29be734df45da57cd80 Mon Sep 17 00:00:00 2001 From: Martin Lund Date: Sat, 20 Jun 2009 19:42:00 +0200 Subject: Removed debug line --- scripts/build/libc/newlib.sh | 2 -- 1 file changed, 2 deletions(-) (limited to 'scripts/build/libc') diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 094f2e1c..196334d4 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -46,8 +46,6 @@ do_libc() { CT_DoLog EXTRA "Configuring C library" - CT_DoLog INFO "${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" - # CC="${CT_TARGET}-gcc ${CT_LIBC_EXTRA_CC_ARGS} ${extra_cc_args}" \ BUILD_CC="${CT_BUILD}-gcc" \ CFLAGS="${CT_TARGET_CFLAGS} ${CT_LIBC_GLIBC_EXTRA_CFLAGS} -O" \ -- cgit v1.2.3