Age | Commit message (Collapse) | Author |
|
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.)
|
|
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.
|
|
|