about summary refs log tree commit diff
path: root/nptl/unwind.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove "Contributed by" linesSiddhesh Poyarekar2021-09-031-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | We stopped adding "Contributed by" or similar lines in sources in 2012 in favour of git logs and keeping the Contributors section of the glibc manual up to date. Removing these lines makes the license header a bit more consistent across files and also removes the possibility of error in attribution when license blocks or files are copied across since the contributed-by lines don't actually reflect reality in those cases. Move all "Contributed by" and similar lines (Written by, Test by, etc.) into a new file CONTRIBUTED-BY to retain record of these contributions. These contributors are also mentioned in manual/contrib.texi, so we just maintain this additional record as a courtesy to the earlier developers. The following scripts were used to filter a list of files to edit in place and to clean up the CONTRIBUTED-BY file respectively. These were not added to the glibc sources because they're not expected to be of any use in future given that this is a one time task: https://gist.github.com/siddhesh/b5ecac94eabfd72ed2916d6d8157e7dc https://gist.github.com/siddhesh/15ea1f5e435ace9774f485030695ee02 Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* nptl: Move __pthread_unwind_next into libcFlorian Weimer2021-04-211-4/+9
| | | | | | | | | | | | | | | | | | | It's necessary to stub out __libc_disable_asynccancel and __libc_enable_asynccancel via rtld-stubbed-symbols because the new direct references to the unwinder result in symbol conflicts when the rtld exception handling from libc is linked in during the construction of librtld.map. unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs the functions that were previously only used in libpthread. The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are no longer needed, so switch them to hidden symbols. The symbol __pthread_unwind_next has been moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
* Update copyright dates with scripts/update-copyrightsPaul Eggert2021-01-021-1/+1
| | | | | | | | | | | | | | | | I used these shell commands: ../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright (cd ../glibc && git commit -am"[this commit message]") and then ignored the output, which consisted lines saying "FOO: warning: copyright statement not found" for each of 6694 files FOO. I then removed trailing white space from benchtests/bench-pthread-locks.c and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this diagnostic from Savannah: remote: *** pre-commit check failed ... remote: *** error: lines with trailing whitespace found remote: error: hook declined to update refs/heads/master
* Disable spurious -Wstringop-overflow for setjmp/longjmp (bug 26647)Joseph Myers2020-10-301-0/+10
| | | | | | | | | | | | | | | | | Building glibc with GCC 11 fails with (among other warnings) spurious -Wstringop-overflow warnings from calls to setjmp and longjmp with a pointer to a pthread_unwind_buf that is smaller than jmp_buf. As discussed in bug 26647, the warning in libc-start.c is a false positive, because setjmp and longjmp do not access anything (the signal mask) beyond the common prefix of the two structures, so this patch disables the warning for that call to setjmp, as well as for two calls in NPTL code that produce the same warning and look like false positives for the same reason. Tested with build-many-glibcs.py for arm-linux-gnueabi, where this allows the build to get further. Reviewed-by: DJ Delorie <dj@redhat.com>
* Update copyright dates with scripts/update-copyrights.Joseph Myers2020-01-011-1/+1
|
* Prefer https to http for gnu.org and fsf.org URLsPaul Eggert2019-09-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, change sources.redhat.com to sourceware.org. This patch was automatically generated by running the following shell script, which uses GNU sed, and which avoids modifying files imported from upstream: sed -ri ' s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g ' \ $(find $(git ls-files) -prune -type f \ ! -name '*.po' \ ! -name 'ChangeLog*' \ ! -path COPYING ! -path COPYING.LIB \ ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \ ! -path manual/texinfo.tex ! -path scripts/config.guess \ ! -path scripts/config.sub ! -path scripts/install-sh \ ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \ ! -path INSTALL ! -path locale/programs/charmap-kw.h \ ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \ ! '(' -name configure \ -execdir test -f configure.ac -o -f configure.in ';' ')' \ ! '(' -name preconfigure \ -execdir test -f preconfigure.ac ';' ')' \ -print) and then by running 'make dist-prepare' to regenerate files built from the altered files, and then executing the following to cleanup: chmod a+x sysdeps/unix/sysv/linux/riscv/configure # Omit irrelevant whitespace and comment-only changes, # perhaps from a slightly-different Autoconf version. git checkout -f \ sysdeps/csky/configure \ sysdeps/hppa/configure \ sysdeps/riscv/configure \ sysdeps/unix/sysv/linux/csky/configure # Omit changes that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines git checkout -f \ sysdeps/powerpc/powerpc64/ppc-mcount.S \ sysdeps/unix/sysv/linux/s390/s390-64/syscall.S # Omit change that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
* Update copyright dates with scripts/update-copyrights.Joseph Myers2019-01-011-1/+1
| | | | | | | * All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2018-01-011-1/+1
| | | | | | | * All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2017-01-011-1/+1
|
* Update copyright dates with scripts/update-copyrights.Joseph Myers2016-01-041-1/+1
|
* Remove sysdeps/nptl/configure.ac.Joseph Myers2015-10-271-34/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | sysdeps/nptl/configure.ac tests for forced unwind support and the C cleanup attribute, giving errors if either is unsupported. It does nothing beyond running those two tests. Both the attribute, and _Unwind_GetCFA which is used in the forced unwind test, were added in GCC 3.3. Thus these tests are long obsolete, and this patch removes the configure fragment running them, along with associated conditionals. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * sysdeps/nptl/configure.ac: Remove file. * sysdeps/nptl/configure: Remove generated file. * configure.ac (libc_cv_forced_unwind): Do not substitute. * configure: Regenerated. * config.h.in (HAVE_FORCED_UNWIND): Remove #undef. * config.make.in (have-forced-unwind): Remove variable. * nptl/Makefile [$(have-forced-unwind) = yes]: Make code unconditional. * nptl/descr.h [HAVE_FORCED_UNWIND]: Likewise. * nptl/unwind.c [HAVE_FORCED_UNWIND]: Likewise. (__pthread_unwind) [!HAVE_FORCED_UNWIND]: Remove conditional code. * nptl/version.c [HAVE_FORCED_UNWIND]: Make code unconditional. * sysdeps/nptl/Makefile [$(have-forced-unwind) = yes]: Make code unconditional.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2015-01-021-1/+1
|
* Revert "Use pragmas rather than makefiles for necessary options for unwind ↵Roland McGrath2014-12-161-2/+0
| | | | | | code." This reverts commit c324fcfe75c3976ae0b16943df00710e1d0d74f7.
* Use pragmas rather than makefiles for necessary options for unwind code.Roland McGrath2014-12-161-0/+2
|
* NPTL: Use __libc_fatal in unwind.c.Roland McGrath2014-11-201-5/+2
|
* Use glibc_likely instead __builtin_expect.Ondřej Bílka2014-02-101-1/+1
|
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-011-1/+1
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-021-1/+1
|
* Cast to __intptr_t before casting pointer to int64H.J. Lu2012-11-261-1/+1
|
* Cast _Unwind_GetCFA return to _Unwind_Ptr firstH.J. Lu2012-03-191-1/+1
|
* Replace FSF snail mail address with URLs.Paul Eggert2012-02-091-3/+2
|
* * sysdeps/mach/hurd/ifreq.c: Add missing #includes.Roland McGrath2005-12-211-2/+2
|
* (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper2004-12-221-2/+2
|
* 2.5-18.1Jakub Jelinek2007-07-121-2/+2
|
* Update.Ulrich Drepper2004-09-021-4/+4
| | | | | | | | | | | | * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. * sysdeps/i386/jmpbuf-unwind.h: Likewise * sysdeps/powerpc/jmpbuf-unwind.h: Likewise. * sysdeps/s390/jmpbuf-unwind.h: Likewise. * sysdeps/sh/jmpbuf-unwind.h: Likewise. * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise. * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise. * sysdeps/x86_64/jmpbuf-unwind.h: Likewise. * unwind.c: Use it.
* Update.Ulrich Drepper2003-12-191-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-18 Ulrich Drepper <drepper@redhat.com> * tst-eintr1.c: Better error messages. * Makefile (tests): Add tst-eintr2. * tst-eintr2.c: New file. 2003-12-18 Jakub Jelinek <jakub@redhat.com> * Makefile (tests): Add tst-cancel21 and tst-cancelx21. (CFLAGS-tst-cancelx21.c): Set. * tst-cancel21.c: New test. * tst-cancelx21.c: New test. * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each comparison operand. (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations. * pt-longjmp.c: Include jmpbuf-unwind.h. (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of _JMPBUF_UNWINDS. Adjust compared pointers. * init.c (__pthread_initialize_minimal_internal): Initialize pd->stackblock_size. * sysdeps/pthread/jmpbuf-unwind.h: Removed. * sysdeps/alpha/jmpbuf-unwind.h: New file. * sysdeps/i386/jmpbuf-unwind.h: New file. * sysdeps/powerpc/jmpbuf-unwind.h: New file. * sysdeps/s390/jmpbuf-unwind.h: New file. * sysdeps/sh/jmpbuf-unwind.h: New file. * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file. * sysdeps/x86_64/jmpbuf-unwind.h: New file. * sysdeps/ia64/jmpbuf-unwind.h: Include stdint.h. (_JMPBUF_CFA_UNWINDS): Remove. (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define. 2003-12-12 Jakub Jelinek <jakub@redhat.com> * Makefile (tests): Add tst-cancel20 and tst-cancelx20. (CFLAGS-tst-cancelx20.c): Set. * tst-cancel20.c: New test. * tst-cancelx20.c: New test.
* Update.Ulrich Drepper2003-11-061-8/+50
| | | | | | | | | | | | | | | | 2003-11-05 Jakub Jelinek <jakub@redhat.com> * unwind.c (FRAME_LEFT): Define. (unwind_stop): Handle old style cleanups here. (__pthread_unwind): Handle old style cleanups only if !HAVE_FORCED_UNWIND. * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4. (CFLAGS-tst-cleanupx4.c): Add -fexceptions. ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o. ($(objpfx)tst-cleanupx4): Likewise. * tst-cleanup4.c: New test. * tst-cleanup4aux.c: New. * tst-cleanupx4.c: New test.
* Update.Ulrich Drepper2003-09-041-3/+2
| | | | | | | | 22003-09-04 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/unwind.h (_Unwind_GetBSP): Add prototype. 003-09-03 Ulrich Drepper <drepper@redhat.com>
* Update.Ulrich Drepper2003-07-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-07-31 Jakub Jelinek <jakub@redhat.com> * dlfcn/dlerror.c (once): New. (dlerror): Call __libc_once. (_dlerror_run): Remove once. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext): Sync with 2.5.7 and 2.5.73 kernel changes. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * dlfcn/eval.c (funcall): Add noinline attribute to shut up warnings. * elf/rtld.c (dl_main): Cast ElfW(Addr) arguments with %Zx/%Zd formats to size_t. * elf/dl-lookup.c (_dl_debug_bindings): Likewise. * elf/tst-tls6.c (do_test): Use %zd format for l_tls_modid. * elf/tst-tls8.c (do_test): Use %zd format for modid1 and modid2. * gmon/tst-sprofil.c (main): Add parens to shut up warning. * iconv/tst-iconv3.c (main): Use %td instead of %zd for pointer difference argument. * stdio-common/tst-wc-printf.c (main): Cast arguments with %C format to wint_t. * stdlib/tst-limits.c (main): For WORD_BIT and LONG_BIT, use %d format and cast expected value to int. * sysdeps/generic/libc-start.c (STATIC): Add __attribute__((always_inline) if LIBC_START_MAIN is already defined. * sysdeps/powerpc/fpu/w_sqrt.c (a_nan, a_inf): Change from uint32_t to ieee_float_shape_type. (__sqrt): Avoid type punning. * sysdeps/powerpc/fpu/w_sqrtf.c (a_nan, a_inf): Change from uint32_t to ieee_float_shape_type. (__sqrtf): Avoid type punning. * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Don't define refsym if in dl-conflict.c. * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/unix/sysv/linux/i386/semctl.c (union semun): Add __old_buf. (__new_semctl): Shut up warning. * sysdeps/unix/sysv/linux/semctl.c (union semun): Add __old_buf. (__new_semctl): Shut up warning. * sysdeps/unix/sysv/linux/shmctl.c (__new_shmctl): Wrap long lines. Change old into union of __old_shmid_ds and __old_shminfo structs. Adjust all users. * wcsmbs/wcsmbs-tst1.c (main): Cast arguments with %C format to wint_t. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/utimes.c (__utimes): Fix actime and modtime computation. * sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise. * sysdeps/posix/utimes.c (__utimes): Likewise.
* Update.Ulrich Drepper2003-07-081-0/+1
| | | | | | | | | | | | | | | | | | | | 2003-07-08 Jakub Jelinek <jakub@redhat.com> * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel, __pthread_unregister_cancel): Add prototypes and hidden_proto. * unwind.c (__pthread_unwind_next): Add hidden_def. * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel): Likewise. * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait): Use HIDDEN_JUMPTARGET to jump to __pthread_unwind. * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use HIDDEN_JUMPTARGET to call __pthread_register_cancel, __pthread_unregister_cancel and __pthread_unwind_next.
* Update.Ulrich Drepper2003-07-031-0/+1
| | | | | | | | | | | 2003-07-03 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove definition. * pthreadP.h (__pthread_unwind): Add hidden_proto if used in libpthread compilation. * unwind.c (__pthread_unwind): Add hidden_def. * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
* Update.Ulrich Drepper2003-05-311-1/+1
| | | | | | | | | 2003-05-31 Ulrich Drepper <drepper@redhat.com> * libio/fileops.c (_IO_file_open): Don't mark as inline. * sysdeps/ia64/elf/initfini.c ((gmon_initializer): Mark with attribute used.
* Update.Ulrich Drepper2003-05-161-0/+1
| | | | | | 2003-05-16 Ulrich Drepper <drepper@redhat.com> * unwind.c: Include <unistd.h>.
* (unwind_cleanup): Print error message and then abort. This function must ↵Ulrich Drepper2003-05-091-1/+7
| | | | never be reached.
* Update.Ulrich Drepper2003-04-121-13/+17
| | | | * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
* Update.Ulrich Drepper2003-04-121-0/+112
2003-04-11 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/libc-start.c: Cleanup MAIN_AUXVEC_ARG handling. Remove HAVE_CANCELBUF code. Replace with code using the new initializers for unwind-based cleanup handling. * sysdeps/generic/unwind.h: Update from latest gcc version. * sysdeps/unix/sysv/linux/i386/sysdep.h: Define labels in a few places to allow unwind data generation. * sysdeps/i386/bits/setjmp.h: Allow file to be included multiple times. * sysdeps/x86_64/bits/setjmp.h: Likewise. * sysdeps/sh/bits/setjmp.h: Likewise. * sysdeps/powerpc/bits/setjmp.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise. * sysdeps/alpha/bits/setjmp.h: Likewise.