Age | Commit message (Collapse) | Author |
|
|
|
were including libc-lock.h which had a bunch of weak pragmas. Also,
uClibc supplied a number of no-op weak thread functions even though
many weren't needed. This combined result was that sometimes the
functional versions of thread functions in pthread would not override
the weaks in libc.
While fixing this, I also prepended double-underscore to all necessary
weak thread funcs in uClibc, and removed all unused weaks.
I did a test build, but haven't tested this since these changes are
a backport from my working tree. I did test the changes there and
no longer need to explicitly add -lpthread in the perl build for
perl to pass its thread self tests.
|
|
|
|
|
|
cause gethostbyaddr_r to keep looping allocating more and more
memory each time till alloca finally caused a segfault. Ugh.
This fixes that as well...
-Erik
|
|
rm.patch:
* Define $(RM) as rm -f in Rules.mak and test/Rules.mak
(this is the same definition as gmake uses by default).
* Change all occurrences of rm and rm -f into $(RM).
|
|
I've created a patch for adding dn_expand() to uClibc 0.9.21.
dn_expand() is used by at least ipsec-tools and also openldap I think.
|
|
I found inappropriate data types are used in some places in networking
codes.
* tcp_seq is 32bit (u_long -> u_int32_t)
* in_addt_t should be used for internet address (unsigned long -> in_addr_t)
* socklen_t should be used for accept()
This is a patch against uclibc-0.9.21 (can be applied for current
CVS). 64bit platforms (sizeof(int)!=sizeof(long)) will need this. I
believe this patch does not harm any 32bit platforms.
|
|
|
|
per UNIX Network Programming, Volume 1, second edition:
An undocumented feature of inet_aton is that if addrptr is
a null pointer, the function still performs it validation
of the input string, but does not store the result.
|
|
Should be standards compliant and with several optional features,
including support for hexadecimal float notation, locale awareness,
glibc-like locale-specific digit grouping with the `'' flag, and
positional arg support. I tested it pretty well (finding several
bugs in glibc's scanf in the process), but it is brand new so be
aware.
The *wprintf functions now support floating point output. Also, a
couple of bugs were squashed. Finally, %a/%A conversions are
now implemented.
Implement the glibc xlocale interface for thread-specific locale
support. Also add the various *_l(args, locale_t loc_arg) funcs.
NOTE!!! setlocale() is NOT threadsafe! NOTE!!!
The strto{floating point} conversion functions are now locale aware.
The also now support hexadecimal floating point notation.
Add the wcsto{floating point} conversion functions.
Fix a bug in mktime() related to dst. Note that unlike glibc's mktime,
uClibc's version always normalizes the struct tm before attempting
to determine the correct dst setting if tm_isdst == -1 on entry.
Add a stub version of the libintl functions. (untested)
Fixed a known memory leak in setlocale() related to the collation data.
Add lots of new config options (which Erik agreed to sort out :-),
including finally exposing some of the stripped down stdio configs.
Be careful with those though, as they haven't been tested in a
long time.
(temporary) GOTCHAs...
The ctype functions are currently incorrect for 8-bit locales. They
will be fixed shortly.
The ctype functions are now table-based, resulting in larger staticly
linked binaries. I'll be adding an option to use the old approach
in the stub locale configuration.
|
|
and getprotobynumber_r
|
|
with getaddrinfo().
|
|
With glibc if you do a res_init() that forces a reread of the nameservers file,
but in uClibc the res_init will not force a reread if it has already read the
file because then the nameservers value is greater than 0.
So res_init must call close_nameservers() before calling open_nameservers().
|
|
|
|
licensing to libc/inet/ether_addr.c
|
|
__decode_dotted() does not count the null terminating byte of
a hostname in the DNS response. This causes lookups to fail
if the DNS response doesn't compress domain names in the
message.
|
|
|
|
|
|
-Erik
|
|
|
|
|
|
things to the lower 16 bits of 'id'.
|
|
been working on a new config system on and off for about 6 months
now, but I've never been fully satisfied. Well, I'm finally am
happy with the new config system, so here it is. This completely
removes the old uClibc configuration system, and replaces it with
an entirely new system based on LinuxKernelConf, from
http://www.xs4all.nl/~zippel/lc/
As it turns out, Linus has just merged LinuxKernelConf into Linux
2.5.45, so it looks like I made the right choice.
I have thus far updated only x86. I'll be updating the other
architectures shortly.
-Erik
|
|
With gcc, sizeof on a sized array argument to a function returns 4, not
16 as was expected in this code. This caused inet_ntoa to overwrite
whatever came before the buffer in the BSS by up to 12 bytes.
|
|
compile ("worst standard ever!")
-Erik
|
|
allocation accordingly. This fixes the segfault in the Python 2.2.1
socket test.
|
|
|
|
|
|
-Erik
|
|
-Erik
|
|
storage....
-Erik
|
|
if this is serious enough to warrent 0.9.14?
-Erik
|
|
|
|
-Erik
|
|
reason for 64bit stuff just to check perms.
-Erik
|
|
|
|
Overflow In XDR Library" http://www.cert.org/advisories/CA-2002-25.html
Patch from Solar Designer <solar@openwall.com>.
|
|
-Erik
|
|
stuff needed for NFS mounts, rsh, and similar.
-Erik
|
|
...inet_pton breaks since tolower is implemented as
a macro and its argument is evaluated more than once:
while ((ch = tolower (*src++)) != '\0') {
So I fixed it by just undefining tolower() so we use the
function version, not the macro.
-Erik
|
|
lock while sending packets out onto the wire.
-Erik
|
|
-Erik
|
|
indicate it is (alledgedly) private.
-Erik
|
|
by fixing prototypes. Fix global stuff so it should behave itself
properly now,
-Erik
|
|
connect_dns() and simplify IPV6 support by reducing the number of
ifdefs sprinkled about.
|
|
when adding some locking code.
-Erik
|
|
-Erik
|
|
|
|
-Erik
|