summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads.old
AgeCommit message (Collapse)Author
2011-03-05Allow ABIs where SP points below the stack frame.Bernd Schmidt
On C6X, the stack pointer points to a word that is not part of the current function's stack frame. It may be overwritten by callees. Take this into account when creating the stack for a cloned thread. Signed-off-by: Bernd Schmidt <bernds@codesourcery.com>
2011-03-05Add Makefile support for DSBT ELF.Bernd Schmidt bernds_cb1@t-online.de
This adds support for a new binary format, DSBT ELF, to the Makefiles. Every shared library is assigned a DSBT index, and the link.so macro is adjusted to ensure the correct linker argument is passed. Configuration and ldso support will follow in separate commits. Signed-off-by: Bernd Schmidt <bernds@codesourcery.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-03-03remove ucontext.h and guard sigstack structure with SUSV4_LEGACY and ↵Peter S. Mazinger
STRICT_HEADERS Remove ucontext.h if SUSV4_LEGACY is not set and fix it's references. Guard sigstack structure with SUSV4_LEGACY and STRICT_HEADERS. Disable sigstack function prototype, it is not provided by uClibc. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2011-02-24linuxthreads.old: fix nommu initial thread stack detectionMike Frysinger
Because the nommu address space is flat, and the application stack can literally be located anywhere, we cannot rely on the assumptions that the mmu port gets away with. Namely, that the first thread's stack lives at the top of memory and nothing will be created above it. Currently, the code rounds the current stack up a page and sets that as the "top" of the stack, and then marks the "bottom" of the stack as "1". Then as new threads are created, this assumption is further refined by slowly backing off the "bottom" when a new stack is created within the range of the initial stack. Simple ascii example (tid0 is the initial thread): 1 thread: [bos tid0 stack tos] 2 threads: [ tid0 stack ] [tid1 stack] 3 threads: [ tid0 stack ] [tid1 stack] [tid2 stack] As you can kind of see, this algorithm operates on one basic assumption: the initial top of stack calculation is the absolute top of the stack. While this assumption was fairly safe in the original nommu days of yore where the only file format was FLAT (which defaults to a 4KiB stack -- exactly 1 page), and memory was fairly tight, we can see that this falls apart pretty quickly as soon as the initial stack is larger than a page. The issue that crops up now is simple to hit: start an application with an 8KiB stack, execute some functions that put pressure on the stack so that it exceeds 4KiB, then start up some threads. The initial tos will be rounded up by a page, but this is actually the middle of the stack. Now when the initial thread returns from its functions (thus unwinding the stack) and tries to call something which calls back into libpthread, the thread_self() func fails to detect itself as the initial thread as the current stack is now above the tos. The __pthread_find_self() func kicks in, walks all the thread arrays, fails to find a hit, and then walks into uninitialized memory for the thread descriptor. Use of this garbage memory has obvious results -- things fall down & go boom. To address this, I extend the current algorithm to automatically scale back both the bottom and the top stack limits of the initial thread. We use the current stack pointer at "thread boot time" only as a single known point. The initial thread stack bottom is set to the bottom of memory and the initial thread stack top is set to the top of memory. Then as we create new stack threads, we figure out whether the new stack is above or below the single known good address, and then scale back either the tos or the bos accordingly. Reviewed-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-11-10microblaze: thread supportSteven J. Magnani
Header files needed to build linuxthreads.old for microblaze. Signed-off-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-04-25enable building __fcntl_nocancel, as it used unconditionally nowAustin Foxley
also sync up not-cancel.h headers between all three thread libraries Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-22nptl: proper soname handlingNatanael Copa
Since sublevel releases are not ABI compatible we need to adjust the soname to include the sublevel version. This makes it possible to install ABI incompatible versions of the library side by side so clean upgrades are possible. Signed-off-by: Natanael Copa <natanael.copa@gmail.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-03-25prettify make cleanBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-12-17check if USE_TLS is defined before useHans-Christian Egtvedt
This patch will convert all the #ifdef USE_TLS and #if USE_TLS to #if defined(USE_TLS) && USE_TLS. By checking if the USE_TLS is defined before checking its value will result in correct behavior for architectures not defining this config symbol. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> Acked-by: Carmelo AMOROSO <carmelo.amoroso@st.com>
2009-11-22Revert "libc: add hidden calls to pthread cleanup funcs"Austin Foxley
This reverts commit e0ac4efbdb498319f03a2a95d75d061ab6c68491. Was causing segfaults on every pthread linked executable Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-22libc: add hidden calls to pthread cleanup funcsMike Frysinger
A lot of libc code calls the pthread cleanup funcs implicitly (for stdio) which currently goes through the PLT. Since we already have forwarding symbols for these funcs, it's safe to declare the internal libc usage hidden as a loaded libpthread will have the real symbols found. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-18convert // comments to /**/; remove empty #if/#endif pairs. no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-18trim Experimentally off and uncommented hiddenBernhard Reutner-Fischer
sed -i -e '/Experimentally off - /d' $(grep -rl "Experimentally off - " *) sed -i -e '/^\/\*[[:space:]]*libc_hidden_proto(/d' $(grep -rl "libc_hidden_proto" *) should be a nop Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-08-17support building out-of-treeBernhard Reutner-Fischer
Handle O= Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-07-26linuxthreads.old: define pthread_yield to sched_yieldMike Frysinger
The pthread_yield() function in linuxthreads does the same thing as the standardized sched_yield() function, so add a simple define for it to make porting GNU apps easier. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-21linuxthreads.old: fix crash in debug codeMike Frysinger
If pthread_join() is called and there is nothing to join, then the debug code will attempt to dereference a NULL pointer. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-21libpthread: add format attribute to __pthread_message()Mike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-20linuxthreads.old: extend workaround for asm rename warningsMike Frysinger
The libc_pthread_init.c needs the include workaround like forward.c, and forward.c needs more includes now. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-05Don't shadow the mask parameter with a local variable in the same functionRon
Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-05Check #if feature test macros are defined where they may not beRon
Once again all of these reduce the noise from gcc-4.4. Replaces a few more (USE_TLS && HAVE___THREAD) with USE___THREAD while we need to mess with them for this anyhow. Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-05Provide token prototypes for functions that are external but have no headerRon
This cuts down on a lot of noise from gcc-4.4 Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-05Add noreturn attributes to some functions that won't ever do soRon
usage() is also made static in answer to warnings about no prototype. In __pthread_manager_event() we also have to drop the return statement, else gcc will in turn complain about a non-returning function having one. Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-04-09The attached patches fixes the problems found bringing up uclibc on coldfire Khem Raj
M5485 processor 1. Disable mmap2() if we're compiling for coldfire and fall back to mmap(). It seems to map a different file area on a 2.6.25 linux kernel. 2. Uses pc-relative addresing[1], computes ADDR_ALIGN, PAGE_ALIGN and OFFSET_ALIGN relatively to _dl_pagesize[3]. On coldfire/M5485 _dl_pagesize is 0x2000. Signed-off-by: Groleo Marius <groleo@gmail.com>
2009-02-25Reinstate __libc_foo's needed for linuxthreads.old.Denis Vlasenko
Now they are only enabled if linuxthreads.old are selected.
2009-01-21- commentary typo fixBernhard Reutner-Fischer
2009-01-12- fix typo in r24594Bernhard Reutner-Fischer
2008-12-29- whitespace cleanup; no obj-code changesBernhard Reutner-Fischer
2008-12-29- pthread_attr_{g,s}etstacksize would depend on SUSv3 legacy but are notBernhard Reutner-Fischer
implemented anyway.
2008-12-19remove one forgotten '##'. Heeds:Denis Vlasenko
warning: type defaults to 'int' in declaration of 'intfcntl'
2008-12-14heed compiler warnings about checking non-defined variables in #if directivesDenis Vlasenko
2008-12-13make all "XXXhidden_proto(" consistently not use a space before '('Denis Vlasenko
2008-12-11get rid of __libc_* symbols. Some whitespace cleanups.Khem Raj
2008-12-10*: remove some __libc_XXX functions:Denis Vlasenko
__libc_accept __libc_close __libc_connect __libc_creat __libc_creat64 __libc_fsync __libc_lseek __libc_lseek64 __libc_msync __libc_nanosleep __libc_open __libc_open64 __libc_pause __libc_read __libc_readv __libc_recv __libc_recvfrom __libc_recvmsg __libc_send __libc_sendmsg __libc_sendto __libc_tcdrain __libc_wait __libc_waitpid __libc_write __libc_writev They were removed from glibc 1 May 2004: http://sources.redhat.com/ml/libc-hacker/2004-05/msg00001.html
2008-12-01hostid: improve extremely unreadable partsDenis Vlasenko
*: remove checks of sigaction and sigprocmask results in cases where they clearly can't fail: sigaction(known_good_sig) sigprocmask(known_good_how) text data bss dec hex filename - 393 4 0 397 18d libc/pwd_grp/lckpwdf.o + 382 4 0 386 182 libc/pwd_grp/lckpwdf.o - 56 0 0 56 38 libc/signal/sigblock.o + 44 0 0 44 2c libc/signal/sigblock.o - 211 0 0 211 d3 libc/signal/sigset.o + 202 0 0 202 ca libc/signal/sigset.o - 56 0 0 56 38 libc/signal/sigsetmask.o + 44 0 0 44 2c libc/signal/sigsetmask.o - 309 0 0 309 135 libc/unistd/sleep.o + 256 0 0 256 100 libc/unistd/sleep.o
2008-12-01on Bernd's request, remove commented-out code snippetsDenis Vlasenko
2008-12-01optimize signal mask ops. comment out "impossible" errorsDenis Vlasenko
text data bss dec hex filename - 1179 13 2 1194 4aa libc/misc/syslog/syslog.o + 1165 13 2 1180 49c libc/misc/syslog/syslog.o - 435 4 0 439 1b7 libc/pwd_grp/lckpwdf.o + 393 4 0 397 18d libc/pwd_grp/lckpwdf.o - 38 0 0 38 26 libc/signal/sigandset.o + 32 0 0 32 20 libc/signal/sigandset.o - 63 0 0 63 3f libc/signal/sigblock.o + 56 0 0 56 38 libc/signal/sigblock.o - 22 0 0 22 16 libc/signal/sigempty.o + 20 0 0 20 14 libc/signal/sigempty.o - 25 0 0 25 19 libc/signal/sigfillset.o + 20 0 0 20 14 libc/signal/sigfillset.o - 34 0 0 34 22 libc/signal/sigisempty.o + 16 0 0 16 10 libc/signal/sigisempty.o - 38 0 0 38 26 libc/signal/sigorset.o + 32 0 0 32 20 libc/signal/sigorset.o - 119 0 0 119 77 libc/signal/sigpause.o + 113 0 0 113 71 libc/signal/sigpause.o - 215 0 0 215 d7 libc/signal/sigset.o + 211 0 0 211 d3 libc/signal/sigset.o - 63 0 0 63 3f libc/signal/sigsetmask.o + 56 0 0 56 38 libc/signal/sigsetmask.o - 194 0 1 195 c3 libc/stdlib/abort.o + 183 0 1 184 b8 libc/stdlib/abort.o - 323 0 0 323 143 libc/unistd/sleep.o + 309 0 0 309 135 libc/unistd/sleep.o
2008-11-29shring sugnal-relared stuff a bit. BTW why constant memset is not inlined by ↵Denis Vlasenko
gcc? text data bss dec hex filename - 38015 18096 8636 64747 fceb lib/libpthread-0.9.30-svn.so + 38001 18096 8636 64733 fcdd lib/libpthread-0.9.30-svn.so - 274842 1835 19012 295689 48309 lib/libuClibc-0.9.30-svn.so + 274779 1835 19012 295626 482ca lib/libuClibc-0.9.30-svn.so
2008-11-25- cosmetic tidy up of clean targetBernhard Reutner-Fischer
2008-11-22signal ops: avoid calls through PLT for __sigXXX opsDenis Vlasenko
linuxthreads.old/manager: pointless style fixes, no code changes
2008-11-18libc_hidden_proto removal, just a few functionsDenis Vlasenko
2008-11-07- less verbose make cleanBernhard Reutner-Fischer
2008-10-31Replace inline with __inline__ in AVR32 pt-machine.h header fileHans-Christian Egtvedt
This patch replaces inline with __inline__ to be more ANSI compatible. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
2008-10-18- do not list non-existing files in the threads prerequisitesBernhard Reutner-Fischer
2008-10-17- fix toggling thread implementation.Bernhard Reutner-Fischer
Previously the old headers were left in include/ leading to spurious compile failures. This is ugly as it can get (we resort to sneaking -L in for the moment) but good enough for now. The worst thing which can happen is that we ln these headers once per invocation of make, nothing more. If some installation of make(1) complains about the "-L" then wrap it in ifneq ($(findstring check-symlink,$(.FEATURES)),)
2008-10-17- guard socket calls with UCLIBC_HAS_SOCKETBernhard Reutner-Fischer
2008-10-11Fix bug 4994 hangs on read(). I have tested the patch extensibly on ARM/LT.old.Khem Raj
Thank you Chase Douglas for reporting it and for the patch.
2008-10-06- silence warningBernhard Reutner-Fischer
2008-10-03- use c89-style commentsBernhard Reutner-Fischer
Closes issue #5194
2008-09-25Add globally __stringify macro in libc-symbols.h.Carmelo Amoroso
Remove all other duplicated definitions. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-08-21Fix up an msync() redefinition for linuxthreads + nommu systems,Paul Mundt
common case depends on __ARCH_USE_MMU__, falling back on the include/sys/mman.h:msync() stub otherwise.