Commit 8e71cdd8 authored by Hans-Christian Egtvedt's avatar Hans-Christian Egtvedt
Browse files

uclibc: add kconfig option and make stuff for installing the uClibc test suite



This patch adds the possibility to install the uClibc test suite to the target
file system. This is useful if you need to debug or test your uClibc.

The option is defaulted to no, and is not needed for a normal running Linux
system. The test suite is installed to /root/uClibc

Signed-off-by: default avatarHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
parent 599d3243
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -83,3 +83,21 @@ config BR2_UCLIBC_PROGRAM_INVOCATION
	  program_invocation_short_name strings.  Some GNU packages
	  (like tar and coreutils) utilize these for extra useful
	  output, but in general are not required.

config BR2_UCLIBC_INSTALL_TEST_SUITE
	bool "Compile and install uClibc tests"
	default n
	select BR2_PACKAGE_MAKE
	help
	  Enabling this option will compile and install the uClibc test suite.
	  This is useful if you want to check if the uClibc library is working
	  for your architecture and/or help developing uClibc.

	  The test suite will be installed into /root/uClibc directory. To run
	  the test suite enter the /root/uClibc/test directory and type
	  "make UCLIBC_ONLY=1 CC=/bin/true check".

	  See the /root/uClibc/test/README for additional information.

	  This is not needed at all for normal builds, so you can safely say no
	  if you do not plan to dig into your C library.
+29 −4
Original line number Diff line number Diff line
@@ -549,6 +549,9 @@ endif
	touch -c $@

UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
UCLIBC_TARGETS+=uclibc-test
endif
endif

uclibc: $(cross_compiler) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
@@ -568,11 +571,11 @@ uclibc-configured: kernel-headers $(UCLIBC_DIR)/.configured

uclibc-configured-source: uclibc-source

uclibc-clean:
uclibc-clean: uclibc-test-clean
	-$(MAKE1) -C $(UCLIBC_DIR) clean
	rm -f $(UCLIBC_DIR)/.config

uclibc-dirclean:
uclibc-dirclean: uclibc-test-dirclean
	rm -rf $(UCLIBC_DIR)

uclibc-target-utils:
@@ -580,6 +583,28 @@ uclibc-target-utils:

uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)

$(UCLIBC_DIR)/test/unistd/errno:
	$(MAKE) -C $(UCLIBC_DIR)/test \
	ARCH_CFLAGS=-I$(STAGING_DIR)/include \
	UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile

$(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
	mkdir -p $(TARGET_DIR)/root/uClibc
	cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
	$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
	$(INSTALL) $(UCLIBC_DIR)/.config $(TARGET_DIR)/root/uClibc

uclibc-test: uclibc $(TARGET_DIR)/root/uClibc/test/unistd/errno

uclibc-test-source: uclibc-source

uclibc-test-clean:
	-$(MAKE) -C $(UCLIBC_DIR)/test clean
	rm -rf $(TARGET_DIR)/root/uClibc

uclibc-test-dirclean:
	rm -rf $(TARGET_DIR)/root/uClibc

#############################################################
#
# uClibc for the target just needs its header files
@@ -615,11 +640,11 @@ endif

uclibc_target: cross_compiler uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd

uclibc_target-clean:
uclibc_target-clean: uclibc-test-clean
	rm -rf $(TARGET_DIR)/usr/include \
		$(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd

uclibc_target-dirclean:
uclibc_target-dirclean: uclibc-test-dirclean
	rm -rf $(TARGET_DIR)/usr/include

endif