From 15a971616c3e2f373264d0a2e4cd87aa11042737 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 31 Dec 2008 00:31:38 +0000 Subject: Merge some pre-work from branch, needed by NPTL. --- extra/Configs/Config.in | 31 ++++++++++++++++++++++++++++++- extra/scripts/gen-as-const.awk | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 extra/scripts/gen-as-const.awk (limited to 'extra') diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index ca716e106..e6ea80a42 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -403,9 +403,30 @@ config LINUXTHREADS_OLD the latest code from glibc, so it may be the only choice for the newer ports (like alpha/amd64/64bit arches and hppa). +config UCLIBC_HAS_THREADS_NATIVE + bool "Native POSIX Threading (NPTL) Support" + depends on UCLIBC_HAS_THREADS + default n + 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 LINUXTHREADS_NEW def_bool y - depends on UCLIBC_HAS_THREADS && !LINUXTHREADS_OLD + depends on UCLIBC_HAS_THREADS && !LINUXTHREADS_OLD && !UCLIBC_HAS_THREADS_NATIVE config UCLIBC_HAS_SYSLOG bool "Syslog support" @@ -1602,6 +1623,14 @@ config UCLIBC_HAS_GNU_GETOPT Most people will answer Y. +config UCLIBC_HAS_STDIO_FUTEXES + bool "Use futexes for multithreaded I/O locking" + default n + depends on UCLIBC_HAS_THREADS_NATIVE + help + If you want to compile uClibc to use futexes for low-level + I/O locking, answer Y. Otherwise, answer N. + config UCLIBC_HAS_GETOPT_LONG bool "Support getopt_long/getopt_long_only" depends on !UCLIBC_HAS_GNU_GETOPT diff --git a/extra/scripts/gen-as-const.awk b/extra/scripts/gen-as-const.awk new file mode 100644 index 000000000..f9ec31672 --- /dev/null +++ b/extra/scripts/gen-as-const.awk @@ -0,0 +1,33 @@ +# Script used in producing headers of assembly constants from C expressions. +# The input to this script looks like: +# #cpp-directive ... +# NAME1 +# NAME2 expression ... +# The output of this script is C code to be run through gcc -S and then +# massaged to extract the integer constant values of the given C expressions. +# A line giving just a name implies an expression consisting of just that name. + +BEGIN { started = 0 } + +# cpp directives go straight through. +/^#/ { print; next } + +NF >= 1 && !started { + printf "void dummy(void);\n"; + print "void dummy(void) {"; + started = 1; +} + +# Separator. +$1 == "--" { next } + +NF == 1 { sub(/^.*$/, "& &"); } + +NF > 1 { + name = $1; + sub(/^[^ ]+[ ]+/, ""); + printf "__asm__ (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" (%s));\n", + name, $0; +} + +END { if (started) print "}" } -- cgit v1.2.3