فهرست منبع

Add BR2_CROSS_TOOLCHAIN_TARGET_UTILS to allow bundling of some useful debug
apps with a deployed cross toolchain. Should probably do ltrace as well...
Also, add another compat symlink for cross gdb.

Manuel Novoa III 20 سال پیش
والد
کامیت
42c9321a15
4فایلهای تغییر یافته به همراه29 افزوده شده و 1 حذف شده
  1. 5 0
      package/strace/strace.mk
  2. 11 0
      toolchain/Config.in
  3. 8 1
      toolchain/gdb/gdb.mk
  4. 5 0
      toolchain/uClibc/uclibc.mk

+ 5 - 0
package/strace/strace.mk

@@ -49,6 +49,11 @@ $(STRACE_DIR)/strace: $(STRACE_DIR)/.configured
 $(TARGET_DIR)/usr/bin/strace: $(STRACE_DIR)/strace
 	install -c $(STRACE_DIR)/strace $(TARGET_DIR)/usr/bin/strace
 	$(STRIP) $(TARGET_DIR)/usr/bin/strace > /dev/null 2>&1
+ifeq ($(strip $(BR2_CROSS_TOOLCHAIN_TARGET_UTILS)),y)
+	mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
+	install -c $(TARGET_DIR)/usr/bin/strace \
+		$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/strace
+endif
 
 strace: uclibc $(TARGET_DIR)/usr/bin/strace 
 

+ 11 - 0
toolchain/Config.in

@@ -45,6 +45,17 @@ config BR2_TARGET_OPTIMIZATION
 	help
 	  Optimizations to use when building for the target host.
 
+config BR2_CROSS_TOOLCHAIN_TARGET_UTILS
+	string "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/.
+
 # Might be worth experimenting with for gcc 3.4.x.
 #GCC_WITH_CPU:=
 #GCC_WITH_ARCH:=

+ 8 - 1
toolchain/gdb/gdb.mk

@@ -123,6 +123,11 @@ $(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured
 	$(STRIP) $(GDB_SERVER_DIR)/gdbserver
 
 $(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver
+ifeq ($(strip $(BR2_CROSS_TOOLCHAIN_TARGET_UTILS)),y)
+	mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
+	install -c $(GDB_SERVER_DIR)/gdbserver \
+		$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/gdbserver
+endif
 	install -c $(GDB_SERVER_DIR)/gdbserver $(TARGET_DIR)/usr/bin/gdbserver
 
 gdbserver: $(TARGET_DIR)/usr/bin/gdbserver
@@ -164,8 +169,10 @@ $(GDB_CLIENT_DIR)/gdb/gdb: $(GDB_CLIENT_DIR)/.configured
 
 $(TARGET_CROSS)gdb: $(GDB_CLIENT_DIR)/gdb/gdb
 	install -c $(GDB_CLIENT_DIR)/gdb/gdb $(TARGET_CROSS)gdb
-	ln -fs ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
+	ln -snf ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
 		$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/gdb
+	ln -snf $(REAL_GNU_TARGET_NAME)-gdb \
+		$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gdb
 
 gdbclient: $(TARGET_CROSS)gdb
 

+ 5 - 0
toolchain/uClibc/uclibc.mk

@@ -126,6 +126,11 @@ $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
 $(TARGET_DIR)/usr/bin/ldd:
 	$(MAKE1) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
 		PREFIX=$(TARGET_DIR) utils install_utils
+ifeq ($(strip $(BR2_CROSS_TOOLCHAIN_TARGET_UTILS)),y)
+	mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
+	install -c $(TARGET_DIR)/usr/bin/ldd \
+		$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/ldd
+endif
 	touch -c $(TARGET_DIR)/usr/bin/ldd
 
 UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0