All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc...
@ 2007-02-06 18:19 sjhill at uclibc.org
  2007-02-06 18:33 ` Bernhard Fischer
  2007-02-19 16:08 ` [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc - buildroot build with ext toolchain fails MikeW
  0 siblings, 2 replies; 3+ messages in thread
From: sjhill at uclibc.org @ 2007-02-06 18:19 UTC (permalink / raw)
  To: buildroot

Author: sjhill
Date: 2007-02-06 10:19:38 -0800 (Tue, 06 Feb 2007)
New Revision: 17800

Log:
Support building using an external toolchain. Questions to the mailing list and all other comments to <biteme@devnull.com>.


Added:
   trunk/buildroot/toolchain/Config.in.2
   trunk/buildroot/toolchain/external-toolchain/
   trunk/buildroot/toolchain/external-toolchain/Config.in
   trunk/buildroot/toolchain/external-toolchain/ext-tool.mk
   trunk/buildroot/toolchain/gdb/Config.in.2

Modified:
   trunk/buildroot/Makefile
   trunk/buildroot/package/Makefile.in
   trunk/buildroot/target/Makefile.in
   trunk/buildroot/target/device/Makefile.in
   trunk/buildroot/toolchain/Config.in
   trunk/buildroot/toolchain/uClibc/uclibc.mk


Changeset:
Modified: trunk/buildroot/Makefile
===================================================================
--- trunk/buildroot/Makefile	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/Makefile	2007-02-06 18:19:38 UTC (rev 17800)
@@ -44,7 +44,11 @@
 # along with the packages to build for the target.
 #
 ##############################################################
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 TARGETS:=uclibc-configured binutils gcc uclibc-target-utils
+else
+TARGETS:=uclibc
+endif
 include toolchain/Makefile.in
 include package/Makefile.in
 

Modified: trunk/buildroot/package/Makefile.in
===================================================================
--- trunk/buildroot/package/Makefile.in	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/package/Makefile.in	2007-02-06 18:19:38 UTC (rev 17800)
@@ -19,7 +19,12 @@
 #")
 
 
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
+else
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
+TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
+endif
 HOSTCC:=gcc
 HOSTCXX:=g++
 
@@ -44,13 +49,14 @@
 #PATCH_DIR=$(BASE_DIR)/sources/patches
 BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
 TARGET_DIR:=$(BUILD_DIR)/root
-TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
 
 GNU_TARGET_SUFFIX:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
 #"))
 
 STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
 #"))
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
+TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
 
 # Quotes are needed for spaces et al in path components.
 TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(PATH)"
@@ -59,6 +65,19 @@
 GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
 KERNEL_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)-
 TARGET_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)-
+else
+TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
+#"))
+TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
+#"))
+TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
+TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
+IMAGE:=$(BASE_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX)
+REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
+GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
+KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+endif
 TARGET_CC=$(TARGET_CROSS)gcc
 TARGET_CXX=$(TARGET_CROSS)g++
 TARGET_RANLIB=$(TARGET_CROSS)ranlib

Modified: trunk/buildroot/target/Makefile.in
===================================================================
--- trunk/buildroot/target/Makefile.in	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/target/Makefile.in	2007-02-06 18:19:38 UTC (rev 17800)
@@ -7,4 +7,7 @@
 # and finally build the filesystems/tarballs
 include target/*/*.mk
 # kernel rules
+ifeq ($(BR2_PACKAGE_LINUX),y)
+TARGETS+=linux26
+endif
 include target/linux*.mk

Modified: trunk/buildroot/target/device/Makefile.in
===================================================================
--- trunk/buildroot/target/device/Makefile.in	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/target/device/Makefile.in	2007-02-06 18:19:38 UTC (rev 17800)
@@ -1,6 +1,3 @@
 TARGET_DEVICE_DEPMOD:=target/device/x86/depmod.pl
 
 -include target/device/*/Makefile.in
-ifeq ($(BR2_PACKAGE_LINUX),y)
-TARGETS+=linux26
-endif

Modified: trunk/buildroot/toolchain/Config.in
===================================================================
--- trunk/buildroot/toolchain/Config.in	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/toolchain/Config.in	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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
+choice
+	prompt "Toolchain type"
+	default BR2_TOOLCHAIN_BUILDROOT
 	help
-	    If you want multilib enabled, enable this...
+	  Select whether to use the toolchain built by the buildroot
+	  system or an external pre-built toolchain.
 
-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_TOOLCHAIN_BUILDROOT
+	bool
+	prompt "Buildroot toolchain"
 
-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).
+config BR2_TOOLCHAIN_EXTERNAL
+	bool
+	prompt " External toolchain"
+endchoice
 
-	  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
-
+source "toolchain/Config.in.2"
+source "toolchain/external-toolchain/Config.in"

Added: trunk/buildroot/toolchain/Config.in.2
===================================================================
--- trunk/buildroot/toolchain/Config.in.2	                        (rev 0)
+++ trunk/buildroot/toolchain/Config.in.2	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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

Added: trunk/buildroot/toolchain/external-toolchain/Config.in
===================================================================
--- trunk/buildroot/toolchain/external-toolchain/Config.in	                        (rev 0)
+++ trunk/buildroot/toolchain/external-toolchain/Config.in	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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

Added: trunk/buildroot/toolchain/external-toolchain/ext-tool.mk
===================================================================
--- trunk/buildroot/toolchain/external-toolchain/ext-tool.mk	                        (rev 0)
+++ trunk/buildroot/toolchain/external-toolchain/ext-tool.mk	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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

Added: trunk/buildroot/toolchain/gdb/Config.in.2
===================================================================
--- trunk/buildroot/toolchain/gdb/Config.in.2	                        (rev 0)
+++ trunk/buildroot/toolchain/gdb/Config.in.2	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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

Modified: trunk/buildroot/toolchain/uClibc/uclibc.mk
===================================================================
--- trunk/buildroot/toolchain/uClibc/uclibc.mk	2007-02-06 18:17:31 UTC (rev 17799)
+++ trunk/buildroot/toolchain/uClibc/uclibc.mk	2007-02-06 18:19:38 UTC (rev 17800)
@@ -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-dirclean:
 	rm -rf $(TARGET_DIR)/usr/include
 
+endif

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc...
  2007-02-06 18:19 [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc sjhill at uclibc.org
@ 2007-02-06 18:33 ` Bernhard Fischer
  2007-02-19 16:08 ` [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc - buildroot build with ext toolchain fails MikeW
  1 sibling, 0 replies; 3+ messages in thread
From: Bernhard Fischer @ 2007-02-06 18:33 UTC (permalink / raw)
  To: buildroot

On Tue, Feb 06, 2007 at 10:19:38AM -0800, sjhill at uclibc.org wrote:
>Author: sjhill
>Date: 2007-02-06 10:19:38 -0800 (Tue, 06 Feb 2007)
>New Revision: 17800


>Modified: trunk/buildroot/target/Makefile.in
>===================================================================
>--- trunk/buildroot/target/Makefile.in	2007-02-06 18:17:31 UTC (rev 17799)
>+++ trunk/buildroot/target/Makefile.in	2007-02-06 18:19:38 UTC (rev 17800)
>@@ -7,4 +7,7 @@
> # and finally build the filesystems/tarballs
> include target/*/*.mk
> # kernel rules
>+ifeq ($(BR2_PACKAGE_LINUX),y)
>+TARGETS+=linux26
>+endif
> include target/linux*.mk
>
>Modified: trunk/buildroot/target/device/Makefile.in
>===================================================================
>--- trunk/buildroot/target/device/Makefile.in	2007-02-06 18:17:31 UTC (rev 17799)
>+++ trunk/buildroot/target/device/Makefile.in	2007-02-06 18:19:38 UTC (rev 17800)
>@@ -1,6 +1,3 @@
> TARGET_DEVICE_DEPMOD:=target/device/x86/depmod.pl
> 
> -include target/device/*/Makefile.in
>-ifeq ($(BR2_PACKAGE_LINUX),y)
>-TARGETS+=linux26
>-endif

What do the above two hunks do? Why were they needed?
Building a 2.6 kernel worked flawlessly even before that patch, for any
arch and for any device.
Please elaborate.

>Added: trunk/buildroot/toolchain/external-toolchain/ext-tool.mk
>===================================================================
>--- trunk/buildroot/toolchain/external-toolchain/ext-tool.mk	                        (rev 0)
>+++ trunk/buildroot/toolchain/external-toolchain/ext-tool.mk	2007-02-06 18:19:38 UTC (rev 17800)
>@@ -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}\$$,,"`;		\

That -print-file-name is a gcc-ism. Not every external toolchain uses
gcc. Please fix this.

>+												\
>+	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)							\

I don't think that this is portable.
case "$${STRIP}" in ;
0|n|no) ;; 
*) $(TARGET_CROSS)strip "$(TARGET_DIR)$${DST}/$${LIB}" ;;
esac

should be more portable

>+					;;							\
>+				(*)								\
>+					$(TARGET_CROSS)strip "$(TARGET_DIR)$${DST}/$${LIB}";		\
>+					;;							\
>+				esac;								\
>+			else									\
>+				exit -1;							\
>+			fi;									\
>+			LIB="`readlink $${LIB_DIR}/$${LIB}`";					\
>+		done;										\
>+	done;											\

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc - buildroot build with ext toolchain fails
  2007-02-06 18:19 [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc sjhill at uclibc.org
  2007-02-06 18:33 ` Bernhard Fischer
@ 2007-02-19 16:08 ` MikeW
  1 sibling, 0 replies; 3+ messages in thread
From: MikeW @ 2007-02-19 16:08 UTC (permalink / raw)
  To: buildroot

 <sjhill@...> writes:

> 
> Author: sjhill
> Date: 2007-02-06 10:19:38 -0800 (Tue, 06 Feb 2007)
> New Revision: 17800
> 
> Log:
> Support building using an external toolchain. Questions to the mailing list
and all other comments to <biteme@...>.

sjhill,

Question:
....
from /home/fred/buildroot/build_arm_nofpu/busybox-1.2.2.1/include/busybox.h:12,
                 from
/home/fred/buildroot/build_arm_nofpu/busybox-1.2.2.1/applets/applets.c:15:
/opt/toolchain/arm/v5t_le/target/usr/include/sys/param.h:24:25: linux/param.h:
No such file or directory
make[2]: ***
[/home/fred/buildroot/build_arm_nofpu/busybox-1.2.2.1/applets/applets.o] Error 1

Is something missing an Include path somewhere ?

Or is it a case of this:
http://thread.gmane.org/gmane.comp.lib.uclibc.buildroot/1932 ,
if so, could there be a generic 'external toolchain' fix, or would each
pkg need makefiles modding ...

Thx,
MikeW

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-02-19 16:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-06 18:19 [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc sjhill at uclibc.org
2007-02-06 18:33 ` Bernhard Fischer
2007-02-19 16:08 ` [Buildroot] svn commit: trunk/buildroot: package target target/device toolchain etc - buildroot build with ext toolchain fails MikeW

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.