summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-08-06 22:41:22 +0000
committerEric Andersen <andersen@codepoet.org>2003-08-06 22:41:22 +0000
commitcffcfd3f2f02aa906e5bffe2b81a04b92b04f7eb (patch)
treed6dd41b43d0ad8f72902ef956638dadbd47b2e17 /docs
parent5eef5dca2c58f9998c53ae27264733b151fc3d1c (diff)
downloaduClibc-alpine-cffcfd3f2f02aa906e5bffe2b81a04b92b04f7eb.tar.bz2
uClibc-alpine-cffcfd3f2f02aa906e5bffe2b81a04b92b04f7eb.tar.xz
Begin documenting differences between uClibc and SuSv3
-Erik
Diffstat (limited to 'docs')
-rw-r--r--docs/uClibc_vs_SuSv3.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/docs/uClibc_vs_SuSv3.txt b/docs/uClibc_vs_SuSv3.txt
new file mode 100644
index 000000000..a86328a58
--- /dev/null
+++ b/docs/uClibc_vs_SuSv3.txt
@@ -0,0 +1,34 @@
+uClibc attempts to fully (and rigorously) support "The Open Group Base
+Specifications Issue 6 IEEE Std 1003.1, 2003 Edition" (aka SuSv3). However, as
+with any standard, they sometimes require things that are either impossible or
+are Completely Stupid(tm). Therefore, we cannot claim full compliance, and
+there may be some area of uClibc that differ from the requirements of this
+specification. This document attempts to list these differences and, when
+completed, will contain a full list of all relevant differences between uClibc
+and the requirements of the SuSv3.
+
+
+1) The uClibc setlocale() function is not threadsafe.
+
+ SuSv3 states that "The locale state is common to all threads
+ within a process.". But it does not explicitly mention
+ setlocale() as a function that need not be thread-safe.
+ Making setlocale() threadsafe would require an absurd amount
+ of locking (i.e. inside each and every ctype call such as
+ isalpha()). Furthermore, we consider calling setlocale()
+ from N threads concurrently while using string functions to
+ be a terribly dumb thing to do. Therefore, we have decided
+ that setlocale() shall not be threadsafe. If you are
+ multi-threaded, and you wish to change the global locale
+ state, please take care to prevent all other threads from
+ using any locale or ctype functions until the setlocale()
+ call has finished.
+
+2) Some functions required by SuSv3 are not currently implemented.
+ The function you are mostly likely to encounter is wordexp().
+ A couple of years ago, nobody used wordexp. Now some apps do.
+ One of these days, someone may provide us with a well written
+ patch to implement it...
+
+More to follow when we think of it...
+