Age | Commit message (Collapse) | Author |
|
* __ss_aligntype is defined to unsigned long int
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
I always forget that many arches have their own bits/stat.h ...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
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>
|
|
Declare common NCS (non-constant syscall) variants and convert the existing
ports over to this.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
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>
|
|
Make sure each arch has the same complete list to make comparing between
them easier.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
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(-)
|
|
Run tested on i386.
|
|
"Bounds Checking Projects... This project has been abandoned"
for four years at least.
|
|
|
|
fix _NSIG for it.
better document what's going on in sigaction().
seems to not induce any actual code changes (sans mips).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tested successfully on i386..
|
|
|
|
otherwie some errno will be missed (i.e. ENOKEY used in libusb)
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
- synch F_LINUX_SPECIFIC_BASE related fcntls for all arches
|
|
a problem where the linker was trying to use the wrong symbol name for the
init function.
Define SYMBOL_PREFIX as _ in Rules.mak for h8300, bfin, i960,
microblaze, and v850. Add -D__UCLIBC_UNDERSCORES__ in CFLAGS for targets
which define SYMBOL_PREFIX as _. Remove defines and undefs from
uClibc_arch_features.h of each target.
Add $(SYMBOL_PREFIX) to __uClibc_init when passed by ld option -init.
|
|
doing double negatives
|
|
When I imported INLINE_SYSCALL, etc. from glibc, I just copied whole
macros for each ABI. Actually, except for argument type (long
vs. long long), internal_syscall[0-4] are identical for all ABI, and
internal_syscall[5-6] for N32/N64 are identical for N32/N64.
And I just disabled FORCE_FRAME_POINTER since it had caused build
failure, but including <alloca.h> can solve it.
Here is a patch to handle these issues, plus asm/__asm__ and
volatile/__volatile__ conversion.
Thanks for Peter S. Mazinger who did basic work of this cleanup.
|
|
Current ucontext_t does not match with kernel's definition. Also, on
N32 ABI, we can not use kernel's struct sigcontext since kernel's
sizeof(long) and user's sizeof(long) is differ.
For both data structure, just importing header files from recent glibc
fixes the mismatch. So here is a patch importing sys/ucontext.h and
bits/sigcontext.t from glibc-2.5.
|
|
This patch imports INLINE_SYSCALL, etc. from glibc-2.5 ports and
implements _syscall[0-7] by using them, like arm and powerpc.
I think this patch does not change functionality, but gives better
__SYSCALL_CLOBBERS for N32/N64.
|
|
st_[amc]time_nsec to each kernel_stat, and define STAT_HAVE_NSEC to convert them
|
|
|
|
applications stop using _syscall#() and use syscall() instead. Cleanup
internal handling of syscall includes to use the correct header file.
|
|
|
|
minor include file issues
|
|
Adjust for mips64 kernel.
|
|
The mips64 N32/N64 ABI have a bit different register usage convention.
Also the register size for these ABI is 8 byte. Use ld/sd for them.
|
|
The mips64 N32/N64 ABI can pass much arguments via registers.
|
|
This is a bit twisted dirent.h can be used for both getdirent and
getdirent64 case on mips/mips64.
|
|
The kernel include/asm-mips/posix_types.h defines
__kernel_ino_t as unsigned long.
|
|
The predefined _MIPS_SZPTR (32 for O32 or N32, 64 for N64) can be used
for WORDSIZE. This is came from glibc code.
|
|
There is a mismatch of struct msghdr between the kernel and libc.
In a 64-bit environment, the size of msg_namelen is 4 for all, but
the size of msg_iovlen and msg_controllen is 8 bytes for the kernel
and for glibc, but 4 bytes for uClibc. Fix size for the 64bit case.
|
|
|
|
|
|
|
|
|