diff options
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/Config.in | 75 | ||||
-rw-r--r-- | toolchain/Config.in.2 | 66 | ||||
-rw-r--r-- | toolchain/external-toolchain/Config.in | 72 | ||||
-rw-r--r-- | toolchain/external-toolchain/ext-tool.mk | 56 | ||||
-rw-r--r-- | toolchain/gdb/Config.in.2 | 55 | ||||
-rw-r--r-- | toolchain/uClibc/uclibc.mk | 2 |
6 files changed, 265 insertions, 61 deletions
diff --git a/toolchain/Config.in b/toolchain/Config.in index 82a3621d0..9b464f2b4 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -1,67 +1,20 @@ # -menu "Toolchain Options" - - -source "toolchain/kernel-headers/Config.in" -source "toolchain/uClibc/Config.in" -source "toolchain/binutils/Config.in" -source "toolchain/gcc/Config.in" -source "toolchain/ccache/Config.in" -source "toolchain/gdb/Config.in" -source "toolchain/elf2flt/Config.in" -source "toolchain/mklibs/Config.in" - -comment "Common Toolchain Options" - -source "toolchain/sstrip/Config.in" - -config BR2_ENABLE_MULTILIB - bool "Enable multilib support?" - default n - help - If you want multilib enabled, enable this... - -config BR2_LARGEFILE - bool "Enable large file (files > 2 GB) support?" - depends on !BR2_cris - default y - help - Enable large file (files > 2 GB) support - -config BR2_SOFT_FLOAT - bool "Use software floating point by default" - default n - depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_powerpc - help - If your target CPU does not have a Floating Point Unit (FPU) or a - kernel FPU emulator, but you still wish to support floating point - functions, then everything will need to be compiled with soft - floating point support (-msoft-float). - - Most people will answer N. - -#config BR2_SOFT_FLOAT_FP -# bool "Use softfp" -# default n - -config BR2_TARGET_OPTIMIZATION - string "Target Optimizations" - default "-Os -pipe" - help - Optimizations to use when building for the target host. - -config BR2_CROSS_TOOLCHAIN_TARGET_UTILS - bool "Include target utils in cross toolchain" - default y +choice + prompt "Toolchain type" + default BR2_TOOLCHAIN_BUILDROOT help - When using buildroot to build a deployable cross toolchain, - it is handy to include certain target apps with that toolchain - as a convenience. - Examples include ldd, gdbserver, and strace. + Select whether to use the toolchain built by the buildroot + system or an external pre-built toolchain. - Answer Y if you want these apps (if built) copied into the - cross toolchain dir under <arch>-linux-uclibc/target_utils/. +config BR2_TOOLCHAIN_BUILDROOT + bool + prompt "Buildroot toolchain" -endmenu +config BR2_TOOLCHAIN_EXTERNAL + bool + prompt " External toolchain" +endchoice +source "toolchain/Config.in.2" +source "toolchain/external-toolchain/Config.in" diff --git a/toolchain/Config.in.2 b/toolchain/Config.in.2 new file mode 100644 index 000000000..b9f1c3217 --- /dev/null +++ b/toolchain/Config.in.2 @@ -0,0 +1,66 @@ +# + +menu "Toolchain Options" + depends on BR2_TOOLCHAIN_BUILDROOT + +source "toolchain/kernel-headers/Config.in" +source "toolchain/uClibc/Config.in" +source "toolchain/binutils/Config.in" +source "toolchain/gcc/Config.in" +source "toolchain/ccache/Config.in" +source "toolchain/gdb/Config.in" +source "toolchain/elf2flt/Config.in" +source "toolchain/mklibs/Config.in" + +comment "Common Toolchain Options" + +source "toolchain/sstrip/Config.in" + +config BR2_ENABLE_MULTILIB + bool "Enable multilib support?" + default n + help + If you want multilib enabled, enable this... + +config BR2_LARGEFILE + bool "Enable large file (files > 2 GB) support?" + depends on !BR2_cris + default y + help + Enable large file (files > 2 GB) support + +config BR2_SOFT_FLOAT + bool "Use software floating point by default" + default n + depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_powerpc + help + If your target CPU does not have a Floating Point Unit (FPU) or a + kernel FPU emulator, but you still wish to support floating point + functions, then everything will need to be compiled with soft + floating point support (-msoft-float). + + Most people will answer N. + +#config BR2_SOFT_FLOAT_FP +# bool "Use softfp" +# default n + +config BR2_TARGET_OPTIMIZATION + string "Target Optimizations" + default "-Os -pipe" + help + Optimizations to use when building for the target host. + +config BR2_CROSS_TOOLCHAIN_TARGET_UTILS + bool "Include target utils in cross toolchain" + default y + help + When using buildroot to build a deployable cross toolchain, + it is handy to include certain target apps with that toolchain + as a convenience. + Examples include ldd, gdbserver, and strace. + + Answer Y if you want these apps (if built) copied into the + cross toolchain dir under <arch>-linux-uclibc/target_utils/. + +endmenu diff --git a/toolchain/external-toolchain/Config.in b/toolchain/external-toolchain/Config.in new file mode 100644 index 000000000..c004175cd --- /dev/null +++ b/toolchain/external-toolchain/Config.in @@ -0,0 +1,72 @@ +# + +menu "Toolchain Options" + depends on BR2_TOOLCHAIN_EXTERNAL + +config BR2_TOOLCHAIN_EXTERNAL_LIB_C + string "The core C library from the external toolchain" + default "libc.so.6" + help + Specify the core C shared library found in the external + toolchain. This is required in addition to any other + libraries to be copied. + +config BR2_TOOLCHAIN_EXTERNAL_LIBS + string "Libraries to copy from the external toolchain" + default "" + help + A space separated list of the shared libraries to be copied + from the external toolchain into the root filesystem. Only + the top-level name is needed, i.e. libc.so, libpthread.so as + the actual shared library symlinked to will be copied also. + +config BR2_TOOLCHAIN_EXTERNAL_STRIP + bool + default y + prompt "Strip shared libraries" + help + Strip shared libraries copied from the external toolchain. + +source "toolchain/gdb/Config.in.2" + +comment "Common Toolchain Options" + +config BR2_TOOLCHAIN_EXTERNAL_PATH + string "External toolchain path" + default "" + help + Path to where the external toolchain is installed. + +config BR2_TOOLCHAIN_EXTERNAL_PREFIX + string "External toolchain prefix" + default "" + help + This the the external toolchain prefix. For example: + armeb-unknown-linux-gnu, mipsel-unknown-linux-gnu, etc. + +config BR2_LARGEFILE + bool "Enable large file (files > 2 GB) support?" + depends on !BR2_cris + default y + help + Enable large file (files > 2 GB) support + +config BR2_SOFT_FLOAT + bool "Use software floating point by default" + default n + depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_powerpc + help + If your target CPU does not have a Floating Point Unit (FPU) or a + kernel FPU emulator, but you still wish to support floating point + functions, then everything will need to be compiled with soft + floating point support (-msoft-float). + + Most people will answer N. + +config BR2_TARGET_OPTIMIZATION + string "Target Optimizations" + default "-Os -pipe" + help + Optimizations to use when building for the target host. + +endmenu diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk new file mode 100644 index 000000000..ab4cbef6c --- /dev/null +++ b/toolchain/external-toolchain/ext-tool.mk @@ -0,0 +1,56 @@ +# +# copy_toolchain_lib_root +# +# $1: source +# $2: destination +# $2: strip (y|n) default is to strip +# +copy_toolchain_lib_root = \ + LIB="$(strip $1)"; \ + DST="$(strip $2)"; \ + STRIP="$(strip $3)"; \ + \ + LIB_DIR=`$(TARGET_CC) -print-file-name=$${LIB} | sed -e "s,/$${LIB}\$$,,"`; \ + \ + if test -z "$${LIB_DIR}"; then \ + echo "copy_toolchain_lib_root: lib=$${LIB} not found"; \ + exit -1; \ + fi; \ + \ + LIB="$(strip $1)"; \ + for FILE in `find $${LIB_DIR} -type l -name "$${LIB}*" -maxdepth 1`; do \ + LIB=`basename $${FILE}`; \ + while test \! -z "$${LIB}"; do \ + echo "copy_toolchain_lib_root lib=$${LIB} dst=$${DST}"; \ + rm -fr $(TARGET_DIR)$${DST}/$${LIB}; \ + mkdir -p $(TARGET_DIR)$${DST}; \ + if test -h $${LIB_DIR}/$${LIB}; then \ + cp -d $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/; \ + elif test -f $${LIB_DIR}/$${LIB}; then \ + cp $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/$${LIB}; \ + case "$${STRIP}" in \ + (0 | n | no) \ + ;; \ + (*) \ + $(TARGET_CROSS)strip "$(TARGET_DIR)$${DST}/$${LIB}"; \ + ;; \ + esac; \ + else \ + exit -1; \ + fi; \ + LIB="`readlink $${LIB_DIR}/$${LIB}`"; \ + done; \ + done; \ + \ + echo -n + +uclibc: dependencies $(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))) + +$(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))): +#")) + mkdir -p $(TARGET_DIR)/lib + @$(call copy_toolchain_lib_root, $(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))), /lib, $(BR2_TOOLCHAIN_EXTERNAL_STRIP)) +#"))) + for libs in $(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIBS))) ; do \ + $(call copy_toolchain_lib_root, $$libs, /lib, $(BR2_TOOLCHAIN_EXTERNAL_STRIP)) ; \ + done diff --git a/toolchain/gdb/Config.in.2 b/toolchain/gdb/Config.in.2 new file mode 100644 index 000000000..695c5d5ea --- /dev/null +++ b/toolchain/gdb/Config.in.2 @@ -0,0 +1,55 @@ +# Keep this in sync with Config.in + +comment "Gdb Options" + +config BR2_PACKAGE_GDB + bool "Build gdb debugger for the Target" + default n + select BR2_PACKAGE_NCURSES + help + Build the full gdb debugger to run on the target. + +config BR2_PACKAGE_GDB_SERVER + bool "Build gdb server for the Target" + default n + help + Build the gdbserver stub to run on the target. + A full gdb is needed to debug the progam. + +config BR2_PACKAGE_GDB_HOST + bool "Build gdb for the Host" + default n + help + Build gdb to run on the host to debug programs run on the target. + +choice + prompt "GDB debugger Version" + default BR2_GDB_VERSION_6_3 + depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST + help + Select the version of gdb you wish to use. + + config BR2_EXT_GDB_VERSION_6_2_1 + bool "gdb 6.2.1" + + config BR2_EXT_GDB_VERSION_6_3 + bool "gdb 6.3" + + config BR2_EXT_GDB_VERSION_6_4 + bool "gdb 6.4" + + config BR2_EXT_GDB_VERSION_6_5 + bool "gdb 6.5" + + config BR2_EXT_GDB_VERSION_SNAPSHOT + bool "gdb snapshot" + +endchoice + +config BR2_EXT_GDB_VERSION + string + default "6.2.1" if BR2_EXT_GDB_VERSION_6_2_1 + default "6.3" if BR2_EXT_GDB_VERSION_6_3 + default "6.4" if BR2_EXT_GDB_VERSION_6_4 + default "6.5" if BR2_EXT_GDB_VERSION_6_5 + default "snapshot" if BR2_EXT_GDB_VERSION_SNAPSHOT diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index d2bd62c63..57b0d9a52 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -4,6 +4,7 @@ # ############################################################# +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y) # Be aware that this changes daily.... @@ -339,3 +340,4 @@ uclibc_target-clean: uclibc_target-dirclean: rm -rf $(TARGET_DIR)/usr/include +endif |