From f565ddffa014221775ba78bc66a84adbd5bc48a7 Mon Sep 17 00:00:00 2001 From: Abdoulaye Walsimou Gaye Date: Sun, 13 Jun 2010 16:13:11 +0200 Subject: Toolchain: uClibc: fix download target and update uclibc.kconfig to support NPTL Signed-off-by: Abdoulaye Walsimou Gaye --- kconfig/uclibc-kconfigs/uclibc.kconfig | 95 ++++++++++++++++++++++++++++++---- mk/uclibc.mk | 3 +- 2 files changed, 88 insertions(+), 10 deletions(-) diff --git a/kconfig/uclibc-kconfigs/uclibc.kconfig b/kconfig/uclibc-kconfigs/uclibc.kconfig index 9a2ace2..7cdf727 100644 --- a/kconfig/uclibc-kconfigs/uclibc.kconfig +++ b/kconfig/uclibc-kconfigs/uclibc.kconfig @@ -44,7 +44,7 @@ choice depends on EMBTK_OLDPACKAGES config EMBTK_UCLIBC_VERSION_GIT bool "Use a branch of uClibc git repository" - select EMBTK_UCLIBC_VERSION_SERIES_0_9_31_X + select EMBTK_UCLIBC_VERSION_SERIES_1_0_X help see http://git.uclibc.org/uClibc endchoice @@ -55,12 +55,16 @@ config EMBTK_UCLIBC_VERSION_STRING default "0.9.30" if EMBTK_UCLIBC_VERSION_0_9_30 default "git" if EMBTK_UCLIBC_VERSION_GIT -config EMBTK_UCLIBC_VERSION_SERIES_0_9_30_X +config EMBTK_UCLIBC_VERSION_SERIES_1_0_X bool + select EMBTK_UCLIBC_VERSION_SERIES_0_9_31_X config EMBTK_UCLIBC_VERSION_SERIES_0_9_31_X bool +config EMBTK_UCLIBC_VERSION_SERIES_0_9_30_X + bool + config EMBTK_UCLIBC_GIT_BRANCH string "Branch to use" default "master" @@ -495,6 +499,19 @@ config KEMBTK_UCLIBC_LDSO_CACHE_SUPPORT After updating this file, it is necessary to run 'ldconfig' to update the /etc/ld.so.cache shared library loader cache file. +config KEMBTK_UCLIBC_LDSO_PRELOAD_ENV_SUPPORT + bool "Enable library loader LD_PRELOAD environment" + depends on KEMBTK_UCLIBC_HAVE_SHARED + depends on EMBTK_UCLIBC_VERSION_SERIES_1_0_X + default y + help + Enable this to make use of LD_PRELOAD environment variable. + A whitespace-separated list of additional, user-specified, ELF shared + libraries to be loaded before all others. This can be used to + selectively override functions in other shared libraries. For + set-user-ID/set-group-ID ELF binaries, only libraries in the standard + search directories that are also set-user-ID will be loaded. + config KEMBTK_UCLIBC_LDSO_PRELOAD_FILE_SUPPORT bool "Enable library loader preload file (ld.so.preload)" depends on KEMBTK_UCLIBC_HAVE_SHARED @@ -634,6 +651,31 @@ config KEMBTK_UCLIBC_LINUXTHREADS_OLD is based on the latest code from glibc, so it may be the only choice for the newer ports (like alpha/amd64/64bit arches and hppa). + +config KEMBTK_UCLIBC_UCLIBC_HAS_THREADS_NATIVE + bool "Native POSIX Threading (NPTL)" + select KEMBTK_UCLIBC_UCLIBC_HAS_TLS + select KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_FUTEXES + # NPTL local: + select KEMBTK_UCLIBC_EXTRA_WARNINGS + depends on EMBTK_UCLIBC_VERSION_SERIES_1_0_X + help + If you want to compile uClibc with NPTL support, then answer Y. + + IMPORTANT NOTE! NPTL requires a Linux 2.6 kernel, binutils + at least version 2.16 and GCC with at least version 4.1.0. NPTL + will not work with older versions of any above sources. If you + ignore any of these guidelines, you do so at your own risk. Do + not ask for help on any of the development mailing lists. + + !!!! WARNING !!!! BIG FAT WARNING !!!! REALLY BIG FAT WARNING !!!! + + This is experimental code and at times it may not even build and + even if it does it might decide to do random damage. This code is + potentially hazardous to your health and sanity. It will remain + that way until further notice at which point this notice will + disappear. Thank you for your support and for not smoking. + config KEMBTK_UCLIBC_HAS_NO_THREADS bool "none" help @@ -643,13 +685,37 @@ endchoice config KEMBTK_UCLIBC_UCLIBC_HAS_THREADS bool + default y if !KEMBTK_UCLIBC_HAS_NO_THREADS + default n if KEMBTK_UCLIBC_HAS_NO_THREADS + +config KEMBTK_UCLIBC_UCLIBC_HAS_TLS + bool "Thread-Local Storage" + depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS_NATIVE + depends on EMBTK_UCLIBC_VERSION_SERIES_1_0_X + default n help - If you want to compile uClibc with pthread support, - then answer Y. - This will increase the size of uClibc by adding a bunch of - locking to critical data structures, and adding extra code to - ensure that functions are properly reentrant. - If your applications require pthreads, answer Y. + If you want to enable TLS support then answer Y. + This is fast an efficient way to store per-thread local data + which is not on stack. It needs __thread support enabled in + gcc. + +config KEMBTK_UCLIBC_PTHREADS_DEBUG_SUPPORT + bool "Build pthreads debugging support" + default n + depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS + depends on EMBTK_UCLIBC_VERSION_SERIES_1_0_X + help + Say Y here if you wish to be able to debug applications that use + uClibc's pthreads library. By enabling this option, a library + named libthread_db will be built. This library will be dlopen()'d + by gdb and will allow gdb to debug the threads in your application. + + IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library, + you must compile gdb with uClibc in order for pthread debugging to + work properly. + + If you are doing development and want to debug applications using + uClibc's pthread library, answer Y. Otherwise, answer N. config KEMBTK_UCLIBC_LINUXTHREADS_NEW bool @@ -1005,8 +1071,19 @@ config KEMBTK_UCLIBC_UCLIBC_TZ_FILE_PATH default "/etc/TZ" help This is the path to the 'TZ' file. - Most people will use the default of '/etc/TZ'. + +config KEMBTK_UCLIBC_UCLIBC_FALLBACK_TO_ETC_LOCALTIME + bool "Use /etc/localtime as a fallback" + depends on KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE + depends on EMBTK_UCLIBC_VERSION_SERIES_1_0_X + default y + help + Answer Y to try to use /etc/localtime file. + On glibc systems this file (if it is in TZif2 format) + contains timezone string at the end. + Most people will answer Y. + comment "----------------" comment "Advanced Library Settings" comment "----------------" diff --git a/mk/uclibc.mk b/mk/uclibc.mk index 8377716..35dcf74 100755 --- a/mk/uclibc.mk +++ b/mk/uclibc.mk @@ -67,6 +67,7 @@ ifneq ($(UCLIBC_GIT_BRANCH),master) git checkout -b $(UCLIBC_GIT_BRANCH) origin/$(UCLIBC_GIT_BRANCH) endif @cd $(EMBTK_ROOT)/src/uClibc-git; \ + git pull; \ git checkout $(UCLIBC_GIT_REVISION); \ cd ..; \ tar cjvf $(UCLIBC_PACKAGE) uClibc-$(UCLIBC_VERSION); \ @@ -94,7 +95,7 @@ endif $(UCLIBC_BUILD_DIR)/.configured: $(call EMBTK_GENERIC_MESSAGE,"Configuring \ uClibc-$(UCLIBC_VERSION) ...") - grep "CONFIG_KEMBTK_UCLIBC_" $(EMBTK_ROOT)/.config | \ + $(Q)grep "CONFIG_KEMBTK_UCLIBC_" $(EMBTK_ROOT)/.config | \ sed -e 's/CONFIG_KEMBTK_UCLIBC_*//g' \ > $(UCLIBC_BUILD_DIR)/.config -- cgit v1.2.3