Browse Source

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 năm trước cách đây
mục cha
commit
42c9321a15
4 tập tin đã thay đổi với 29 bổ sung1 xóa
  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