summaryrefslogtreecommitdiff
path: root/libc
AgeCommit message (Collapse)Author
2012-04-26llseek: support __NR_llseek syscallMark Salter
Older kernels use __NR__llseek for a 64-bit lseek syscall. Newer kernels use __NR_llseek. This patch fixes the implementation of lseek64 to use the __NR_llseek syscall if it exists. Signed-off-by: Mark Salter <msalter@redhat.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-26getpgrp: fix fallback handlingMark Salter
The test for generating a stub for getpgrp was wrong and would result in duplicate symbols when building without __NR_getpgrp, but with __NR_getpgid and __NR_getpid. A closer look at the getpgrp implementation using getpgid showed that getpid was being called to pass the current pid to getpgid. This is unnecessary because passing 0 to getpgid returns the pgid of the current process. This patch cleans up the getpgrp implementation and the stub test. Signed-off-by: Mark Salter <msalter@redhat.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-26arm: use PATH_MEM in ioperm()Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-26mmap64: Use correct type for offset parameterMike Frysinger
Some arches check the size in INLINE_SYSCALL() and barf if it's too big (i.e. a 64bit value getting truncated to 32bit). Satisfy error-check on ppc32. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-25atomic.h: handle new mips R10K errataBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-18sysconf: use getrlimit to determine ARG_MAXBernhard Reutner-Fischer
getrlimit previously was only called for NPTL (why?), fix that to be used everywhere. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17locale: avoid segfault freelocale()Bernhard Reutner-Fischer
PR 4964 Eric Nadler writes: It looks to me like the base structure is not fully initialized with 0 (only a subset of the structure is initialized). This later results in a free of base->collate.index2weight in _locale_set_l. This free tries to free uninitialized memory and segfaults. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17wchar: Fix BOM emitting in iconv_open()Ed W
Fix incorrect output of BOM when converting charactersets by name. Only affective when iconv/locale enabled. Signed-off-by: Ed Wildgoose <lists@wildgooses.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17ipc: eventually use stat64 in ftok()Bernhard Reutner-Fischer
PR 4201 ftok() always used 32bit stat Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17resolv: tiny shrinkage in /etc/hosts handlingBernhard Reutner-Fischer
-4b Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17resolv: remove unused variablesBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17resolv: Fix /etc/hosts for more than MAXALIASES aliasesBernhard Reutner-Fischer
PR networking/4916 Reserve space for the terminating 0 alias and zero out the scratch-buffer so the last entry of the alias list is empty. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17parse_config: tweak indentationBernhard Reutner-Fischer
and shuffle tokens memsetting around. No obj-code changes. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17getaddrinfo(): avoid call to __check_pf() when not neededAlexander Komyagin
__check_pf() function is called from getaddrinfo() and it calls getifaddrs(), which is too much overhead especially if RSBAC-Net is enabled. So with this patch __check_pf() is being called only when AI_ADDRCONFIG hint flag is specified - just when we really need that check. Signed-off-by: Alexander Komyagin <komyagin@altell.ru> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-17inet: adjust handling of cacnonname in getaddrinfoEd W
Posix says that canonname should use the text representation of an IP address when a numerical nodename given See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/getaddrinfo.html Signed-off-by: Ed Wildgoose <lists@wildgooses.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-11mmap64: use INLINE_SYSCALL() helperMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-11mmap64: include stdint.h for uint64_tMike Frysinger
Some targets include this implicitly, but pull it in explicitly for those which don't to fix building for them. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-10mmap64: always use unsigned 64bit offsetsMike Frysinger
The current code will sometimes cast the offset to an unsigned long. On 32bit systems, that doesn't make much sense since we always know that the off64_t type is 64bits. So drop the ifdef logic, cast it to an unsigned 64bit value, and then do the shift. If the system is 32bits, and the address is still too large, then there's really nothing we could do about it anyways, so the extra ifdef logic wasn't helping. URL: https://bugs.busybox.net/show_bug.cgi?id=3853 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08alpha: trim crt code to fix build errorsMike Frysinger
Otherwise we get: /tmp/cc14nHjG.s: Assembler messages: /tmp/cc14nHjG.s: Error: .size expression for _init does not evaluate to a constant /tmp/cc14nHjG.s: Error: .size expression for _fini does not evaluate to a constant Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08signalfd.h: Use new "bits/" scheme for arch-specific flagsKevin Cernekee
glibc has split off the arch-specific flag definitions (like SFD_NONBLOCK) into <arch>/bits/signalfd.h, so that there are no longer multiple redundant copies of the entire header file. We will adopt the same scheme in uClibc. Special cases are included for: alpha mips sparc hppa was omitted because it has not been updated in glibc. All others use the common definition. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08timerfd.h: Use new "bits/" scheme for arch-specific flagsKevin Cernekee
glibc has split off the arch-specific flag definitions (like TFD_NONBLOCK) into <arch>/bits/timerfd.h, so that there are no longer multiple redundant copies of the entire header file. We will adopt the same scheme in uClibc. Special cases are included for: alpha mips sparc hppa was omitted because it has not been updated in glibc. All others use the common definition. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08inotify.h: Use new "bits/" scheme for arch-specific flagsKevin Cernekee
glibc has split off the arch-specific flag definitions (like IN_NONBLOCK) into <arch>/bits/inotify.h, so that there are no longer multiple redundant copies of the entire header file. We will adopt the same scheme in uClibc. Special cases are included for: alpha mips sparc hppa was omitted because it has not been updated in glibc. All others use the common definition. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08inotify_rm_watch: Change second argument to intKevin Cernekee
2009-01-30 Ulrich Drepper <drepper@redhat.com> [BZ #7040] * sysdeps/unix/sysv/linux/sys/inotify.h: Second parameter of inotify_rm_watch should have type int. This change allows us to copy inotify.h verbatim from glibc into uClibc. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08regex: silence set-but-unused warningsMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-08bfin: set an invalid insn for abortMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-04stubs: Disregard LFSBernhard Reutner-Fischer
Fixes handling of e.g. splice Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-02fchmodat: fix handling of flagsMike Frysinger
The Linux syscall takes 3 args, not 4. We have to process flags in userspace ourselves. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-28stdio: Fix char signedness in _load_inttype()Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-03-26arm: disable ioperm/iopl stubsMike Frysinger
ARM always provides its own userspace funcs for ioperm/iopl. They've never had syscalls. So disable the stubs on ARM to avoid multiple definition errors. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-26Revert "Fix redefinition of ioperm and iopl in stubs.c and ↵Mike Frysinger
arm/{ioperm.c,iopl.c}" This reverts commit 3bcd031f97d61a8f732d865a0f4248aed2d191ab. The arm code is supposed to provide its own userspace ioperm/iopl functions. They've never had system calls for these funcs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-26time.c: Readability improvements - no code changesDenys Vlasenko
Pulled assignments out of ifs, added whitespace around operation symbols. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-26stubs: unified from futureBernhard Reutner-Fischer
Future branch extends stubs with ret_enosys_stub. Resolve conflicts, and use superset of future and current master. Adjust posix_fadvise* accordingly. Upon future merge, pick this master version as the final state. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-03-26Fix redefinition of ioperm and iopl in stubs.c and arm/{ioperm.c,iopl.c}Jason Woodward
This fixes the following link failure: LD libuClibc-0.9.33.so libc/libc_so.a(stubs.os): In function `sync_file_range': stubs.c:(.text+0x0): multiple definition of `ioperm' libc/libc_so.a(ioperm.os):ioperm.c:(.text+0x260): first defined here libc/libc_so.a(stubs.os): In function `sync_file_range': stubs.c:(.text+0x0): multiple definition of `iopl' libc/libc_so.a(iopl.os):iopl.c:(.text+0x0): first defined here collect2: ld returned 1 exit status make[1]: *** [lib/libc.so] Error 1 Signed-off-by: Jason Woodward <jason.woodward@timesys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-03-26inet:rpc: fix build in !NPTL caseCarmelo Amoroso
__libc_once is not available / needed when multithreading support is not enabled, so authnone_create() calls authnone_create_once() directly. When LT.{old,new} is used instead of NPTL, it needs to explicitly include <bits/libc-lock.h> to get __libc_once to be visible. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2012-03-25stdio: prevent retries on fclose/fflush after write errorsDenys Vlasenko
Some test results: The longer patch posted at Sun 14:46:24 +0100 made my target system unbootable. I did not attempt to troubleshoot it, as we are focusing our efforts on the shorter patch now. The shorter patch posted at Mon 01:50:27 +0100 is a good start, but it didn't completely fix the problem for me. I am posting an updated version with a few changes at the end of this message; the patched uClibc 0.9.32.1 tree passes both of my test cases. My changes: 1) Need to break out of the loop on "hard" errors. Otherwise the library call never returns: open("/dev/null", O_RDONLY) = 4 dup2(4, 1) = 1 write(1, "hello world\n", 12) = -1 EBADF (Bad file descriptor) write(1, "hello world\n", 12) = -1 EBADF (Bad file descriptor) write(1, "hello world\n", 12) = -1 EBADF (Bad file descriptor) write(1, "hello world\n", 12) = -1 EBADF (Bad file descriptor) ... 2) Move all of the error handling logic back into the "else" clause. In particular, I believe we do not want to be checking errno unless __WRITE() had indicated a failure, since the value may be undefined: if (errno == EINTR || errno == EAGAIN /* do we have other "soft" errors? */ ) { 3) Whitespace/indentation consistency. -- 8< -- From: Denys Vlasenko <vda.linux@googlemail.com> Currently, uclibc retains buffered data on stdio write errors, and subsequent fclose and fflush will try to write it out again (in most cases, in vain). Which results in something like this: On Wednesday 26 January 2011 13:21, Baruch Siach wrote: > Hi busybox list, > > I'm running the following command under strace (thanks Rob): > > echo 56 > /sys/class/gpio/export > > and I see the following output: > > write(1, "56\n", 3) = -1 EBUSY (Device or resource busy) > write(1, "5", 1) = 1 > > The first EBUSY is OK, since GPIO 56 is already requested. But the second > write() attempt seems strange, and leads to an unwanted outcome. GPIO 5 gets > exported. This patch prevents that. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-25microblaze: add sys/user.hSteve Bennett
A microblaze-specific sys/user.h is needed for (e.g.) strace, so use this version from glibc. Signed-off-by: Steve Bennett <steveb@workware.net.au> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-11__stdio_WRITE: make code more readable. No code changesDenys Vlasenko
Pulled assignments out of ifs. do {...} while (1); is a weird method of writing "loop forever", thus rewrote it. No code changes: objdump output is the same. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-13arm: Do not use 'sed -r' to calculate IS_EABIKhem Raj
-r is not available on BSD sed so to keep compatibility avoid using it. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-02-07inet:rpc: fix authnone_marshal in multithreading contextCarmelo Amoroso
This is a port of glibc's fix by Zack Weinberg as reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=142312, and discussed in http://sourceware.org/ml/libc-alpha/2002-04/msg00069.html and following. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2012-02-05lstat/stat/fstat: Use 64bit version of syscall if availableKhem Raj
This is needed for stat'ing loop devices > 255 since otherwise kernel returns EOVERFLOW becasue it needs st_rdev/st_dev to be larger than 16bits but in kernel it uses __old_kernel_stat for stat syscall which has st_rdev/st_dev as unsigned short Add a testcase Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-02-05Declare __err and pass it to INTERNAL_SYSCALL_NCS so subsequent macros can ↵Khem Raj
use it Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-01-29tmpnam, tempnam are obsolete in SUSV4Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-29handle signal-OBXSI.SUSv4.symsBernhard Reutner-Fischer
A couple of sig functions are obsolete in SUSv4. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-28*: if !HAS_THREADS strong alias sigactionBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-28buildsys: fixup sigaction handlingBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-27libc_arm: avoid multiple version of __aeabi_unwind_cpp_pr dummy codeCarmelo Amoroso
Do not pollute libraries with its own implementation of __aeabi_unwind_cpp_pr1 code. Just add it to uclibc_nonshared.a archive and share it. This fixes build issue with static linking of application due to multiple symbol definition in libgcc_eh-a and libpthread.a or librt.a Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2012-01-26*: silence some warningsBernhard Reutner-Fischer
warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-26syscall: flag ia64 syscall error path as unlikelyBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-26arm: tweak commentBernhard Reutner-Fischer
harmless copy'n paste error Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-23libc: fix signal handling in system()Richard Braun
When built without NPTL support (or for a sparc target), the system() function doesn't conform to its specification. Namely, it uses signal() to install/save/restore signal handlers, which may break applications using custom handlers installed with sigaction(). In addition, it resets the SIGCHLD handler to SIG_DFL instead of blocking the signal, which may result in "lost" signals if a custom handler was installed. Fix system() by replacing uses of signal() with appropriate calls to sigaction() and sigprocmask(). Signed-off-by: Richard Braun <rbraun@sceen.net> Signed-off-by: Mike Frysinger <vapier@gentoo.org>