summaryrefslogtreecommitdiff
path: root/libpthread
AgeCommit message (Collapse)Author
2016-05-31ARM: nptl: Use generic lowlevellock.c, patch from glibcLeonid Lisovskiy
lowlevellock.c for arm differs from the generic lowlevellock.c only in insignificant ways, so can be removed. Follow glibc commit 6d96f5e4c0 Solves __lll_timedlock_wait busy-wait issues described at http://sourceware.org/bugzilla/show_bug.cgi?id=15119 Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-05-31linuxthreads.old: Fix segfault when pthread_mutex_unlock() called against ↵Leonid Lisovskiy
unlocked NORMAL mutex. Althought, it is undefined behavior, there is no reason for segfault. Program received signal SIGSEGV, Segmentation fault. __pthread_unlock (lock=lock@entry=0x804b03c <lock+16>) at libpthread/linuxthreads.old/spinlock.c:231 231 (&lock->__status, oldstatus, (long)(thr->p_nextlock) & ~1L)) It occurs only on platforms which has HAS_COMPARE_AND_SWAP defined. Restore glibc commit fbaf6e72d6 "spinlock.c (__pthread_unlock): Don't crash if called for an untaken mutex." behavior, broken later by commit 4ad1d0cfbf. Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-05-31arm: add non-assembly versions of pthread_spin_lock/pthread_spin_trylockWaldemar Brodkorb
Sync pthread_spin_lock/pthread_spin_trylock with GNU libc as it avoids any usage of deprecated SWP instruction. This allows to build uClibc-ng for ARMv8 Cortex-A53 CPU in 32 Bit mode.
2016-05-28linuxthreads: Fix warnings in pthread_tryjoin_np(), pthread_timedjoin_np()Leonid Lisovskiy
Accidentally, commit 43ef9c6b3 wasn't taken into account. Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-05-28sigaction: fix for THREADS_NATIVEBaruch Siach
Commit 9c4fce55a (nptl: remove sigaction, sigprocmask, and sigfillset from libpthread) removed pt-sigaction.c from the build to fix static build. However, since the libc sigaction is weak when HAS_THREADS is enabled, static build is not be affected. Tested for xtensa, x86, MIPS32 targets. Fixes nptl/tst-signal7. Moreover, commit 9193a76bb from the 0.9.33 branch has the right version. Ref.: http://patchwork.ozlabs.org/patch/286084/ Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-05-24microblaze: fix linuxthreads supportWaldemar Brodkorb
Got the working code from https://github.com/jdkoftinoff/mb-linux-msli/, otherwise SIGILL while using linuxthreads.
2016-05-18remove linuxthreads.new, rename linuxthreads.oldWaldemar Brodkorb
Linuxthreads.new isn't really useful with the existence of NPTL/TLS for well supported architectures. There is no reason to use LT.new for ARM/MIPS or other architectures supporting NPTL/TLS. It is not available for noMMU architectures like Blackfin or FR-V. To simplify the live of the few uClibc-ng developers, LT.new is removed and LT.old is renamed to LT. LINUXTHREADS_OLD -> UCLIBC_HAS_LINUXTHREADS
2016-05-07libpthread: add missing file for gdbserverWaldemar Brodkorb
copy file from linuxthreads to be able to compile gdbserver.
2016-04-15replace FSF addresses with URLsNikola Forró
License notices in most of the source files refer to an outdated FSF address. Replace it with URL, like in the rest of the source files.Signed-off-by: Nikola Forró <nforro@redhat.com>
2016-04-05remove accidentally added files while cleaning up incomplete sparcv9 supportWaldemar Brodkorb
2016-04-05nptl: remove useless text filesWaldemar Brodkorb
2016-03-31arm: simplify handling of Thumb related optionsThomas Petazzoni
Currently, the Thumb support on ARM has three related Config.in options, which are not trivial for users to understand, and are in fact not needed: - The USE_BX option is not needed: knowing whether BX is available or not is easy. If you have an ARM > v4 or ARMv4T, then BX is available, otherwise it's not. This is the logic used in glibc. - The USE_LDREXSTREX option is not needed: whenever Thumb2 is available, ldrex/strex are available, so we can simply rely on __thumb2__ to determine whether ldrex/strex should be used, without requiring a Config.in option. - Once USE_BX and USE_LDREXSTREX are removed, the only thing left that COMPILE_IN_THUMB does is to set -mthumb. This makes the option unnecessary, as on ARM at least, the user is already supposed to pass -march=<foo> or other compiler options tuning the library for a specific ARM variant. There is no reason to do otherwise for Thumb, which allows to get rid of the COMPILE_IN_THUMB option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-01-25hppa: unbreak toolchain buildingWaldemar Brodkorb
At least allow to build a toolchain for hppa. Sync some headers with glibc.
2016-01-10NPTL: fix infinite recursionWaldemar Brodkorb
fix infinite recursion on application exit triggered by linking libc before libpthread. Patch from OpenWrt. Reported-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-01-10NPTL: Fix __pthread_once old style declarationWaldemar Brodkorb
Trivial fix. Signed-Off-By: Leonid Lisovskiy <lly.dev@gmail.com>
2016-01-06linuxthreads.old: Implement pthread_tryjoin_np(), pthread_timedjoin_np()Leonid Lisovskiy
Some applications needs it. Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
2016-01-02remove deprecated architectures v850/i960Waldemar Brodkorb
Both architectures are more or less deprecated. No Linux upstream support, no gcc support for uClinux.
2015-12-22use arch specific thread stack size for nptlWaldemar Brodkorb
Use the arch specific thread stack size for nptl if the size returned by getrlimits exceeds it - fixes threads on systems with only 16 MB RAM. Patch from OpenWRT Reported-by: Leonid Lisovskiy <lly.dev@gmail.com>
2015-12-17reduce stack cache size to save memory spaceWaldemar Brodkorb
Idea from different projects as OpenWrt and others. https://lists.openwrt.org/pipermail/openwrt-devel/2013-November/022299.html https://github.com/wl500g/toolchain/blob/master/toolchain/uClibc/patches/0.9.32/980-stack-cache-maxsize.patch
2015-12-09Do not support localised optimizations this helps to have a global -O levelKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-12-05good by niosWaldemar Brodkorb
Get rid of NIOS support. We try to support NIOSII.
2015-12-05remove sh64 supportWaldemar Brodkorb
No real hardware available. The project for sh64 with sh5 seems dead since 10 years. Gcc will remove support for it soon.
2015-12-05remove __UCLIBC_ASM_GLOBAL_DIRECTIVE__Waldemar Brodkorb
.globl can be used for every architecture so remove the define. Sync with GNU C library.
2015-12-05remove __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__Waldemar Brodkorb
It's even no longer required for non-ported ppc64 architecture. Sync with GNU C library. This simplify the macros in include/libc-symbols.h.
2015-11-30xtensa: avoid some compiler warningsWaldemar Brodkorb
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-10-22NPTL/ARC: fix __lll_lock_wait_private redefinition for static linksVineet Gupta
Commit 2d9740a65a "uclibc: nptl: fix __lll_lock_wait_private multiple definition" did a sweeping change which did for all in tree arches at that time (ARC wasn't) Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2015-10-13or1k: add missing fileWaldemar Brodkorb
2015-10-12fix static binaries linked with pthread and compiled with sspWaldemar Brodkorb
Move TLS initialization for static builds up to the calling function as suggested by Daniel Fahlgren. Reported-By: Daniel Fahlgren <daniel@fahlgren.se>
2015-10-09add new architecture support for or1kWaldemar Brodkorb
Information about Openrisc: http://opencores.org/or1k/Main_Page Integrated from: https://github.com/openrisc/uClibc-or1k
2015-10-08xtensa: support call0 ABIMax Filippov
Most changes are mechanical replacement of 'retw' instruction with 'abi_ret' macro, defined to 'retw' or 'ret' according to ABI. Assembly code that makes calls is duplicated for call0 ABI with changed register numbers for parameters/return value and call instruction. 'entry' instructions are replaced with 'abi_entry' macro. More interesting changes: - non-leaf assembly functions (e.g. _dl_tlsdesc_dynamic, _dl_linux_resolve, SYSCALL_ERROR_HANDLER, PSEUDO) now need to preserve registers around intermediate calls they make, use temporary stack frame for that; - setjmp/longjmp only need to save and restore return address, stack pointer and callee-saved registers in the jmpbuf; - __clone and syscall functions had hardcoded offsets to parameter passed on stack, on call0 ABI they don't need stack frame, so the offset is different. Replace these offsets with FRAMESIZE macro. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-09-15NPTL: fix CFLAGS for cancellation pointsMax Filippov
Stack unwinding that happens during NPTL thread cancellation needs cancellable syscall wrapper functions to be compiled with -fexceptions -fasynchronous-unwind-tables to be able to unwind to cleanup handlers registered before syscall invocation. Add these flags for all cancellable syscall wrappers. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-08-27nptl_db/db_info: fix the incorrect initial size for dtvpJunling Zheng
When debugging a program on ARMv7 with thread-local storage declared using "__thread", attempting to print a thread-local variable will result in the following message: Cannot find thread-local storage for Thread <snip> (LWP <snip>), executable file /tmp/tls: capability not available This can be traced back to uclibc libpthread/nptl_db/td_thr_tls_get_addr.c which gdb uses to look up the address of the TLS. The function returns TD_NOCAPAB due to a mismatch in size between the DTV pointer and the size recorded in the db description. The problem lies in libpthread/nptl_db/db_info.c which initializes the db with the sizeof the union dtv. Instead it should be the sizeof a pointer to union dtv. Fixed the initial size for dtvp to sizeof a pointer, instead of sizeof the union. Refer to: http://sourceware.org/ml/libc-alpha/2006-10/msg00088.html https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=416b630981788c1f08e746e19765aa0e5c2a1360 Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
2015-08-22quieten compile warningsWaldemar Brodkorb
Sync with glibc, quietens gcc warnings.
2015-08-14add mkstemps, mkstemps64 and mkostemps, mkostemps64 functionsRomain Naour
Change __gen_tempname() prototype in order to pass the additional suffix lenght. In __gen_tempname() add a new check for suffixlen. Update some comments in the code. Signed-off-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-08-02sh: fix static linking issueWaldemar Brodkorb
2015-08-02simplify, as the other does not work correctly, suggested by tgWaldemar Brodkorb
2015-07-22fix static builds of pthread apps for x86/x86_64Waldemar Brodkorb
Found via buildroot autobuilder.
2015-07-11Merge branch '1.0' of git+ssh://uclibc-ng.org/git/uclibc-ng into 1.0Waldemar Brodkorb
2015-07-11builtin_unreachable is not available for older gccWaldemar Brodkorb
2015-06-30NPTL/arc: notify kernel of the TP valueVineet Gupta
Native gdb makes a ptrace (GET_THREAD_AREA) which needs to return the TP. however when libc sets up TP reg (for main thread), it doesn't call arc_settls syscall so kernel doesn't know of TP register details (moreso because clone doesnt have SETTLS flag) Note that kernel doesn't know about r25 being TP etc. This commit got lost in merge of NPTL tools into arc-mainline-dev and showed up again as STAR 9000919529 (native gdb can't debug threaded apps) ------->8--------------- [ARCLinux]# gdb ./pth Reading symbols from ./pth...(no debugging symbols found)...done. (gdb) b main Breakpoint 1 at 0x106f2 (gdb) r Starting program: /pth [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". thread_get_info_callback: cannot get thread info: generic error (gdb) q ------->8--------------- Debugged-by: Anton Kolesov <akolesov@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2015-06-23xtensa: fix stack frame size for NPTLMax Filippov
Cancellable syscalls use call8 to call functions that enable/disable cancellation, thus they cannot use the default FRAMESIZE. Redefine FRAMESIZE for such syscalls. This fixes the following testsuite failure: .... tst-mqueue8 FAIL tst-mqueue8 got 1 expected 0 going to cancel mq_receive in-time in-time mq_receive cancellation succeeded going to cancel mq_receive early Didn't expect signal from child: got `Segmentation fault' Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-06-18Fix libgcc_s_resume issue with gcc 5.1Thomas Petazzoni
When built with gcc 5.1, uClibc-ng fails to build with the following issue: librt/librt_so.a(rt-unwind-resume.oS): In function `_Unwind_Resume': rt-unwind-resume.c:(.text+0x3c): undefined reference to This commit fixes the code in a way similar to what was done in glibc in commit: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=175cef4163dd60f95106cfd5f593b8a4e09d02c9 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-06-10nptl_db: fix ommitting td_ta_setconcurrencyBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-06-10init.c (__nptl_initial_report_events): New variable.Roland McGrath
(__pthread_initialize_minimal_internal): Initialize pd->report_events to that. This patch helps NPTL report TD_CREATE event, so that GDB could catch the event and update its thread_list. Link: http://lists.uclibc.org/pipermail/uclibc/2015-April/048921.html [shengyong: - original patch from glibc: commit 7d9d8bd18906fdd17364f372b160d7ab896ce909 - context adjust - update nptl_db/ChangeLog] Signed-off-by: Roland McGrath <roland@gnu.org> Signed-off-by: Sheng Yong <shengyong1@huawei.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-06-10buildsys: pregen depends on xlocaleBernhard Reutner-Fischer
pt-initfini eventually depends on xlocale Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-04-13buildsys: tweak ucontext_i.h prerequisitesBernhard Reutner-Fischer
ucontext_i.h too depends on uClibc_config.h. Update it to look like the other MANGLE generated files and tweak prereqs Fixes: make realclean ; make -j libc/misc/internals/__uClibc_main.i Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-04-12remove more of the link_warningsWaldemar Brodkorb
Only the stub warnings left for now.
2015-03-29merge uClibc git masterWaldemar Brodkorb
2015-03-26NPTL: SH: silence warningBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-03-22nptl/atfork: Hide pthread_atfork in shared versionsKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>