summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2010-06-13 16:13:11 +0200
committerAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2010-06-13 16:13:11 +0200
commitf565ddffa014221775ba78bc66a84adbd5bc48a7 (patch)
treef50f6dcc2bd5e05f4a3a4e23dd35671fbd26d397
parent4f3714e506dfd8ee0bae8e33f92445876e339428 (diff)
downloadembtoolkit-f565ddffa014221775ba78bc66a84adbd5bc48a7.tar.gz
embtoolkit-f565ddffa014221775ba78bc66a84adbd5bc48a7.tar.bz2
embtoolkit-f565ddffa014221775ba78bc66a84adbd5bc48a7.tar.xz
Toolchain: uClibc: fix download target and update uclibc.kconfig to support NPTL
Signed-off-by: Abdoulaye Walsimou Gaye <walsimou@walsimou.com>
-rw-r--r--kconfig/uclibc-kconfigs/uclibc.kconfig95
-rwxr-xr-xmk/uclibc.mk3
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