setsourcefilter: Replace alloca with a scratch_buffer.
[glibc.git] / io / Makefile
blob6b58728e90963793c8a9465b9c52e7dd6a55a164
1 # Copyright (C) 1992-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 I/O portion of the library.
21 subdir := io
23 include ../Makeconfig
25 headers := \
26 bits/fcntl.h \
27 bits/fcntl2.h \
28 bits/poll.h \
29 bits/poll2.h \
30 bits/stat.h \
31 bits/statfs.h \
32 bits/statvfs.h \
33 bits/statx-generic.h \
34 bits/statx.h \
35 bits/types/struct_statx.h \
36 bits/types/struct_statx_timestamp.h \
37 fcntl.h \
38 fts.h \
39 ftw.h \
40 poll.h \
41 sys/fcntl.h \
42 sys/poll.h \
43 sys/sendfile.h \
44 sys/stat.h \
45 sys/statfs.h \
46 sys/statvfs.h \
47 sys/vfs.h \
48 utime.h \
49 # headers
51 routines := \
52 access \
53 chdir \
54 chmod \
55 chown \
56 close \
57 close_range \
58 closefrom \
59 copy_file_range \
60 creat \
61 creat64 \
62 dup \
63 dup2 \
64 dup3 \
65 euidaccess \
66 faccessat \
67 fchdir \
68 fchmod \
69 fchmodat \
70 fchown \
71 fchownat \
72 fcntl \
73 fcntl64 \
74 file_change_detection \
75 flock \
76 fstat \
77 fstat64 \
78 fstatat \
79 fstatat64 \
80 fstatfs \
81 fstatfs64 \
82 fstatvfs \
83 fstatvfs64 \
84 fts \
85 fts64 \
86 fts64-time64 \
87 ftw \
88 ftw64 \
89 ftw64-time64 \
90 futimens \
91 getcwd \
92 getdirname \
93 getwd \
94 isatty \
95 lchmod \
96 lchown \
97 link \
98 linkat \
99 lockf \
100 lockf64 \
101 lseek \
102 lseek64 \
103 lstat \
104 lstat64 \
105 mkdir \
106 mkdirat \
107 mkfifo \
108 mkfifoat \
109 mknod \
110 mknodat \
111 open \
112 open64 \
113 open64_2 \
114 open_2 \
115 openat \
116 openat64 \
117 openat64_2 \
118 openat_2 \
119 pipe \
120 pipe2 \
121 poll \
122 posix_fadvise \
123 posix_fadvise64 \
124 posix_fallocate \
125 posix_fallocate64 \
126 ppoll \
127 read \
128 readlink \
129 readlinkat \
130 rmdir \
131 sendfile \
132 sendfile64 \
133 stat \
134 stat64 \
135 statfs \
136 statfs64 \
137 statvfs \
138 statvfs64 \
139 statx \
140 symlink \
141 symlinkat \
142 ttyname \
143 ttyname_r \
144 umask \
145 unlink \
146 unlinkat \
147 utime \
148 utimensat \
149 write \
150 # routines
152 others := \
153 pwd \
154 # others
156 test-srcs := \
157 ftwtest \
158 ftwtest-time64 \
159 # test-srcs
161 tests := \
162 bug-ftw1 \
163 bug-ftw2 \
164 bug-ftw3 \
165 bug-ftw4 \
166 bug-ftw5 \
167 test-lfs \
168 test-stat \
169 test-stat2 \
170 test-utime \
171 tst-close_range \
172 tst-closefrom \
173 tst-copy_file_range \
174 tst-faccessat \
175 tst-fchmodat \
176 tst-fchownat \
177 tst-fcntl \
178 tst-fstatat \
179 tst-fts \
180 tst-fts-lfs \
181 tst-ftw-bz26353 \
182 tst-ftw-bz28126 \
183 tst-ftw-lnk \
184 tst-futimens \
185 tst-futimes \
186 tst-futimesat \
187 tst-getcwd \
188 tst-getcwd-abspath \
189 tst-lchmod \
190 tst-linkat \
191 tst-lockf \
192 tst-lutimes \
193 tst-mkdirat \
194 tst-mkfifoat \
195 tst-mknodat \
196 tst-open-tmpfile \
197 tst-openat \
198 tst-posix_fallocate \
199 tst-posix_fallocate64 \
200 tst-readlinkat \
201 tst-renameat \
202 tst-stat \
203 tst-stat-lfs \
204 tst-statvfs \
205 tst-symlinkat \
206 tst-ttyname_r \
207 tst-unlinkat \
208 tst-utime \
209 tst-utimensat \
210 tst-utimes \
211 # tests
213 tests-time64 := \
214 tst-fcntl-time64 \
215 tst-fts-time64 \
216 tst-futimens-time64 \
217 tst-futimes-time64\
218 tst-futimesat-time64 \
219 tst-lchmod-time64 \
220 tst-lutimes-time64 \
221 tst-stat-time64 \
222 tst-utime-time64 \
223 tst-utimensat-time64 \
224 tst-utimes-time64 \
225 # tests-time64
227 # Likewise for statx, but we do not need static linking here.
228 tests-internal += \
229 tst-file_change_detection \
230 tst-statx \
231 # tests-internal
233 tests-static += \
234 tst-statx \
235 # tests-static
237 ifeq ($(run-built-tests),yes)
238 tests-special += \
239 $(objpfx)ftwtest-time64.out \
240 $(objpfx)ftwtest.out \
241 # tests-special
242 endif
244 include ../Rules
246 CFLAGS-open.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
247 CFLAGS-openat.c += $(config-cflags-wno-ignored-attributes)
248 CFLAGS-open64.c += -fexceptions -fasynchronous-unwind-tables
249 CFLAGS-creat.c += -fexceptions -fasynchronous-unwind-tables
250 CFLAGS-creat64.c += -fexceptions -fasynchronous-unwind-tables
251 CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
252 CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
253 CFLAGS-poll.c += -fexceptions -fasynchronous-unwind-tables
254 CFLAGS-ppoll.c += -fexceptions -fasynchronous-unwind-tables
255 CFLAGS-lockf.c += -fexceptions -fasynchronous-unwind-tables
256 CFLAGS-lockf64.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
257 CFLAGS-statfs.c += -fexceptions
258 CFLAGS-fstatfs.c += -fexceptions
259 CFLAGS-statvfs.c += -fexceptions $(config-cflags-wno-ignored-attributes)
260 CFLAGS-fstatvfs.c += -fexceptions $(config-cflags-wno-ignored-attributes)
261 CFLAGS-fts.c += -Wno-uninitialized $(uses-callbacks) -fexceptions
262 CFLAGS-fts64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions
263 CFLAGS-fts64-time64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions
264 CFLAGS-ftw.c += $(uses-callbacks) -fexceptions
265 CFLAGS-ftw64.c += $(uses-callbacks) -fexceptions
266 CFLAGS-ftw64-time64.c += $(uses-callbacks) -fexceptions
267 CFLAGS-posix_fallocate.c += -fexceptions
268 CFLAGS-posix_fallocate64.c += -fexceptions
269 CFLAGS-fallocate.c += -fexceptions
270 CFLAGS-fallocate64.c += -fexceptions
271 CFLAGS-read.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
272 CFLAGS-write.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes)
273 CFLAGS-close.c += -fexceptions -fasynchronous-unwind-tables
274 CFLAGS-lseek64.c += $(config-cflags-wno-ignored-attributes)
276 CFLAGS-test-stat.c += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
277 CFLAGS-test-lfs.c += -D_LARGEFILE64_SOURCE
278 CFLAGS-tst-lchmod.c += -D_FILE_OFFSET_BITS=64
280 test-stat2-ARGS = Makefile . $(objpfx)test-stat2
282 tst-statvfs-ARGS = $(objpfx)tst-statvfs tst-statvfs.c /tmp
284 tst-open-tmpfile-ARGS = --test-dir=$(objpfx)
286 CFLAGS-ftwtest-time64.c += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
288 ifeq ($(run-built-tests),yes)
289 $(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest
290 $(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
291 $(evaluate-test)
293 $(objpfx)ftwtest-time64.out: ftwtest-sh $(objpfx)ftwtest-time64
294 $(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
295 $(evaluate-test)
296 endif