Age | Commit message (Collapse) | Author |
|
|
|
how uClibc handles _init and _fini, allowing shared lib constructors and
destructors to initialize things in the correct sequence. Stefan ported the SH
architecture. I then ported x86, arm, and mips. x86 and arm are working fine,
but I don't think I quite got things correct for mips.
|
|
|
|
Definitions taken from 2.4 kernel sources for each of the platforms.
|
|
guard names used by the kernel's asm/posix_types.h to eliminate
gratuitous conflicts and let our file win over the very-likely-
to-be-broken kernel header file.
-Erik
|
|
i386. This is for Erik to look at wrt the other archs.
|
|
header, which is not directly usable for many architectures.
-Erik
|
|
specific bits/kernel_stat.h file.
-Erik
|
|
directly. Eliminate all the attendant baggage. Fix internal
types to match kernel types more closely.
-Erik
|
|
-Erik
|
|
-Erik
|
|
-Erik
|
|
Prepare to kill the UNIFIED_SYSCALL option and instead have it be
a per arch thing that is either enabled or not for that arch.
-Erik
|
|
arch-specific constant value defined in bits/uClibc_clk_tck.h.
Default is 100 (common/bits) but alpha uses 1024 following glibc.
Override per arch as necessary.
|
|
|
|
(undefined reference to `main') when the .o file containing main was contained
in an static library(a '.a' ar archive). It turns out that due to its single
pass nature, GNU ld was failing to pull it into the build. This sticks a dummy
reference to main() into crt0.o, so that when an application is linked with the
main() function in a static library, we can be sure that main() actually gets
linked in.
-Erik
|
|
address all the concern Miles had with the earlier versions...
-Erik
|
|
-Erik
|
|
these stubs were preventing the real stuff from working properly.
-Erik
|
|
can live with much better the what glibc does.
-Erik
|
|
-Erik
|
|
and to better support each arch. This is a really big patch...
-Erik
|
|
on both x86 and arm...
-Erik
|
|
-Erik
|
|
|
|
|
|
proper error checking
-Erik
|
|
|
|
|
|
|
|
and creating several *64 problems, particualrly when client apps
used -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64. All better now.
-Erik
|
|
works for me when linking staticly on x86.
|
|
|
|
I had a look at it and you won't believe it was always broken.
I'll try and explain it, let me know if it doesn't make sense.
* ash calls setjmp, which messes with the stack to look like it has
two args instead of one and then jmps (actually falls) into
sigsetjmp.
BUG
* sigsetjmp then saves the registers and "jumps" to __sigset_save, a C
function.
BUG1 - because the caller pops its args off the stack, a program that
changes it's number of args is broken because the caller will
not
pop the correct number of args.
I think that jumping from the sigsetjmp asm to the 'C' code is unsafe
but I can't think of an example. Anyway, I have attached what I think
is
a working fix.
The reason this worked without -fomit-frame-pointer is that the
_sigset_save 'C' code would restore the stack pointer from %ebp (the
frame
pointer) and because none of the asm had moded it, when we returned
from
__sigset_save the stack was back to it's correct position for 1
argument
despite our best attempts to stuff it up ;-)
|
|
|
|
|
|
|
|
|
|
|
|
it and that I could see needed it.
Should be pretty low impact as these are only defined when using C++.
|
|
|
|
NOTE!!! This is run by "make -C libc/sysdeps/linux/$(TARGET_ARCH) headers"
in the main Makefile, but I only changed libc/sysdeps/linux/i386/Makefile
as I had no way of testing it for the other archs. Various arch maintainers,
please check and update the corresponding Makefile... or report bugs ;-)...
appropriately. You'll also want to "cvs del" syscall.h and add it to
a .cvsignore in $(ARCH)/bits.
Also added a define to uClibc_config.h, __UCLIBC_USE_UNIFIED_SYSCALL__, and
moved i386 unified syscall stuff out of common and into i386/bits/syscalls.h.
|
|
some code to autogenerate this stuff...
|
|
This will break the build for a bit.
-Erik
|
|
|
|
the straight getdents syscall instead of the wrapper (which leaked memory).
|
|
all arches till they add in an libc/sysdeps/linux/<arch>/bits/syscalls.h
file. Sorry about there, there was no other way...
-Erik
|
|
glibc-2.2.2 actually defines static inline versions for i386, but only
provides prototypes for externs for the other archs I looked at. Since
uClibc shares this header amongst archs, I stashed the inline defs in
bits/io_i386.h and included it when __i386__ was defined. Better solutions
are most welcome, but it doesn't clutter sys/io.h too badly and now lilo
and the pcmcia tools build against uClibc on i386 without modification.
|
|
x86 entirely in C -- no asm required. muahahahaha!
-Erik
|
|
used on mipsel.)
|