Age | Commit message (Collapse) | Author |
|
Current MIPS readahead(), posix_fadvise(), posix_fadvise64() do not
match with kernel on all ABIs.
On O32 ABI, a padding is needed before a long long argument.
On N32/N64, a long long argument should be passed via a single register.
|
|
Daniel Jacobowitz on the mailing list. More information available at <http://www.uclibc.org/lists/uclibc/2007-May/017968.html> .
|
|
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
|
|
We should use "PTR_LA" instead of "la" for N64 ABI.
|
|
No pread64, pwrite64 syscall for N64 ABI.
Make __libc_pread and __libc_pread64 use same syscall.
|
|
Adjust for mips64 kernel.
|
|
miscellaneous asm routines
|
|
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.
|
|
It seems these codes dropped when importing from glibc.
This is required for mips64.
|
|
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.
|
|
The "make headers_install" in kernel 2.6.18 does not export
asm-mips/asm.h, asm-mips/regdef.h and asm-mips/sysmips.h. Do not use
them. We can use sys/asm.h and sys/regdef.h instead. The sysmips.h
part of this patch is came from glibc 2.4 code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
based profiling I nuked ages ago since tools like oprofile are non invasive
and work so much better.
|
|
current pipe.S seems broken for error case. For example, "la t0,
__syscall_error" should be "la t9, __syscall_error"? Jumping to
__syscall_error without reverting sp is correct?
I updated this patch against recent snapshot and tested: it looks OK.
* Get rid of saving/restoring a0. No need to adjust sp.
* Fix code in error path.
|
|
|
|
of POSIX_MADV_*
|
|
|
|
|
|
most of global data relocations are back
|
|
|
|
that needs to overwrite this
|
|
|
|
|
|
Patch tested.
|
|
to be weaks
|
|
|
|
|
|
|
|
|
|
questionable ifdefs
|
|
|