Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
to _dl_setup_stack_chk_guard, as in glibc. SSP requires now binutils-2.16.1 and newer. Add NOT_IN_libc/IS_IN_libc. Began using -DSHARED in uClibc_main.c, there are more candidates in there. Move back dl_protect_relro to it's earlier place.
|
|
archs lack proper crt1. The Makefiles in extra/scripts are intended to be linked into each dir, where it is necessary to build locally.
|
|
|
|
objects at once; use :=//$</$^; use CRT_SRC/CRT_OBJ/SCRT_OBJ/CSRC/COBJ/SSRC/SOBJ/MSRC/MOBJ where no more is needed, if only CSRC is present use OBJS directly instead of COBJ; CTOR_TARGETS are created directly in lib; remove unused/unneeded parts. Hope I haven't broken too much.
|
|
|
|
|
|
but they do no harm for the linuxthreads case. Yes, I tested this.
|
|
supports it
|
|
some auxillary TLS set up has to happen beforehand. This has been tested for almost two months now and I am tired of chasing it around in my merges. Look in the NPTL trunk if you want more information.
|
|
|
|
|
|
Moved guard_setup to __uClibc_main.c, the only place where it is called.
Removed SIGKILL option, not usable with sigaction.
|
|
|
|
|
|
If _DL_FINI_CRT_COMPAT is defined, _dl_fini is setup to run at exit via
atexit(), but this makes it run _before_ the fini (__app_fini()) of the
app, causing stuff like sandbox that frees structs, etc via its fini to
segfault.
http://bugs.gentoo.org/98187
|
|
|
|
|
|
|
|
be able to run apps built with 0.9.27. This also renames
__uClibc_start_main to __uClibc_main.
This compat option should be removed some time after 0.9.28 is released.
Let me know if you don't like this change.
|
|
position of envp in C code based on argv and argp. No need to
caclulate that in asm for N arches. This way, we better match
what glibc does. All arches will need to be fixed to match up
with this change.
|
|
__libc_csu_init and
_fini vs. __libc_csu_fini remains to do.
|
|
Kill old crt0/__uClibc_main.
This breaks ABI. All apps and toolchain needs to be recompiled.
All archs except x86 are now broken and need to be fixed as x86.
PPC will be fixed shortly by me, the rest is left to the arch maintainers.
|
|
uClibc's mkstemp/mktemp tries to read /dev/urandom (or /dev/random) to
generate random contents for the .XXXXXX part of its argument. In a
chrooted environment /dev/[u]random might not be available. Thus the
mkstemp call fails.
Add back in the braindamaged gettimeofday/getpid code, but only as a
fallback for when reading /dev/[u]random fail for whatever reasons.
|
|
#define _DL_DO_FINI_IN_LIBC to enable(the arch specific part needs to be in place first).
|
|
|
|
|
|
rename UCLIBC_PROPOLICE to UCLIBC_HAS_SSP
|
|
binaries where the standard file descriptors are not opened.
-Erik
|
|
I will always test before I commit.
I will always test before I commit.
-Erik
|
|
dtors via atexit(), atexit may need to call realloc with __pagesize
still set to 0. ugh.
-Erik
|
|
is not quite there...
|
|
_dl_pagesize variable in ldso, so avoid aliasing.
-Erik
|
|
-Erik
|
|
|
|
|
|
not the hard coded value of 4096.
|
|
running on uClinux, which at runtime uses the FLAT file format.
|
|
|
|
the real thing.
|
|
|
|
by extracting the value from the ELF header.
|
|
|
|
Hello Erik!
I have made some cosmetical changes to the files, removed the added
SCRT=-fPIC option from building the crt0.S file (but it is a requirement
to build them with -fPIC), and changed some comments. I have left the
ldso.c patch with PIE_SUPPORT ifdefs, but consider applying it w/o them
(see some earlier comment from PaX Team on this issue, as it is considered
a bug). To have it work correctly, you'll also need removing
COMPLETELY_PIC.
One thing is missing: PIE_SUPPORT should be usable only for i386 (for
now).
Also added the support for propolice protection (that works for me and
catches memcpy/strcpy attacks (but needs a special gcc version).
Thanks, Peter
|
|
This avoids pulling in all the malloc/free code for a simple true/false app.
|
|
rm.patch:
* Define $(RM) as rm -f in Rules.mak and test/Rules.mak
(this is the same definition as gmake uses by default).
* Change all occurrences of rm and rm -f into $(RM).
|
|
|
|
and so it actually works as intended allowing binaries on ARM to be
debugged.
-Erik
|