Age | Commit message (Collapse) | Author |
|
-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.)
|
|
C locale of course. util-linux needs this stuff to compile...
|
|
tree is less messy now (which helps), all libraries are placed into
uClibc/lib when compiling, all libraries now use a consistant mechanism
for being built, all libraries use a consistant naming scheme where the
lib name includes the uClibc version number, which makes ldconfig
happy and willing to work with us.
-Erik
|
|
so there is no reason to allocate 4k. Change working of execvep.c
per patch from Matthias Kilian <kili@outback.escape.de> so that there
is not a fixed 127 byte buffer. Too easy to overflow...
-Erik
|
|
|
|
|
|
This required we use _LIBC instead of __LIBC__ to be consistent with glibc.
This had some sideffects in sys/syscalls.h. While fixing things, I made
everything use __set_errno() for (eventual) thread support.
-Erik
|
|
|
|
|
|
since we will end up needing a few more of them anyways, and
all the other arches have the full set anyways.
-Erik
|
|
make clean works.
|
|
declared type function.
|
|
|
|
respective crt0.S. crt0.S should now only be responsible for setting things
up to call __uClibc_main(argc, argv, envp), which will do any other necessary
setup (setting global __environ, stdio init, etc), call main, and exit. This
should ease both maintainance and porting.
|
|
we don't blow up by using too much stack space, and simplifies the job of
supporting new architectures, since they don't have to mess with calling foo
init functions in crt0 and cleaning up the resulting damage.
-Erik
|
|
objects with shared uClibc; allow disabling long long support.
|
|
"I will always compile before I commit."
"I will always compile before I commit."
-Erik
|
|
|
|
|
|
|
|
|