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 | 
