]> git.ipfire.org Git - thirdparty/glibc.git/blame - htl/Makefile
htl: move pthread_attr_getinheritsched into libc
[thirdparty/glibc.git] / htl / Makefile
CommitLineData
33574c17 1#
6d7e8eda 2# Copyright (C) 1994-2023 Free Software Foundation, Inc.
33574c17 3#
ad2b41bf
ST
4# The GNU C Library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8
9# The GNU C Library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
33574c17 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ad2b41bf
ST
12# Lesser General Public License for more details.
13
14# You should have received a copy of the GNU Lesser General Public
15# License along with the GNU C Library; if not, see
5a82c748 16# <https://www.gnu.org/licenses/>.
33574c17
ST
17
18subdir := htl
19
20srcdir = .
21
22MICROKERNEL := mach
23SYSDEPS := lockfile
24
25LCLHDRS :=
26
27libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \
62cf5d2b 28 pt-attr-getguardsize \
79de1a0c 29 pt-attr-getschedpolicy pt-attr-getscope \
33574c17
ST
30 pt-attr-getstack pt-attr-getstackaddr pt-attr-getstacksize \
31 pt-attr-init pt-attr-setdetachstate pt-attr-setguardsize \
32 pt-attr-setinheritsched pt-attr-setschedparam \
33 pt-attr-setschedpolicy pt-attr-setscope pt-attr-setstack \
34 pt-attr-setstackaddr pt-attr-setstacksize \
35 \
36 pt-barrier-destroy pt-barrier-init pt-barrier-wait \
37 pt-barrier pt-barrierattr-destroy pt-barrierattr-init \
38 pt-barrierattr-getpshared pt-barrierattr-setpshared \
39 \
40 pt-destroy-specific pt-init-specific \
41 pt-key-create pt-key-delete \
42 pt-getspecific pt-setspecific \
43 \
44 pt-once \
45 \
46 pt-alloc \
47 pt-create \
48 pt-getattr \
33574c17
ST
49 pt-dealloc \
50 pt-detach \
51 pt-exit \
52 pt-initialize \
53 pt-join \
33574c17
ST
54 pt-sigmask \
55 pt-spin-inlines \
56 pt-cleanup \
57 pt-setcancelstate \
58 pt-setcanceltype \
59 pt-testcancel \
60 pt-cancel \
61 \
33574c17
ST
62 pt-mutexattr-destroy pt-mutexattr-init \
63 pt-mutexattr-getprioceiling pt-mutexattr-getprotocol \
64 pt-mutexattr-getpshared pt-mutexattr-gettype \
65 pt-mutexattr-setprioceiling pt-mutexattr-setprotocol \
66 pt-mutexattr-setpshared pt-mutexattr-settype \
67 pt-mutexattr-getrobust pt-mutexattr-setrobust \
68 \
cd94860c 69 pt-mutex-init pt-mutex-destroy pt-mutex-checklocked \
33574c17
ST
70 pt-mutex-lock pt-mutex-trylock pt-mutex-timedlock \
71 pt-mutex-unlock \
72 pt-mutex-transfer-np \
73 pt-mutex-getprioceiling pt-mutex-setprioceiling \
74 pt-mutex-consistent \
75 \
76 pt-rwlock-attr \
77 pt-rwlockattr-init pt-rwlockattr-destroy \
78 pt-rwlockattr-getpshared pt-rwlockattr-setpshared \
79 \
80 pt-rwlock-init pt-rwlock-destroy \
81 pt-rwlock-rdlock pt-rwlock-tryrdlock \
82 pt-rwlock-trywrlock pt-rwlock-wrlock \
83 pt-rwlock-timedrdlock pt-rwlock-timedwrlock \
84 pt-rwlock-unlock \
85 \
86 pt-cond \
87 pt-condattr-init pt-condattr-destroy \
88 pt-condattr-getclock pt-condattr-getpshared \
89 pt-condattr-setclock pt-condattr-setpshared \
90 \
91 pt-cond-destroy pt-cond-init \
92 pt-cond-brdcast \
93 pt-cond-signal \
94 pt-cond-wait \
95 pt-cond-timedwait \
96 pt-hurd-cond-wait \
97 pt-hurd-cond-timedwait \
98 \
99 pt-stack-alloc \
100 pt-thread-alloc \
101 pt-thread-start \
102 pt-thread-terminate \
103 pt-startup \
104 \
105 pt-getconcurrency pt-setconcurrency \
106 \
107 pt-block \
108 pt-timedblock \
e9644c20
ST
109 pt-block-intr \
110 pt-timedblock-intr \
33574c17
ST
111 pt-wakeup \
112 pt-docancel \
113 pt-sysdep \
114 pt-setup \
115 pt-machdep \
116 pt-spin \
117 \
118 pt-sigstate-init \
119 pt-sigstate-destroy \
120 pt-sigstate \
121 \
33574c17
ST
122 pt-kill \
123 pt-getcpuclockid \
124 \
3caa6362 125 pt-setschedprio \
33574c17
ST
126 pt-yield \
127 \
749cd2ca
ST
128 sem_close sem-destroy sem-getvalue sem-init sem_open \
129 sem-post sem-timedwait sem-trywait sem_unlink \
c8f94212 130 sem-wait sem-waitfast \
da4aea0b 131 sem_routines \
33574c17 132 \
59b7fe99 133 cancellation \
33574c17 134 cthreads-compat \
25c084e0 135 herrno \
33574c17
ST
136 $(SYSDEPS)
137
33574c17
ST
138headers := \
139 pthread.h \
140 semaphore.h \
141 \
142 bits/pthread.h \
143 bits/pthread-np.h \
144 bits/pthreadtypes.h \
145 bits/pthreadtypes-arch.h \
146 bits/thread-shared-types.h \
147 bits/types/struct___pthread_mutex.h \
148 bits/types/struct___pthread_cond.h \
149 bits/types/struct___pthread_condattr.h \
150 bits/types/__pthread_spinlock_t.h \
151 bits/spin-lock-inline.h \
152 bits/cancelation.h \
153 bits/types/struct___pthread_attr.h \
154 bits/types/struct___pthread_barrierattr.h \
155 bits/types/struct___pthread_barrier.h \
156 bits/types/__pthread_key.h \
157 bits/types/struct___pthread_once.h \
158 bits/types/struct___pthread_mutexattr.h \
159 bits/types/struct___pthread_rwlock.h \
160 bits/types/struct___pthread_rwlockattr.h \
65d1407d
ST
161 bits/types/__pthread_t.h \
162 bits/types/__thrd_t.h \
33574c17
ST
163 bits/semaphore.h
164
165distribute :=
166
a1a942fb 167routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads pt-pthread_self pt-self pt-equal \
62cf5d2b 168 pt-getschedparam pt-setschedparam pt-attr-getschedparam pt-attr-getinheritsched
33574c17
ST
169shared-only-routines = forward
170
171extra-libs := libpthread
172extra-libs-others := $(extra-libs)
173install-lib := libpthread.so
bc9cf8fb 174install-lib-ldscripts := libpthread_syms.a
33574c17
ST
175
176include ../Makeconfig
177
178CFLAGS-lockfile.c = -D_IO_MTSAFE_IO
179
180all: # Make this the default target; it will be defined in Rules.
181
bc9cf8fb 182subdir_install: $(inst_libdir)/libpthread2.a $(inst_libdir)/libpthread_syms.a
33574c17
ST
183
184# XXX: If $(inst_libdir)/libpthread2.a is installed and
185# $(inst_libdir)/libpthread is not, we can have some issues.
186.PHONY: $(inst_libdir)/libpthread.a $(inst_libdir)/libpthread_pic.a
187
188# XXX: These rules are a hack. But it is better than messing with
189# ../Makeconf at the moment. Note that the linker scripts
190# $(srcdir)/libpthread.a and $(srcdir)/libpthread_pic.a get overwritten
7f0d9e61 191# when building in $(srcdir) and not a separate build directory.
33574c17
ST
192$(inst_libdir)/libpthread2.a: $(inst_libdir)/libpthread.a
193 mv $< $@
194 $(INSTALL_DATA) $(srcdir)/libpthread.a $<
195
196$(inst_libdir)/libpthread2_pic.a: $(inst_libdir)/libpthread_pic.a
197 mv $< $@
198 $(INSTALL_DATA) $(srcdir)/libpthread_pic.a $<
199
bc9cf8fb
ST
200$(inst_libdir)/libpthread_syms.a: $(srcdir)/libpthread_syms.a $(+force)
201 $(do-install)
202
33574c17
ST
203libc-link.so = $(common-objpfx)libc.so
204
205extra-B-pthread.so = -B$(common-objpfx)htl/
e2b9d562 206LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
33574c17
ST
207
208include ../Rules
dd7a8ad7
ST
209
210# Make sure we link with the thread library.
211ifeq ($(build-shared),yes)
212$(addprefix $(objpfx), \
213 $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
214 $(tests-nolibpthread), \
215 $(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
216 $(objpfx)libpthread.so
dd7a8ad7
ST
217# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
218# since otherwise libpthread.so comes before libc.so when linking.
219$(addprefix $(objpfx), $(tests-reverse)): \
220 $(objpfx)../libc.so $(objpfx)libpthread.so
221$(objpfx)../libc.so: $(common-objpfx)libc.so ;
bc9cf8fb 222$(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(srcdir)/libpthread_syms.a $(objpfx)libpthread.a
dd7a8ad7 223else
bc9cf8fb 224$(addprefix $(objpfx),$(tests) $(test-srcs)): $(srcdir)/libpthread_syms.a $(objpfx)libpthread.a
dd7a8ad7 225endif