1# Copyright (C) 1997-2022 Free Software Foundation, Inc. 2# This file is part of the GNU C Library. 3 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 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 16# <https://www.gnu.org/licenses/>. 17 18# 19# Sub-makefile for real-time portion of the library. 20# 21subdir := rt 22 23include ../Makeconfig 24 25headers := aio.h mqueue.h bits/mqueue.h bits/mqueue2.h 26 27routines = \ 28 shm_open \ 29 shm_unlink \ 30 31librt-routines = librt-compat 32librt-shared-only-routines = librt-compat 33 34$(librt-routines-var) += \ 35 aio_cancel \ 36 aio_error \ 37 aio_fsync \ 38 aio_misc \ 39 aio_notify \ 40 aio_read \ 41 aio_read64 \ 42 aio_return \ 43 aio_sigqueue \ 44 aio_suspend \ 45 aio_write \ 46 aio_write64 \ 47 lio_listio \ 48 lio_listio64 \ 49 mq_close \ 50 mq_getattr \ 51 mq_notify \ 52 mq_open \ 53 mq_receive \ 54 mq_send \ 55 mq_setattr \ 56 mq_timedreceive \ 57 mq_timedsend \ 58 mq_unlink \ 59 timer_create \ 60 timer_delete \ 61 timer_getoverr \ 62 timer_gettime \ 63 timer_settime \ 64 65ifeq ($(pthread-in-libc),yes) 66# Pretend that librt.so is a linker script, so that the symbolic 67# link is not installed. 68install-lib-ldscripts = librt.so 69$(inst_libdir)/librt.so: 70endif 71 72tests := tst-shm tst-timer tst-timer2 \ 73 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \ 74 tst-aio7 tst-aio8 tst-aio9 tst-aio10 \ 75 tst-mqueue1 tst-mqueue2 tst-mqueue3 tst-mqueue4 \ 76 tst-mqueue5 tst-mqueue6 tst-mqueue7 tst-mqueue8 tst-mqueue9 \ 77 tst-bz28213 \ 78 tst-timer3 tst-timer4 tst-timer5 \ 79 tst-cpuclock2 tst-cputimer1 tst-cputimer2 tst-cputimer3 \ 80 tst-shm-cancel \ 81 tst-mqueue10 82tests-internal := tst-timer-sigmask 83 84tests-time64 := \ 85 tst-aio6-time64 \ 86 tst-cpuclock2-time64 \ 87 tst-mqueue1-time64 \ 88 tst-mqueue2-time64 \ 89 tst-mqueue4-time64 \ 90 tst-mqueue8-time64 \ 91 tst-mqueue10-time64 \ 92 tst-timer4-time64 93 94extra-libs := librt 95extra-libs-others := $(extra-libs) 96 97include ../Rules 98 99CFLAGS-aio_suspend.c += -fexceptions 100CFLAGS-mq_timedreceive.c += -fexceptions -fasynchronous-unwind-tables 101CFLAGS-mq_timedsend.c += -fexceptions -fasynchronous-unwind-tables 102 103LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete 104 105$(objpfx)librt.so: $(shared-thread-library) 106 107ifneq ($(pthread-in-libc),yes) 108ifeq (yes,$(build-shared)) 109$(addprefix $(objpfx),$(tests) $(tests-internal)): \ 110 $(objpfx)librt.so $(shared-thread-library) 111else 112$(addprefix $(objpfx),$(tests)) $(tests-internal): \ 113 $(objpfx)librt.a $(static-thread-library) 114endif 115endif # !$(pthread-in-libc) 116 117tst-mqueue7-ARGS = -- $(host-test-program-cmd) 118