Age | Commit message (Collapse) | Author |
|
|
|
breaks compatibility with existing binaries, unless the new COMPAT_ATEXIT option is enabled.
|
|
|
|
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.
|
|
ptr to crt. Only PowerPC and x86 support this currently.
|
|
#define _DL_DO_FINI_IN_LIBC to enable(the arch specific part needs to be in place first).
|
|
This avoids pulling in all the malloc/free code for a simple true/false app.
|
|
were including libc-lock.h which had a bunch of weak pragmas. Also,
uClibc supplied a number of no-op weak thread functions even though
many weren't needed. This combined result was that sometimes the
functional versions of thread functions in pthread would not override
the weaks in libc.
While fixing this, I also prepended double-underscore to all necessary
weak thread funcs in uClibc, and removed all unused weaks.
I did a test build, but haven't tested this since these changes are
a backport from my working tree. I did test the changes there and
no longer need to explicitly add -lpthread in the perl build for
perl to pass its thread self tests.
|
|
|
|
allocating size incorrectly....
-Erik
|
|
on malloc (via realloc).
-Erik
|
|
In case of vfork(), the parent was left with __exit_count of -1 and
thus tried to find non-NULL value of __exit_function_table[-1].atexit,
__exit_function_table[-2].atexit and call this function; of course, it
leads to coredump.
|
|
-Erik
|
|
I _totally_ screwed up the locking on exit and atexit such that it
didn't do any good at all.
-Erik
|
|
-Erik
|
|
|
|
to mark __stdio_flush_buffers with weak_function. Oops!
|
|
unnecessary variable
|
|
|
|
Programs that don't use stdio crash in the `exit' function, because
they call through the pointer__uClibc_cleanup, which has a value of 0.
It has a value of 0 because __uClibc_main.c initializes it to the
address of `__stdio_close_all', which is a weak symbol (and so is 0 if
stdio is not used).
This patch from Miles fixes it, though we need to audit
__stdio_close_all usage to be sure...
|
|
proper threading. Most of this is from Stefan Soucek,
with additions and changes as needed from me.
|
|
He sent this patch to me a month ago, but I forgot to apply it...
|
|
|
|
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
|
|
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.
|
|
|
|
|
|
|
|
It is getting closer...
-Erik
|
|
|