manual: document snprintf truncation better
[glibc.git] / misc / Makefile
blob1a09f777fa37a6855b62e1063e3a78b0ea68d0d7
1 # Copyright (C) 1991-2023 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
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.
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.
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/>.
19 # Sub-makefile for misc portion of the library.
22 subdir := misc
24 include ../Makeconfig
26 headers := sys/uio.h bits/uio-ext.h bits/uio_lim.h \
27 sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
28 sys/ptrace.h sys/file.h sys/dir.h sys/cdefs.h \
29 ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \
30 ttyent.h paths.h sys/reboot.h \
31 sys/mman.h sys/param.h bits/param.h \
32 fstab.h mntent.h search.h err.h error.h \
33 sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
34 sys/select.h sys/sysinfo.h \
35 regexp.h bits/select.h bits/mman.h sys/xattr.h \
36 syslog.h sys/syslog.h \
37 bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \
38 bits/select2.h bits/hwcap.h sys/auxv.h \
39 sys/sysmacros.h bits/sysmacros.h bits/types/struct_iovec.h \
40 bits/err-ldbl.h bits/error-ldbl.h \
41 sys/single_threaded.h
43 routines := brk sbrk sstk ioctl \
44 readv writev preadv preadv64 pwritev pwritev64 \
45 preadv2 preadv64v2 pwritev2 pwritev64v2 \
46 setreuid setregid \
47 seteuid setegid \
48 getpagesize \
49 getdtsz \
50 gethostname sethostname getdomain setdomain \
51 select pselect \
52 acct chroot fsync sync fdatasync syncfs reboot \
53 gethostid sethostid \
54 revoke vhangup \
55 swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \
56 mkostemp mkostemp64 mkstemps mkstemps64 mkostemps mkostemps64 \
57 ualarm usleep \
58 gtty stty \
59 ptrace \
60 fstab mntent mntent_r \
61 utimes lutimes futimes futimesat \
62 truncate ftruncate truncate64 ftruncate64 \
63 chflags fchflags \
64 insremque getttyent getusershell getpass ttyslot \
65 syslog syscall daemon \
66 mmap mmap64 munmap mprotect msync madvise mincore remap_file_pages\
67 mlock munlock mlockall munlockall \
68 efgcvt efgcvt_r qefgcvt qefgcvt_r \
69 hsearch hsearch_r tsearch lsearch \
70 err error ustat \
71 getsysstats dirname regexp \
72 getloadavg getclktck \
73 fgetxattr flistxattr fremovexattr fsetxattr getxattr \
74 listxattr lgetxattr llistxattr lremovexattr lsetxattr \
75 removexattr setxattr getauxval ifunc-impl-list makedev \
76 allocate_once fd_to_filename single_threaded unwind-link \
77 atomic_wide_counter
79 generated += tst-error1.mtrace tst-error1-mem.out \
80 tst-allocate_once.mtrace tst-allocate_once-mem.out
82 aux := init-misc
83 install-lib := libg.a
84 gpl2lgpl := error.c error.h
86 tests := tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \
87 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
88 tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 \
89 tst-preadvwritev tst-preadvwritev64 tst-makedev tst-empty \
90 tst-preadvwritev2 tst-preadvwritev64v2 tst-warn-wide \
91 tst-ldbl-warn tst-ldbl-error tst-dbl-efgcvt tst-ldbl-efgcvt \
92 tst-mntent-autofs tst-syscalls tst-mntent-escape tst-select \
93 tst-ioctl
95 tests-time64 := \
96 tst-select-time64 \
97 tst-pselect-time64 \
98 tst-ioctl-time64 \
99 # tests-time64
101 # Tests which need libdl.
102 ifeq (yes,$(build-shared))
103 tests += tst-gethostid
104 endif
106 tests-internal := tst-atomic tst-atomic-long tst-allocate_once
107 tests-static := tst-empty
109 # Test for the internal, non-exported __fd_to_filename function.
110 tests-internal += tst-fd_to_filename
111 tests-static += tst-fd_to_filename
113 ifeq ($(run-built-tests),yes)
114 tests-special += $(objpfx)tst-error1-mem.out \
115 $(objpfx)tst-allocate_once-mem.out
116 endif
118 tests-container := tst-syslog
120 CFLAGS-select.c += -fexceptions -fasynchronous-unwind-tables
121 CFLAGS-tsearch.c += $(uses-callbacks)
122 CFLAGS-lsearch.c += $(uses-callbacks)
123 CFLAGS-pselect.c += -fexceptions
124 CFLAGS-readv.c += -fexceptions -fasynchronous-unwind-tables
125 CFLAGS-writev.c += -fexceptions -fasynchronous-unwind-tables
126 CFLAGS-preadv.c += -fexceptions -fasynchronous-unwind-tables
127 CFLAGS-preadv64.c += -fexceptions -fasynchronous-unwind-tables
128 CFLAGS-pwritev.c += -fexceptions -fasynchronous-unwind-tables
129 CFLAGS-pwritev64.c += -fexceptions -fasynchronous-unwind-tables
130 CFLAGS-preadv2.c += -fexceptions -fasynchronous-unwind-tables
131 CFLAGS-preadv64v2.c += -fexceptions -fasynchronous-unwind-tables
132 CFLAGS-pwritev2.c += -fexceptions -fasynchronous-unwind-tables
133 CFLAGS-pwritev64v2.c += -fexceptions -fasynchronous-unwind-tables
134 CFLAGS-usleep.c += -fexceptions
135 CFLAGS-syslog.c += -fexceptions
136 CFLAGS-error.c += -fexceptions
137 CFLAGS-getpass.c += -fexceptions
138 CFLAGS-mkstemp.c += -fexceptions
139 CFLAGS-mkstemp64.c += -fexceptions
140 CFLAGS-getsysstats.c += -fexceptions
141 CFLAGS-getusershell.c += -fexceptions
142 CFLAGS-err.c += -fexceptions
143 CFLAGS-tst-tsearch.c += $(stack-align-test-flags)
144 CFLAGS-msync.c += -fexceptions -fasynchronous-unwind-tables
145 CFLAGS-fdatasync.c += -fexceptions -fasynchronous-unwind-tables
146 CFLAGS-fsync.c += -fexceptions -fasynchronous-unwind-tables
147 CFLAGS-makedev.c += $(config-cflags-wno-ignored-attributes)
148 CFLAGS-mmap64.c += $(config-cflags-wno-ignored-attributes)
150 # Called during static library initialization, so turn stack-protection
151 # off for non-shared builds.
152 CFLAGS-sbrk.o = $(no-stack-protector)
153 CFLAGS-sbrk.op = $(no-stack-protector)
154 CFLAGS-brk.o = $(no-stack-protector)
155 CFLAGS-brk.op = $(no-stack-protector)
156 CFLAGS-mmap.o = $(no-stack-protector)
157 CFLAGS-mmap.op = $(no-stack-protector)
158 CFLAGS-mmap64.o = $(no-stack-protector)
159 CFLAGS-mmap64.op = $(no-stack-protector)
161 include ../Rules
163 $(objpfx)libg.a: $(dep-dummy-lib); $(make-dummy-lib)
165 $(objpfx)tst-tsearch: $(libm)
167 tst-error1-ENV = MALLOC_TRACE=$(objpfx)tst-error1.mtrace \
168 LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
169 tst-error1-ARGS = $(objpfx)tst-error1.out
170 $(objpfx)tst-error1-mem.out: $(objpfx)tst-error1.out
171 $(common-objpfx)malloc/mtrace $(objpfx)tst-error1.mtrace > $@; \
172 $(evaluate-test)
174 tst-allocate_once-ENV = MALLOC_TRACE=$(objpfx)tst-allocate_once.mtrace \
175 LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
176 $(objpfx)tst-allocate_once-mem.out: $(objpfx)tst-allocate_once.out
177 $(common-objpfx)malloc/mtrace $(objpfx)tst-allocate_once.mtrace > $@; \
178 $(evaluate-test)
180 $(objpfx)tst-select: $(librt)
181 $(objpfx)tst-select-time64: $(librt)
182 $(objpfx)tst-pselect: $(librt)
183 $(objpfx)tst-pselect-time64: $(librt)