Commit Graph

15 Commits

Author SHA1 Message Date
Paul Eggert
581c785bf3 Update copyright dates with scripts/update-copyrights
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 7061 files FOO.

I then removed trailing white space from math/tgmath.h,
support/tst-support-open-dev-null-range.c, and
sysdeps/x86_64/multiarch/strlen-vec.S, to work around the following
obscure pre-commit check failure diagnostics from Savannah.  I don't
know why I run into these diagnostics whereas others evidently do not.

remote: *** 912-#endif
remote: *** 913:
remote: *** 914-
remote: *** error: lines with trailing whitespace found
...
remote: *** error: sysdeps/unix/sysv/linux/statx_cp.c: trailing lines
2022-01-01 11:40:24 -08:00
Paul Eggert
2b778ceb40 Update copyright dates with scripts/update-copyrights
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
2021-01-02 12:17:34 -08:00
Samuel Thibault
c8f9421298 htl: Add pshared semaphore support
The implementation is extremely similar to the nptl implementation, but
with slight differences in the futex interface. This fixes some of BZ
25521.
2020-12-16 01:58:33 +01:00
Florian Weimer
1fb7dc751e htl: Add wrapper header for <semaphore.h> with hidden __sem_post
This is required to avoid a check-localplt failure due to a
sem_post call through the PLT.

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
2020-06-24 13:38:08 +02:00
Samuel Thibault
1b90d52df9 htl: Fix case when sem_*wait is canceled while holding a token
* sysdeps/htl/sem-timedwait.c (struct cancel_ctx): Add cancel_wake
field.
(cancel_hook): When unblocking thread, set cancel_wake field to 1.
(__sem_timedwait_internal): Set cancel_wake field to 0 by default.
On cancellation exit, check whether we hold a token, to be put back.
2020-06-24 02:20:42 +02:00
Samuel Thibault
eca16db02d htl: Make sem_*wait cancellations points
By aligning its implementation on pthread_cond_wait.

* sysdeps/htl/sem-timedwait.c (cancel_ctx): New structure.
(cancel_hook): New function.
(__sem_timedwait_internal): Check for cancellation and register
cancellation hook that wakes the thread up, and check again for
cancellation on exit.
* nptl/tst-cancel13.c, nptl/tst-cancelx13.c: Move to...
* sysdeps/pthread/: ... here.
* nptl/Makefile: Move corresponding references and rules to...
* sysdeps/pthread/Makefile: ... here.
2020-06-24 01:19:49 +02:00
Samuel Thibault
be22a151f3 htl: Add sem_clockwait support
* sysdeps/htl/sem-timedwait.c (__sem_timedwait_internal): Add clock_id
parameter instead of hardcoding CLOCK_REALTIME.
(__sem_clockwait): New function.
(sem_clockwait): New weak alias.
* sysdeps/htl/sem-wait.c (__sem_timedwait_internal): Update declaration.
(__sem_wait): Update call to __sem_timedwait_internal.
* htl/Versions (GLIBC_2.32): Add sem_clockwait.
* sysdeps/mach/hurd/i386/libpthread.abilist (sem_clockwait): Add symbol.
* nptl/Makefile (tests): Move tst-sem5 to...
* sysdeps/pthread/Makefile (tests): ... here.
2020-06-07 03:14:49 +02:00
Samuel Thibault
8ba6ad703c hurd: Add __pthread_spin_wait and use it
900778283a ("htl: make pthread_spin_lock really spin") made
pthread_spin_lock really spin and not block, but the current users of
__pthread_spin_lock were assuming that it blocks, i.e. they use it as a
lightweight mutex fitting in just one int.

__pthread_spin_wait provides that support back.
2020-02-11 00:32:44 +01:00
Samuel Thibault
e9644c20ce htl: Make sem_wait/sem_timedwait interruptible 2020-02-10 01:03:54 +00:00
Joseph Myers
d614a75396 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Lukasz Majewski
4812365660 time: Introduce function to check correctness of nanoseconds value
The valid_nanoseconds () static inline function has been introduced to
check if nanoseconds value is in the correct range - greater or equal to
zero and less than 1000000000.

The explicit #include <time.h> has been added to files where it was
missing.

The __syscall_slong_t type for ns has been used to avoid issues on x32.

Tested with:
- scripts/build-many-glibcs.py
- make PARALLELMFLAGS="-j12" && make PARALLELMFLAGS="-j12" xcheck on x86_64
2019-10-27 21:49:25 +01:00
Paul Eggert
5a82c74822 Prefer https to http for gnu.org and fsf.org URLs
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
2019-09-07 02:43:31 -07:00
Joseph Myers
04277e02d7 Update copyright dates with scripts/update-copyrights.
* 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.
2019-01-01 00:11:28 +00:00
Samuel Thibault
ad2b41bfd8 hurd: Bump remaining LGPL2+ htl licences to LGPL 2.1+
* htl/Makefile: Bump licence to LGPL 2.1+.
	* htl/alloca_cutoff.c: Likewise.
	* htl/cthreads-compat.c: Likewise.
	* htl/lockfile.c: Likewise.
	* htl/pt-alloc.c: Likewise.
	* htl/pt-cancel.c: Likewise.
	* htl/pt-cleanup.c: Likewise.
	* htl/pt-create.c: Likewise.
	* htl/pt-dealloc.c: Likewise.
	* htl/pt-detach.c: Likewise.
	* htl/pt-exit.c: Likewise.
	* htl/pt-getattr.c: Likewise.
	* htl/pt-initialize.c: Likewise.
	* htl/pt-internal.h: Likewise.
	* htl/pt-join.c: Likewise.
	* htl/pt-self.c: Likewise.
	* htl/pt-setcancelstate.c: Likewise.
	* htl/pt-setcanceltype.c: Likewise.
	* htl/pt-sigmask.c: Likewise.
	* htl/pt-spin-inlines.c: Likewise.
	* htl/pt-testcancel.c: Likewise.
	* htl/pt-yield.c: Likewise.
	* htl/tests/test-1.c: Likewise.
	* htl/tests/test-10.c: Likewise.
	* htl/tests/test-11.c: Likewise.
	* htl/tests/test-12.c: Likewise.
	* htl/tests/test-13.c: Likewise.
	* htl/tests/test-14.c: Likewise.
	* htl/tests/test-15.c: Likewise.
	* htl/tests/test-16.c: Likewise.
	* htl/tests/test-17.c: Likewise.
	* htl/tests/test-2.c: Likewise.
	* htl/tests/test-3.c: Likewise.
	* htl/tests/test-4.c: Likewise.
	* htl/tests/test-5.c: Likewise.
	* htl/tests/test-6.c: Likewise.
	* htl/tests/test-7.c: Likewise.
	* htl/tests/test-8.c: Likewise.
	* htl/tests/test-9.c: Likewise.
	* htl/tests/test-__pthread_destroy_specific-skip.c: Likewise.
	* sysdeps/htl/bits/cancelation.h: Likewise.
	* sysdeps/htl/bits/pthread-np.h: Likewise.
	* sysdeps/htl/bits/pthread.h: Likewise.
	* sysdeps/htl/bits/pthreadtypes.h: Likewise.
	* sysdeps/htl/bits/semaphore.h: Likewise.
	* sysdeps/htl/bits/types/__pthread_key.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_attr.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_barrier.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_barrierattr.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_cond.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_condattr.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_mutex.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_mutexattr.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_once.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_rwlock.h: Likewise.
	* sysdeps/htl/bits/types/struct___pthread_rwlockattr.h: Likewise.
	* sysdeps/htl/old_pt-atfork.c: Likewise.
	* sysdeps/htl/pt-atfork.c: Likewise.
	* sysdeps/htl/pt-attr-destroy.c: Likewise.
	* sysdeps/htl/pt-attr-getdetachstate.c: Likewise.
	* sysdeps/htl/pt-attr-getguardsize.c: Likewise.
	* sysdeps/htl/pt-attr-getinheritsched.c: Likewise.
	* sysdeps/htl/pt-attr-getschedparam.c: Likewise.
	* sysdeps/htl/pt-attr-getschedpolicy.c: Likewise.
	* sysdeps/htl/pt-attr-getscope.c: Likewise.
	* sysdeps/htl/pt-attr-getstack.c: Likewise.
	* sysdeps/htl/pt-attr-getstackaddr.c: Likewise.
	* sysdeps/htl/pt-attr-getstacksize.c: Likewise.
	* sysdeps/htl/pt-attr-init.c: Likewise.
	* sysdeps/htl/pt-attr-setdetachstate.c: Likewise.
	* sysdeps/htl/pt-attr-setguardsize.c: Likewise.
	* sysdeps/htl/pt-attr-setinheritsched.c: Likewise.
	* sysdeps/htl/pt-attr-setschedparam.c: Likewise.
	* sysdeps/htl/pt-attr-setschedpolicy.c: Likewise.
	* sysdeps/htl/pt-attr-setscope.c: Likewise.
	* sysdeps/htl/pt-attr-setstack.c: Likewise.
	* sysdeps/htl/pt-attr-setstackaddr.c: Likewise.
	* sysdeps/htl/pt-attr-setstacksize.c: Likewise.
	* sysdeps/htl/pt-attr.c: Likewise.
	* sysdeps/htl/pt-barrier-destroy.c: Likewise.
	* sysdeps/htl/pt-barrier-init.c: Likewise.
	* sysdeps/htl/pt-barrier-wait.c: Likewise.
	* sysdeps/htl/pt-barrier.c: Likewise.
	* sysdeps/htl/pt-barrierattr-destroy.c: Likewise.
	* sysdeps/htl/pt-barrierattr-getpshared.c: Likewise.
	* sysdeps/htl/pt-barrierattr-init.c: Likewise.
	* sysdeps/htl/pt-barrierattr-setpshared.c: Likewise.
	* sysdeps/htl/pt-cond-brdcast.c: Likewise.
	* sysdeps/htl/pt-cond-destroy.c: Likewise.
	* sysdeps/htl/pt-cond-init.c: Likewise.
	* sysdeps/htl/pt-cond-signal.c: Likewise.
	* sysdeps/htl/pt-cond-timedwait.c: Likewise.
	* sysdeps/htl/pt-cond-wait.c: Likewise.
	* sysdeps/htl/pt-cond.c: Likewise.
	* sysdeps/htl/pt-condattr-destroy.c: Likewise.
	* sysdeps/htl/pt-condattr-getclock.c: Likewise.
	* sysdeps/htl/pt-condattr-getpshared.c: Likewise.
	* sysdeps/htl/pt-condattr-init.c: Likewise.
	* sysdeps/htl/pt-condattr-setclock.c: Likewise.
	* sysdeps/htl/pt-condattr-setpshared.c: Likewise.
	* sysdeps/htl/pt-destroy-specific.c: Likewise.
	* sysdeps/htl/pt-equal.c: Likewise.
	* sysdeps/htl/pt-getconcurrency.c: Likewise.
	* sysdeps/htl/pt-getcpuclockid.c: Likewise.
	* sysdeps/htl/pt-getschedparam.c: Likewise.
	* sysdeps/htl/pt-getspecific.c: Likewise.
	* sysdeps/htl/pt-init-specific.c: Likewise.
	* sysdeps/htl/pt-key-create.c: Likewise.
	* sysdeps/htl/pt-key-delete.c: Likewise.
	* sysdeps/htl/pt-key.h: Likewise.
	* sysdeps/htl/pt-mutex-destroy.c: Likewise.
	* sysdeps/htl/pt-mutex-getprioceiling.c: Likewise.
	* sysdeps/htl/pt-mutex-init.c: Likewise.
	* sysdeps/htl/pt-mutex-lock.c: Likewise.
	* sysdeps/htl/pt-mutex-setprioceiling.c: Likewise.
	* sysdeps/htl/pt-mutex-timedlock.c: Likewise.
	* sysdeps/htl/pt-mutex-trylock.c: Likewise.
	* sysdeps/htl/pt-mutex-unlock.c: Likewise.
	* sysdeps/htl/pt-mutexattr-destroy.c: Likewise.
	* sysdeps/htl/pt-mutexattr-getprioceiling.c: Likewise.
	* sysdeps/htl/pt-mutexattr-getprotocol.c: Likewise.
	* sysdeps/htl/pt-mutexattr-getpshared.c: Likewise.
	* sysdeps/htl/pt-mutexattr-gettype.c: Likewise.
	* sysdeps/htl/pt-mutexattr-init.c: Likewise.
	* sysdeps/htl/pt-mutexattr-setprioceiling.c: Likewise.
	* sysdeps/htl/pt-mutexattr-setprotocol.c: Likewise.
	* sysdeps/htl/pt-mutexattr-setpshared.c: Likewise.
	* sysdeps/htl/pt-mutexattr-settype.c: Likewise.
	* sysdeps/htl/pt-mutexattr.c: Likewise.
	* sysdeps/htl/pt-once.c: Likewise.
	* sysdeps/htl/pt-rwlock-attr.c: Likewise.
	* sysdeps/htl/pt-rwlock-destroy.c: Likewise.
	* sysdeps/htl/pt-rwlock-init.c: Likewise.
	* sysdeps/htl/pt-rwlock-rdlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-timedrdlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-timedwrlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-tryrdlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-trywrlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-unlock.c: Likewise.
	* sysdeps/htl/pt-rwlock-wrlock.c: Likewise.
	* sysdeps/htl/pt-rwlockattr-destroy.c: Likewise.
	* sysdeps/htl/pt-rwlockattr-getpshared.c: Likewise.
	* sysdeps/htl/pt-rwlockattr-init.c: Likewise.
	* sysdeps/htl/pt-rwlockattr-setpshared.c: Likewise.
	* sysdeps/htl/pt-setconcurrency.c: Likewise.
	* sysdeps/htl/pt-setschedparam.c: Likewise.
	* sysdeps/htl/pt-setschedprio.c: Likewise.
	* sysdeps/htl/pt-setspecific.c: Likewise.
	* sysdeps/htl/pt-spin.c: Likewise.
	* sysdeps/htl/pt-startup.c: Likewise.
	* sysdeps/htl/pthread.h: Likewise.
	* sysdeps/htl/sem-close.c: Likewise.
	* sysdeps/htl/sem-destroy.c: Likewise.
	* sysdeps/htl/sem-getvalue.c: Likewise.
	* sysdeps/htl/sem-init.c: Likewise.
	* sysdeps/htl/sem-open.c: Likewise.
	* sysdeps/htl/sem-post.c: Likewise.
	* sysdeps/htl/sem-timedwait.c: Likewise.
	* sysdeps/htl/sem-trywait.c: Likewise.
	* sysdeps/htl/sem-unlink.c: Likewise.
	* sysdeps/htl/sem-wait.c: Likewise.
	* sysdeps/hurd/htl/pt-kill.c: Likewise.
	* sysdeps/i386/htl/pt-machdep.h: Likewise.
	* sysdeps/mach/htl/pt-block.c: Likewise.
	* sysdeps/mach/htl/pt-spin.c: Likewise.
	* sysdeps/mach/htl/pt-stack-alloc.c: Likewise.
	* sysdeps/mach/htl/pt-thread-alloc.c: Likewise.
	* sysdeps/mach/htl/pt-thread-start.c: Likewise.
	* sysdeps/mach/htl/pt-thread-terminate.c: Likewise.
	* sysdeps/mach/htl/pt-timedblock.c: Likewise.
	* sysdeps/mach/htl/pt-wakeup.c: Likewise.
	* sysdeps/mach/hurd/htl/bits/pthread-np.h: Likewise.
	* sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h: Likewise.
	* sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-attr-setstacksize.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-docancel.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-consistent.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-destroy.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-init.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-lock.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-timedlock.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-trylock.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex-unlock.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutex.h: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-init.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-mutexattr-settype.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-sigstate-destroy.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-sigstate-init.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-sigstate.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-sysdep.c: Likewise.
	* sysdeps/mach/hurd/htl/pt-sysdep.h: Likewise.
	* sysdeps/mach/hurd/i386/htl/pt-machdep.c: Likewise.
	* sysdeps/mach/hurd/i386/htl/pt-setup.c: Likewise.
2018-04-02 16:37:36 +02:00
Samuel Thibault
33574c17ee hurd: Add hurd thread library
Contributed by

Agustina Arzille <avarzille@riseup.net>
Amos Jeffries <squid3@treenet.co.nz>
David Michael <fedora.dm0@gmail.com>
Marco Gerards <marco@gnu.org>
Marcus Brinkmann <marcus@gnu.org>
Neal H. Walfield <neal@gnu.org>
Pino Toscano <toscano.pino@tiscali.it>
Richard Braun <rbraun@sceen.net>
Roland McGrath <roland@gnu.org>
Samuel Thibault <samuel.thibault@ens-lyon.org>
Thomas DiModica <ricinwich@yahoo.com>
Thomas Schwinge <tschwinge@gnu.org>

	* htl: New directory.
	* sysdeps/htl: New directory.
	* sysdeps/hurd/htl: New directory.
	* sysdeps/i386/htl: New directory.
	* sysdeps/mach/htl: New directory.
	* sysdeps/mach/hurd/htl: New directory.
	* sysdeps/mach/hurd/i386/htl: New directory.
	* nscd/Depend, resolv/Depend, rt/Depend: Add htl dependency.
	* sysdeps/mach/hurd/i386/Implies: Add mach/hurd/i386/htl imply.
	* sysdeps/mach/hurd/i386/libpthread.abilist: New file.
2018-04-02 01:44:14 +02:00