summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/mips
AgeCommit message (Collapse)Author
2012-06-15signal.h: provide prototype for __libc_sigaction and remove all othersPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-06MIPS: Use $a0 instead of $v0 for __syscall_error() argumentKevin Cernekee
$a0 is saved across _dl_runtime_resolve(); $v0 is not. Unfortunately, __syscall_error() uses $v0 for its argument, not $a0 as is the MIPS ABI standard. This means that if lazy binding was used for __syscall_error(), the errno value in $v0 could get corrupted. The problem can be easily seen in testcases where syscalls in librt fail; when librt tries to call __syscall_error() in libc, the argument gets lost and errno gets set to a bogus value: # ./tst-mqueue1 ; echo $? mq_receive on O_WRONLY mqd_t did not fail with EBADF: Unknown error 2004684208 1 # ./tst-mqueue2 ; echo $? mq_timedreceive with too small msg_len did not fail with EMSGSIZE: Unknown error 1997360560 1 # ./tst-mqueue4 ; echo $? mq_timedsend did not fail with ETIMEDOUT: Unknown error 2008747440 1 When _dl_runtime_resolve() was taken out of the equation, the same test cases passed: # LD_BIND_NOW=y ./tst-mqueue1 ; echo $? 0 # LD_BIND_NOW=y ./tst-mqueue2 ; echo $? 0 # LD_BIND_NOW=y ./tst-mqueue4 ; echo $? 0 Changing __syscall_error() to look at $a0 instead of $v0 fixed the problem. (Note that there is also a "__syscall_error.c" file which presumably uses the standard C calling conventions, but I do not think it is used on MIPS.) Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-06MIPS: Convert __syscall_error() callers to use $a0 for argumentKevin Cernekee
Some callers passed the first argument in $v0, while others used $a0. Change the callers to use $a0 consistently. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-28epoll.h: sync with glibcMike Frysinger
Since glibc has split out arch-specific stuff to bits/epoll.h, we can pull that sanity back into our tree and drop the arch ifdefs. 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-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-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-16mips/dlfcn.h: Disable RTLD_DEEPBINDKhem Raj
RTLD_DEEPBIND is not supported in uclibc Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-06-13ctor/dtor nptl: Fix init and fini function compilationKhem Raj
We need to define the rules for .S files so it gets the include paths some architectures like mips include headers Some architectures e.g. SH have their own version of pt-initfini.c so look for that first before resorting to generic version of pt-initfini.c Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-05-05Revert "*/crt?.S: remove .size directives"Bernhard Reutner-Fischer
Removing them generally was not a good idea This reverts commit 233c504cd940d9802226b6a3a092368b86978f5e.
2011-05-04*/crt?.S: remove .size directivesBernhard Reutner-Fischer
sed -i -e '/\.size[[:space:]]/d' $(grep -l "\.size" libc/sysdeps/linux/*/crt*.[sSc]) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-03-09bits/kernel_stat.h: no need for _LIBC guard, the file is not installed on targetPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2011-03-03remove ucontext.h and guard sigstack structure with SUSV4_LEGACY and ↵Peter S. Mazinger
STRICT_HEADERS Remove ucontext.h if SUSV4_LEGACY is not set and fix it's references. Guard sigstack structure with SUSV4_LEGACY and STRICT_HEADERS. Disable sigstack function prototype, it is not provided by uClibc. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2011-02-09sync bits/socket.h PF_* / AF_* values with 2.6.38-rc3Peter Korsgaard
A number of new address / protocol families have been added over the years, so sync with Linux 2.6.38-rc3, adding CAN, ISDN, Phonet, Zigbee, .. which are starting to be used by applications. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-10-27mips: fix errno setting after syscallAlexander Gordeev
If there was an error during syscall then after it's completion a3 register holds a non-zero value and v0 holds an actual error code which should be saved in errno. This can be achieved by calling __syscall_error with the value from v0 as a parameter. So this value should be stored in a0, but the appropriate assembly instructions are missing. Fixed this now by adding "move a0, v0". I think it was once fixed by 58c5f8ba4cdf62342d05a546d15404cbbb3c4e07 but then something went wrong. Again... Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su> 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-24use uniform form of C99 keywordsBernhard 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-07mips/socket.h: add SOCK_CLOEXEC and SOCK_NONBLOCK definitions for mipsKhem Raj
* __ss_aligntype is defined to unsigned long int Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-05-19mips: Add vfork to libcKhem Raj
* When using NPTL get clone.o from nptl. * Only use vfork if syscall is there. * Add libc_a_SSRC to LINUX_LIBC_ARCH_OBJ. * Use CLEAN_* for clean target. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-04-27MIPS: restore INLINE_SYSCALL macroGabor Juhos
The MIPS specific INLINE_SYSCALL macro has been renamed to INLINE_SYSCALL_NCS with: 763bbf9e9a27426c9be8322dca5ddf2cb4dbc464 syscall: unify part 2: NCS variety Declare common NCS (non-constant syscall) variants and convert the existing ports over to this. This change breaks system calls. The code generated with using of the new macro does not obey the restartable syscall convention used by the linux kernel. When it tries to restart the syscall the errno value is not being replaced by the syscall number. This causes weird behaviour of the 'ping' command in busybox for example: root@OpenWrt:/# ping 192.168.1.254 PING 192.168.1.254 (192.168.1.254): 56 data bytes 64 bytes from 192.168.1.254: seq=0 ttl=128 time=6.292 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=1 ttl=128 time=0.719 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=2 ttl=128 time=0.489 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=3 ttl=128 time=0.486 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=4 ttl=128 time=0.487 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=5 ttl=128 time=0.939 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=6 ttl=128 time=0.971 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=7 ttl=128 time=0.488 ms ping: recvfrom: Funct^C Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-27nptl: mips needs updated clone() implementationAndreas Schultz
Signed-off-by: Andreas Schultz <andreas.schultz@gmail.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-17Fix nptl build for mipsKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-11mips/sysdep.h: Unify mips sysdep.hKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-01-21mips/nptl: Pass correct parameters to dl_find_hash when resolving TLS ↵Khem Raj
relocations. Make use of macros from sys/asm.h in crt1.S These two changes are needed for mips nptl to boot once again. Signed-off-by: Khem Raj <raj.khem@gmail.com> (cherry picked from commit 9c343fd4030dcd7a52616f365893177dded50346) Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2009-11-28Merge remote branch 'origin/master' into nptlAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-11-23nommu: use MAP_UNINITIALIZE for mallocsMike Frysinger
Now that the kernel supports MAP_UNINITIALIZE, have the malloc places use it to get real uninitialized memory on no-mmu systems. This avoids a lot of normally useless overhead involved in zeroing out all of the memory (sometimes multiple times). Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-11-22Merge remote branch 'origin/master' into nptl_mergeAustin Foxley
Conflicts: Rules.mak libc/misc/sysvipc/msgq.c test/Rules.mak Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-11-19sync some headers and disable unused prototypesPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-17whitespace fixesAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-17mips specific bits needed for nptlAustin Foxley
* vfork impl with support for SAVE_PID, RESTORE_PID * sysdep.h assembly macros Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-07clean up O_CLOEXEC handlingMike Frysinger
Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h headers, and import __ASSUME_O_CLOEXEC from glibc. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-26mips: do not save variables in "hi" or "lo" across system callsDaniel Jacobowitz
The kernel does not save these registers across system calls. GCC 4.4 has gotten more aggressive about using them for temporary variables, so this shows up as intermittent crashes if you use a recent compiler. Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-18trim Experimentally off and uncommented hiddenBernhard Reutner-Fischer
sed -i -e '/Experimentally off - /d' $(grep -rl "Experimentally off - " *) sed -i -e '/^\/\*[[:space:]]*libc_hidden_proto(/d' $(grep -rl "libc_hidden_proto" *) should be a nop Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-08-30honour NO_LONG_DOUBLE_MATHBernhard Reutner-Fischer
This fixes compilation errors on hosts that turn off long double support for C99 like powerpc32. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-08-30Build posix_fadvice{64} only when UCLIBC_HAS_ADVANCED_REALTIME is set.Khem Raj
Right now for ARM, MIPS, Xtensa and powerpc posix_fadvise routines are included conditionally. They should only be enabled when UCLIBC_HAS_ADVANCED_REALTIME is set. Also fix code style in powerpc/posix_fadvise64.c Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-07-29build: Include Makefile.commonarch from common Makefile.inCarmelo Amoroso
Avoid including akefile.commonarch in each Makefile.arch. Include it instead from Makefile.in just after the arch specific Makefile.arch Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2009-07-26add missing UTIME_* defines for *at funcsMike Frysinger
I always forget that many arches have their own bits/stat.h ... Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-26enable nanosecond stat support for everyoneMike Frysinger
Fill out the stat structure so that the nanosecond resolution support is always available. There is a small code size increase for a few ports (three additional assignments in xstatconv), but otherwise everything should remain the same. While we're here, punt __old_kernel_stat from the few headers that still define it as it is unused in uClibc and causes compile errors after these nanosecond changes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-20It fixes the following warnings seen on mips build.Khem Raj
libc/sysdeps/linux/mips/clone.S: Assembler messages: libc/sysdeps/linux/mips/clone.S:122: Warning: No .frame pseudo-op used in PIC code libc/sysdeps/linux/mips/clone.S:75: Warning: Pretending global symbol used as branch target is local. libc/sysdeps/linux/mips/crt1.S: Assembler messages: libc/sysdeps/linux/mips/crt1.S:134: Warning: No .cprestore pseudo-op used in PIC code Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-07-09syscall: unify part 2: NCS varietyMike Frysinger
Declare common NCS (non-constant syscall) variants and convert the existing ports over to this. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-08syscall: unify common syscall definesMike Frysinger
Unify all the common syscall defines in syscalls-common.h and scrub all the duplicated code from relevant ports. This should also make converting existing ports to INLINE_SYSCALL() much easier as they don't have to get lost in all the unrelated noise, as well as creating new ports. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-03uClibc_arch_features: sync defines between portsMike Frysinger
Make sure each arch has the same complete list to make comparing between them easier. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-12-15remove some duplicates in bits/signum.h. No code changes.Denis Vlasenko
include/signal.h | 42 +++++++++++++++++++------------- libc/sysdeps/linux/alpha/bits/signum.h | 19 -------------- libc/sysdeps/linux/common/bits/signum.h | 22 ---------------- libc/sysdeps/linux/hppa/bits/signum.h | 17 ------------ libc/sysdeps/linux/mips/bits/signum.h | 23 +---------------- libc/sysdeps/linux/sparc/bits/signum.h | 20 --------------- 6 files changed, 27 insertions(+), 116 deletions(-)
2008-12-15sigaction overhaul as described in docs/sigaction.txtDenis Vlasenko
Run tested on i386.
2008-12-13Remove the rest of "bounded pointers" scaffolding. gcc website says"Denis Vlasenko
"Bounds Checking Projects... This project has been abandoned" for four years at least.
2008-12-10*: remove some __libc_XXX functions:Denis Vlasenko
__libc_accept __libc_close __libc_connect __libc_creat __libc_creat64 __libc_fsync __libc_lseek __libc_lseek64 __libc_msync __libc_nanosleep __libc_open __libc_open64 __libc_pause __libc_read __libc_readv __libc_recv __libc_recvfrom __libc_recvmsg __libc_send __libc_sendmsg __libc_sendto __libc_tcdrain __libc_wait __libc_waitpid __libc_write __libc_writev They were removed from glibc 1 May 2004: http://sources.redhat.com/ml/libc-hacker/2004-05/msg00001.html