summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads/pthread.c
AgeCommit message (Collapse)Author
2010-04-14linuxthreads.new: initialize stdio lockingTimo Teräs
uClibc requires the threading library to enable locking for stdio, or the locking is not done at all. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-17linuxthreads: check TLS_DTV_AT_TP define correctlyAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-03-12linuxthreads fixes from Will Newton (will.newton AT gmail.com):Denis Vlasenko
* share Sys V semaphores in order to get appropriate SEM_UNDO semantics. * correct guardaddr in pthread_free() for TLS case * move spinlock unlocking before restart() * When exit was called from a signal handler, the restart from the manager processing the exit request instead restarted the thread in pthread_cond_timedwait. (see http://sources.redhat.com/ml/libc-ports/2006-05/msg00000.html)
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-10-03- use c89-style commentsBernhard Reutner-Fischer
Closes issue #5194
2008-09-25- if we only have socket support then there is no resolver state:Bernhard Reutner-Fischer
In function `__pthread_reset_main_thread': undefined reference to `_res'
2008-07-23- fix inline keywordBernhard Reutner-Fischer
2007-01-11Peter Mazinger pointed out that my last commit was faulty.Joakim Tjernlund
This should fix it.
2006-03-24Now new linuxthreads builds w/ SHAREDPeter S. Mazinger
2006-03-24Remove redundant redefine of __clonePeter S. Mazinger
2006-03-09Get rid of forwarded __pthread_attr_initPeter S. Mazinger
2006-03-09Remove unneeded ; after *_aliasPeter S. Mazinger
2006-03-05use sched_yield, not pthread_yieldMike Frysinger
2006-01-31s/IS_IN_linuxthreads/IS_IN_libpthread/, some prototypes, correct ↵Peter S. Mazinger
Makefile.in, disable __res_state, unavailable in resolv.h
2006-01-31initial import of latest linuxthreadsMike Frysinger
2005-11-15rename current stable linuxthreads to linuxthreads.old to prepare for import ↵Mike Frysinger
of latest glibc version
2005-11-15revert linuxthreads to pre rev 11377 (i.e. before the massive attempt to ↵Mike Frysinger
import glibc updates) while keeping the few bugfixes ... idea is to keep both old and new linuxthreads around so we can hack on the new version while delivering the old stable version to end users
2005-11-07implement __pthread_init_max_stacksize() which is required for FLOATING_STACKSMike Frysinger
2005-09-09newer linuxthreads renamed the function invalid_handle() to nonexisting_handle()Mike Frysinger
2005-09-09sync with glibc by moving the thread_desc stuff out of internals.h and into ↵Mike Frysinger
a new file descr.h ... also redo thread_desc init by specifying members in the struct by name rather than position
2005-07-01update the debug macros so they build with newer gcc versionsMike Frysinger
2005-05-28I added, then removed and now I add this again :). Hopefully I got it rigth ↵Joakim Tjernlund
this time.
2005-01-31Oops, remove extra sigaddset() call. Don't know how that one got there.Joakim Tjernlund
2005-01-29Hi Erik and ManuelEric Andersen
Long time no see :) It appears uClibc pthreads native debugging is broken w.r.t thread exit handling in uClibc(at least on PPC). When debugging ex7, gdb(6.2.1) bails out as soon as a thread exits. I found a comment in gdb that TD_DEATH handling was broken for glibc 2.3.1, so I figured that maybe it was broken in uClibc also. I added a #if 0 #endif in pthread_exit( see patch below) and then gdb behaved again. While looking into this I found a few differences( included in the patch) between glibc and uClibc. Don't know if these makes a difference, but I leave that to you to decide. Jocke
2004-10-31Revert Peter's __lib_gettimeofday patch. There's the minor issue ofManuel Novoa III
adding cruft to include/sys/time.h. But also, there's no sense in making changes like this until we decide how we're going to approach the hidden symbol transition.
2004-10-19Peter S. Mazinger writes:Eric Andersen
Hello! Would the attached patch be acceptable (maybe instead of __libc_gettimeofday using __gettimeofday) We have some issues, see http://bugs.gentoo.org/show_bug.cgi?id=65892
2004-02-11New stdio core. Should be more maintainable. Fixes a couple of bugs.Manuel Novoa III
Codepaths streamlined. Improved performance for nonthreaded apps when linked with a thread-enabled libc. Minor iconv bug and some locale/thread related startup issues fixed. These showed up in getting a gcj-compiled java helloworld app running. Removed some old extension functions... _stdio_fdout and _stdio_fsfopen.
2004-01-16s/UCLIBC_HAS_MMU/ARCH_HAS_MMU/gEric Andersen
2003-08-01Add a new *scanf implementation, includeing the *wscanf functions.Manuel Novoa III
Should be standards compliant and with several optional features, including support for hexadecimal float notation, locale awareness, glibc-like locale-specific digit grouping with the `'' flag, and positional arg support. I tested it pretty well (finding several bugs in glibc's scanf in the process), but it is brand new so be aware. The *wprintf functions now support floating point output. Also, a couple of bugs were squashed. Finally, %a/%A conversions are now implemented. Implement the glibc xlocale interface for thread-specific locale support. Also add the various *_l(args, locale_t loc_arg) funcs. NOTE!!! setlocale() is NOT threadsafe! NOTE!!! The strto{floating point} conversion functions are now locale aware. The also now support hexadecimal floating point notation. Add the wcsto{floating point} conversion functions. Fix a bug in mktime() related to dst. Note that unlike glibc's mktime, uClibc's version always normalizes the struct tm before attempting to determine the correct dst setting if tm_isdst == -1 on entry. Add a stub version of the libintl functions. (untested) Fixed a known memory leak in setlocale() related to the collation data. Add lots of new config options (which Erik agreed to sort out :-), including finally exposing some of the stripped down stdio configs. Be careful with those though, as they haven't been tested in a long time. (temporary) GOTCHAs... The ctype functions are currently incorrect for 8-bit locales. They will be fixed shortly. The ctype functions are now table-based, resulting in larger staticly linked binaries. I'll be adding an option to use the old approach in the stub locale configuration.
2003-05-30In a number of places we erroneously used tests such as '#ifdef PIC' when weEric Andersen
should instead have been testing for '#ifdef __PIC__'. This resulted in NON-PIC code getting mixed into the shared library. Oops!!! -Erik
2003-03-04Patch from Stefan Allius adding the function 'thread_self_stack'Eric Andersen
from glibc 2.3 that is needed for pthreads to compile for SuperH.
2003-02-27Major update for pthreads, based in large part on improvementsEric Andersen
from glibc 2.3. This should make threads much more efficient. -Erik
2003-01-30Patch from Christian Krause:Eric Andersen
I found a problem in uClibc in libpthread/linuxthres/condvar.c: pthread_cond_timedwait never uses rt singals uClibc has two implementations of pthread_cond_timewait - pthread_cond_timedwait_relative_old using the "normal" signals and pthread_cond_timedwait_relative_new usign the rt signals (for kernels >= 2.2). The function pointer pthread_cond_tw_rel is initialised with the old function. In "__pthread_init_condvar(int)" this pointer is set to the new function using rt signals, but "__pthread_init_condvar" is never called in the uClibc. The following patch solves this issue, so that __pthread_init_condvars is called and the function pointer is always initialised with the correct function. regards, christian
2003-01-23Just be a bit less different from latest glibc version in commentsEric Andersen
and in the files where variables live.
2003-01-23Per patch from Nathan Field at ghs.com, fix __pthread_initialize_manager so itEric Andersen
locks before calling clone when under a debugger, and unlocks on success or failure of clone when under a debugger.
2002-08-19Based on work by Stefan Allius, arrange for early initialization ofEric Andersen
pthread stuff. Also, don't bother building libthread_db unless we are debugging. -Erik
2002-08-08Patch from Stefan Allius and Edie C. Dost:Eric Andersen
In linuxthreads/errno.h the functions __errno_location and __h_errno_location wasn't safe against calling before the library is initialized.
2002-06-13Fix pthreads to use the rt signals if presentEric Andersen
-Erik
2002-02-20Merge in the pthread library. This is the linuxthreads library taken fromEric Andersen
glibc 2.1.3 and ported to work with uClibc by Stefan Soucek and Erik Andersen (me). Stefan has hacked things up such that linuxthreads runs on MMU-less systems (tested only on arm-nommu). Erik cleaned things up and made it work properly as a shared library. -Erik