summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorKhem Raj <kraj@mvista.com>2008-12-31 00:31:38 +0000
committerKhem Raj <kraj@mvista.com>2008-12-31 00:31:38 +0000
commit15a971616c3e2f373264d0a2e4cd87aa11042737 (patch)
treede7759a5bfcc0548b63e7d289fd1829aba6dad48 /extra
parente422845f587db4139bd72fd3ae827ae91420855a (diff)
Merge some pre-work from branch, needed by NPTL.
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.in31
-rw-r--r--extra/scripts/gen-as-const.awk33
2 files changed, 63 insertions, 1 deletions
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 "}" }