summaryrefslogtreecommitdiff
path: root/libc
AgeCommit message (Collapse)Author
2010-09-15libc: Fix cancellation handling in some C functionsSalvatore Cro
According to POSIX.1-2008 standard, the following syscalls shall be cancellation points : waitid, sleep, fdatasync, ppoll. Further, if generic syscall is not available and stubs are configured, provide the stub implementation for function. Signed-off-by: Salvatore Cro <salvatore.cro@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-09-14misc: utmpx based logging supportSalvatore Cro
misc: Added support for accessing user accounting database based on utmpx structure. Signed-off-by: Salvatore Cro <salvatore.cro@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-09-06misc: Fix build error about missing PAGE_SIZEAbdoulaye Walsimou Gaye
This patch fixes the following build error: CC libc/misc/internals/__h_errno_location.os CC libc/misc/internals/parse_config.os libc/misc/internals/parse_config.c: In function 'bb_get_chunk_with_continuation': libc/misc/internals/parse_config.c:77: error: 'PAGE_SIZE' undeclared (first use in this function) libc/misc/internals/parse_config.c:77: error: (Each undeclared identifier is reported only once libc/misc/internals/parse_config.c:77: error: for each function it appears in.) make[2]: *** [libc/misc/internals/parse_config.os] Error 1 Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-08-31libc: Provide both getpgid and __getpgid symbolsCarmelo Amoroso
Indeed unistd.h header does export '__getpgid' by default, while uClibc provide only 'getpgid' implementation. The 'getpgid' symbol is exported by standard header if __USE_XOPEN_EXTENDED is defined. This patch alignes uClibc implementation with standard header (matching with glibc behaviour). Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-08-28Fix resolver broken in NPTL buildTimo Teräs
The combination of commit aab4df0fb51660300559f5f29290709db2f7bfee resolv.c: add support for per thread res_state commit cca45baf8353d1e338d232f5bdb2d1d6b357f1da /etc/resolv.conf: support "timeout:n" and "attempts:n" options .. and NPTL results in broken resolver in very annoying ways. Now, it seems that most of the uclibc code does not work well if res_state is TLS variable. Technically, this is the correct thing to do since this gives proper per-thread resolving behavior, and it also makes the config options overridable per thread. This probably what apps expect as glibc does it too. But alas, most places use _res to sync up static global variables which results in breakage. It gets more or less randomly selected which threads options get applied. Also in case of multiple servers it looks like the retry logic is shared between all threads, e.g. two concurrent resolutions can make other resolvers skip nameservers due to shared "last_ns_num". And finally the timeout/attempts commit breaks the accumulated stuff horribly. What happens is: 1. multithreaded application startups, initializes resolver, resolves things just fine 2. resolv.conf gets changed, application calls res_init after res_init uclibc will call res_sync on all resolver functions to refresh globals from the TLS variable _res 3. res_init was called only in one thread, so other thread's _res contains all zeroes (yes, this is correct app usage: res_init should be called only from one thread) 4. threads not calling res_init get broken resolver due to timeout being set to zero Now, one proper solution would be to: 1. make __open_nameservers return the configuration options 2. pass the config options struct to res_sync_func so it can do the proper overrides from per-thread _res 3. remove the related globals and use locally config options from __open_nameservers But technically, the correct thing (as in glibc does this) is: - res_init increases global "res_init timestamp" - use _res (or pointer within there) for resolver retries etc. get proper per-thread behavior - resolvers functions call "maybe_init" which reinitialize the TLS'ed resolver state (e.g. reload resolv.conf) if their res_init timestamp is out dated As an immediate emergency kludge fix, the following might do: resolv: fix options handling for TLS _res If _res is in TLS (NPTL), it might not get initialized. Assume zeroes mean default values. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-26_uintmaxtostr: fix indentation (spaces->tabs), no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-08-19resolv: simplify MAXALIAS handlingBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-19getserv: fix reading services lines w > 80 charsBernhard Reutner-Fischer
e.g. getservbyname() Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-06config parser: fix memory corruptionTimo Teräs
fgets will happily write over allocated area limits. Adjusted the buffer size according to how much is already read. Also increase the maximum default line length, as 80 is slightly small. It might be better if bb_get_chunk_with_continuation would reallocate the line buffer if it was not user given. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-06nptl i686: avoid cpp problems with thunk sectionBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05resolver: switch to config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05getnet: switch to config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05getproto: switch to config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05usershell: switch to config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05switch getservice to config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05sysconf: implement _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLNBernhard Reutner-Fischer
perusing the config parser Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05add config parserBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-08-05math: isnan is a C99 featureHenning Heinold
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
2010-08-02nptl: _POSIX_IPV6 depends on UCLIBC_HAS_IPV6Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-28Immediately try next nameserver on recv() failureIngo van Lil
If there is a problem communicating with a nameserver the __dns_lookup() function will not immediately advance to the next nameserver but instead continue waiting until the timeout expires. This will cause a 30 second delay even if no nameserver is configured in resolv.conf and no DNS is running on localhost. Signed-off-by: Ingo van Lil <inguin@gmx.de> Acked-by: Roman I Khimov <khimov@altell.ru> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-27malloc: simplify MAP_UNINITIALIZE ifdef logicMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-27new helper funcs for alloca/malloc with mmu/nommuMike Frysinger
The rpc rcmd code has some ugly ifdef mazes to handle mmu/nommu differences just to select alloca or malloc. Unify those with some helper macros in a new header, and then convert the rcmd code over to it. This is all geared towards fixing the getdents helper functions which only use alloca() atm. Now that we have helper functions, convert the getdents functions over too. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Reviewed-by: Steven J. Magnani <steve@digidescorp.com>
2010-07-27remove trailing comma in enumBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-27silence warning about incompatible types with _dl_init_static_tlsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-27malloc-simple: Make calloc() return zeroed memorySteven J. Magnani
The 0.9.31 release included a change to malloc-simple to request uninitialized memory from noMMU kernels. Unfortunately, the corresponding calloc() code assumed that memory returned by malloc() was already zeroed, which leads to all kinds of nastiness. Signed-off-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-27lutimes: add lutimes supportVladimir Zapolskiy
This patch adds lutimes library call support. Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-27Fix ctime() standard compliance bugDavid A Ramos
fixes issue2209: ctime() was updated in 0.9.31 to call localtime_r() instead of localtime() to avoid using a static buffer. Unfortunately, this change replaces the static buffer (which is zeroed out on initialization) with an uninitialized local buffer. In the common case, this has no effect. However, with a sufficiently large time_t value, the value returned differs from that returned by asctime(localtime(t)), and thus violates the ANSI/ISO standard. An example input is (on a 64-bit machine): time_t t = 0x7ffffffffff6c600; Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-26daemon: drop cruft incorrectly re-introduced by nptl mergeMike Frysinger
This likes to break nommu systems. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-26bfin: pull in common/sysdep.hMike Frysinger
Fixes random build errors in linux/common/. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-26msync: skip if syscall is missingMike Frysinger
Some arches skip the msync syscall as it is useless (like nommu). So don't require it to build. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-26nommu: fix building of fork.c when stubs are disabledMike Frysinger
We scrub the fork() prototype for nommu/no stubs, so attempting to get its type isn't going to work. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-26bfin: add exec stack markings to assembly filesMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-07-21arm/crt1.S: Avoid dependency on PC+4 or PC+8Khem Raj
* fix a problem with Thumb PIE binaries, where the GOT was located incorrectly because of an offset 8 Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-15arm: Macros in sysdeps/linux/arm also needed to be changed to accept _a1 to ↵Khem Raj
__a1 renaming. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-14silence shadow warningsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-09include/param.h: Dont use ARG_MAX from kernel headersKhem Raj
* Use getrlimit for ARG_MAX in sysconf on nptl. * Define NCARGS directly instead of ARG_MAX Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-07arm: Silence warning about shadow declarationsKhem Raj
libc/inet/socketcalls.c: In function ‘__libc_recvfrom’: libc/inet/socketcalls.c:229:1: warning: declaration of ‘_sys_result’ shadows a previous local libc/inet/socketcalls.c:229:1: warning: shadowed declaration is here Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-06nptl: fix buildsysBernhard Reutner-Fischer
Now automatically picks the correct (arch and subarch specific) impls in favour of generic impls. make O=/tmp/objs PREFIX=/my/sysroot -j works now as expected (both out-of-tree as well as parallel-safe). Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-06Revert "don't make __errno_location / __h_errno_location hidden"Austin Foxley
This reverts commit 0d6ee549bc86fd330672a79d9a87d2c3825eea67. We need to find a solution that will work in shared and static libraries Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-07-05don't make __errno_location / __h_errno_location hiddenPeter Korsgaard
Closes #2089 (https://bugs.busybox.net/show_bug.cgi?id=2089) __errno_location / __h_errno_location access has to go through the PLT like malloc/free, so the linuxthread variants gets used instead when compiling with -pthread. Based on http://github.com/mat-c/uClibc/commit/328d392c54aa5dc2b8e7f398a419087de497de2b Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-07-03remove extra comma in lock macroAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-06-30more workarounds for GCC PR32219Timo Teräs
Commit 2e53dd645d5348f207cec7f8595969dc566c5a55 workarounds GCC bug when accessing _locale_init and _stdio_init. We need the same fix for __errno_location and __h_errno_location otherwise we crash calling null with static and non-threaded builds. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-06-30mips/syscall-error: Choose the correct version for setting up errno.Khem Raj
* Current function is a C protype and PSEUDO macro does not transfer syscall return parameters to correct argument registers for a C function. This causes problem with syscalls setting wrong value for errno when they encounter an error. * Fixes PR/2089 for mips/nptl Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-06-30nptl/errno: Use a separate __errno_location for libpthread.Khem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-06-29remove redundant args to do_lnBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-06-24use uniform form of C99 keywordsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-06-24libc: silence warnings about undefined cpp tokensBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-06-24fix race condition when generating linker scriptsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-06-22MIPS: Fix build error with linuxthreads.oldAbdoulaye Walsimou Gaye
This patch avoid the following build error: AS libc/sysdeps/linux/mips/vfork.os In file included from libc/sysdeps/linux/mips/vfork.S:22: ./libc/sysdeps/linux/mips/sysdep.h:41:20: error: regdef.h: No such file or directory libc/sysdeps/linux/mips/vfork.S: Assembler messages: libc/sysdeps/linux/mips/vfork.S:40: Warning: Unrecognized register name `sp' libc/sysdeps/linux/mips/vfork.S:40: Warning: Bad .frame directive libc/sysdeps/linux/mips/vfork.S:40: Error: junk at end of line, first unrecognized character is `s' libc/sysdeps/linux/mips/vfork.S:44: Error: illegal operands `dsubu sp,FRAMESZ' libc/sysdeps/linux/mips/vfork.S:45: Error: bad or irreducible absolute expression libc/sysdeps/linux/mips/vfork.S:65: Error: illegal operands `daddu sp,FRAMESZ' libc/sysdeps/linux/mips/vfork.S:69: Error: illegal operands `li a0,0x4112' libc/sysdeps/linux/mips/vfork.S:70: Error: illegal operands `move a1,sp' libc/sysdeps/linux/mips/vfork.S:73: Error: illegal operands `li v0,(5000+55)' libc/sysdeps/linux/mips/vfork.S:78: Error: illegal operands `bnez a3,.Lerror' libc/sysdeps/linux/mips/vfork.S:88: Error: illegal operands `dla t9,__syscall_error' libc/sysdeps/linux/mips/vfork.S:90: Error: illegal operands `jr t9' Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-06-17libc: define cfi_personality and cfi_lsdaBernhard Reutner-Fischer
required for proper, current subarch handling Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>