| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- #
- # Copyright (C) 1994-2026 Free Software Foundation, Inc.
- #
- # The GNU C Library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
- # version 2.1 of the License, or (at your option) any later version.
- # The GNU C Library is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # Lesser General Public License for more details.
- # You should have received a copy of the GNU Lesser General Public
- # License along with the GNU C Library; if not, see
- # <https://www.gnu.org/licenses/>.
- subdir := htl
- srcdir = .
- MICROKERNEL := mach
- SYSDEPS :=
- LCLHDRS :=
- libpthread-routines :=
- headers := \
- bits/cancelation.h \
- bits/pthread-np.h \
- bits/pthread.h \
- bits/pthreadtypes-arch.h \
- bits/pthreadtypes.h \
- bits/semaphore.h \
- bits/thread-shared-types.h \
- bits/types/__pthread_key.h \
- bits/types/__pthread_spinlock_t.h \
- bits/types/__pthread_t.h \
- bits/types/__thrd_t.h \
- bits/types/struct___pthread_attr.h \
- bits/types/struct___pthread_barrier.h \
- bits/types/struct___pthread_barrierattr.h \
- bits/types/struct___pthread_cond.h \
- bits/types/struct___pthread_condattr.h \
- bits/types/struct___pthread_mutex.h \
- bits/types/struct___pthread_mutexattr.h \
- bits/types/struct___pthread_once.h \
- bits/types/struct___pthread_rwlock.h \
- bits/types/struct___pthread_rwlockattr.h \
- pthread.h \
- semaphore.h \
- # headers
- distribute :=
- routines := \
- alloca_cutoff \
- cancellation \
- htlfreeres \
- pt-alloc \
- pt-attr \
- pt-attr-destroy \
- pt-attr-getdetachstate \
- pt-attr-getguardsize \
- pt-attr-getinheritsched \
- pt-attr-getschedparam \
- pt-attr-getschedpolicy \
- pt-attr-getscope \
- pt-attr-getstack \
- pt-attr-getstackaddr \
- pt-attr-getstacksize \
- pt-attr-init \
- pt-attr-setdetachstate \
- pt-attr-setguardsize \
- pt-attr-setinheritsched \
- pt-attr-setschedparam \
- pt-attr-setschedpolicy \
- pt-attr-setscope \
- pt-attr-setstack \
- pt-attr-setstackaddr \
- pt-attr-setstacksize \
- pt-barrier \
- pt-barrier-destroy \
- pt-barrier-init \
- pt-barrier-wait \
- pt-barrierattr-destroy \
- pt-barrierattr-getpshared \
- pt-barrierattr-init \
- pt-barrierattr-setpshared \
- pt-block \
- pt-block-intr \
- pt-cancel \
- pt-cleanup \
- pt-cond \
- pt-cond-brdcast \
- pt-cond-destroy \
- pt-cond-init \
- pt-cond-signal \
- pt-cond-timedwait \
- pt-cond-wait \
- pt-condattr-destroy \
- pt-condattr-getclock \
- pt-condattr-getpshared \
- pt-condattr-init \
- pt-condattr-setclock \
- pt-condattr-setpshared \
- pt-create \
- pt-dealloc \
- pt-destroy-specific \
- pt-detach \
- pt-docancel \
- pt-exit \
- pt-getattr \
- pt-getconcurrency \
- pt-getcpuclockid \
- pt-getname-np \
- pt-getschedparam \
- pt-getspecific \
- pt-hurd-cond-timedwait \
- pt-hurd-cond-wait \
- pt-init-specific \
- pt-join \
- pt-key-create \
- pt-key-delete \
- pt-kill \
- pt-machdep \
- pt-mutex-checklocked \
- pt-mutex-consistent \
- pt-mutex-destroy \
- pt-mutex-getprioceiling \
- pt-mutex-init \
- pt-mutex-lock \
- pt-mutex-setprioceiling \
- pt-mutex-timedlock \
- pt-mutex-transfer-np \
- pt-mutex-trylock \
- pt-mutex-unlock \
- pt-mutexattr-destroy \
- pt-mutexattr-getprioceiling \
- pt-mutexattr-getprotocol \
- pt-mutexattr-getpshared \
- pt-mutexattr-getrobust \
- pt-mutexattr-gettype \
- pt-mutexattr-init \
- pt-mutexattr-setprioceiling \
- pt-mutexattr-setprotocol \
- pt-mutexattr-setpshared \
- pt-mutexattr-setrobust \
- pt-mutexattr-settype \
- pt-nthreads \
- pt-once \
- pt-pthread_self \
- pt-rwlock-attr \
- pt-rwlock-destroy \
- pt-rwlock-init \
- pt-rwlock-rdlock \
- pt-rwlock-timedrdlock \
- pt-rwlock-timedwrlock \
- pt-rwlock-tryrdlock \
- pt-rwlock-trywrlock \
- pt-rwlock-unlock \
- pt-rwlock-wrlock \
- pt-rwlockattr-destroy \
- pt-rwlockattr-getpshared \
- pt-rwlockattr-init \
- pt-rwlockattr-setpshared \
- pt-self pt-equal \
- pt-setcancelstate \
- pt-setcanceltype \
- pt-setconcurrency \
- pt-setname-np \
- pt-setschedparam \
- pt-setschedprio \
- pt-setspecific \
- pt-setup \
- pt-sigmask \
- pt-sigstate \
- pt-sigstate-destroy \
- pt-sigstate-init \
- pt-spin-inlines \
- pt-stack-alloc \
- pt-startup \
- pt-sysdep \
- pt-testcancel \
- pt-thread-alloc \
- pt-thread-start \
- pt-thread-terminate \
- pt-timedblock \
- pt-timedblock-intr \
- pt-wakeup \
- pt-yield \
- sem-destroy \
- sem-getvalue \
- sem-init \
- sem-post \
- sem-timedwait \
- sem-trywait \
- sem-wait \
- sem-waitfast \
- sem_close \
- sem_open \
- sem_routines \
- sem_unlink \
- # routines
- extra-libs := libpthread
- extra-libs-others := $(extra-libs)
- install-lib := libpthread.so
- install-lib-ldscripts := libpthread_syms.a
- include ../Makeconfig
- all: # Make this the default target; it will be defined in Rules.
- subdir_install: $(inst_libdir)/libpthread2.a $(inst_libdir)/libpthread_syms.a
- # XXX: If $(inst_libdir)/libpthread2.a is installed and
- # $(inst_libdir)/libpthread is not, we can have some issues.
- .PHONY: $(inst_libdir)/libpthread.a $(inst_libdir)/libpthread_pic.a
- # XXX: These rules are a hack. But it is better than messing with
- # ../Makeconf at the moment. Note that the linker scripts
- # $(srcdir)/libpthread.a and $(srcdir)/libpthread_pic.a get overwritten
- # when building in $(srcdir) and not a separate build directory.
- $(inst_libdir)/libpthread2.a: $(inst_libdir)/libpthread.a
- mv $< $@
- $(INSTALL_DATA) $(srcdir)/libpthread.a $<
- $(inst_libdir)/libpthread2_pic.a: $(inst_libdir)/libpthread_pic.a
- mv $< $@
- $(INSTALL_DATA) $(srcdir)/libpthread_pic.a $<
- $(inst_libdir)/libpthread_syms.a: $(srcdir)/libpthread_syms.a $(+force)
- $(do-install)
- libc-link.so = $(common-objpfx)libc.so
- extra-B-pthread.so = -B$(common-objpfx)htl/
- LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
- include ../Rules
- # Make sure we link with the thread library.
- ifeq ($(build-shared),yes)
- $(addprefix $(objpfx), \
- $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
- $(tests-nolibpthread), \
- $(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
- $(objpfx)libpthread.so
- # $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
- # since otherwise libpthread.so comes before libc.so when linking.
- $(addprefix $(objpfx), $(tests-reverse)): \
- $(objpfx)../libc.so $(objpfx)libpthread.so
- $(objpfx)../libc.so: $(common-objpfx)libc.so ;
- $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(srcdir)/libpthread_syms.a $(objpfx)libpthread.a
- else
- $(addprefix $(objpfx),$(tests) $(test-srcs)): $(srcdir)/libpthread_syms.a $(objpfx)libpthread.a
- endif
|