]>
Commit | Line | Data |
---|---|---|
dff8da6b | 1 | # Copyright (C) 1992-2024 Free Software Foundation, Inc. |
28f540f4 RM |
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 | |
41bdb6e2 AJ |
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. | |
28f540f4 RM |
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 | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
28f540f4 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 | 15 | # License along with the GNU C Library; if not, see |
5a82c748 | 16 | # <https://www.gnu.org/licenses/>. |
28f540f4 RM |
17 | |
18 | # | |
19 | # Sub-makefile for I/O portion of the library. | |
20 | # | |
15125996 | 21 | subdir := io |
28f540f4 | 22 | |
a5f891ac JM |
23 | include ../Makeconfig |
24 | ||
a118dc31 AZ |
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 | |
50 | ||
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 | |
151 | ||
20c894d2 FB |
152 | # Exclude fortified routines from being built with _FORTIFY_SOURCE |
153 | routines_no_fortify += \ | |
154 | getcwd \ | |
155 | getwd \ | |
156 | open \ | |
157 | open64 \ | |
158 | openat \ | |
159 | openat64 \ | |
160 | poll \ | |
161 | ppoll \ | |
162 | read \ | |
163 | readlink \ | |
164 | readlinkat \ | |
165 | ttyname_r \ | |
166 | # routines_no_fortify | |
167 | ||
a118dc31 AZ |
168 | others := \ |
169 | pwd \ | |
170 | # others | |
171 | ||
172 | test-srcs := \ | |
173 | ftwtest \ | |
174 | ftwtest-time64 \ | |
175 | # test-srcs | |
176 | ||
177 | tests := \ | |
178 | bug-ftw1 \ | |
179 | bug-ftw2 \ | |
180 | bug-ftw3 \ | |
181 | bug-ftw4 \ | |
182 | bug-ftw5 \ | |
183 | test-lfs \ | |
184 | test-stat \ | |
185 | test-stat2 \ | |
186 | test-utime \ | |
187 | tst-close_range \ | |
188 | tst-closefrom \ | |
189 | tst-copy_file_range \ | |
190 | tst-faccessat \ | |
191 | tst-fchmodat \ | |
192 | tst-fchownat \ | |
193 | tst-fcntl \ | |
4d0fe291 | 194 | tst-fcntl-lock \ |
434bf72a | 195 | tst-fcntl-lock-lfs \ |
a118dc31 AZ |
196 | tst-fstatat \ |
197 | tst-fts \ | |
198 | tst-fts-lfs \ | |
199 | tst-ftw-bz26353 \ | |
200 | tst-ftw-bz28126 \ | |
201 | tst-ftw-lnk \ | |
202 | tst-futimens \ | |
203 | tst-futimes \ | |
204 | tst-futimesat \ | |
205 | tst-getcwd \ | |
206 | tst-getcwd-abspath \ | |
207 | tst-lchmod \ | |
208 | tst-linkat \ | |
209 | tst-lockf \ | |
210 | tst-lutimes \ | |
211 | tst-mkdirat \ | |
212 | tst-mkfifoat \ | |
213 | tst-mknodat \ | |
214 | tst-open-tmpfile \ | |
215 | tst-openat \ | |
216 | tst-posix_fallocate \ | |
217 | tst-posix_fallocate64 \ | |
218 | tst-readlinkat \ | |
219 | tst-renameat \ | |
220 | tst-stat \ | |
221 | tst-stat-lfs \ | |
222 | tst-statvfs \ | |
223 | tst-symlinkat \ | |
224 | tst-ttyname_r \ | |
225 | tst-unlinkat \ | |
226 | tst-utime \ | |
227 | tst-utimensat \ | |
228 | tst-utimes \ | |
229 | # tests | |
bad7a0c8 | 230 | |
088d3291 | 231 | tests-time64 := \ |
118a2aee AZ |
232 | tst-fcntl-time64 \ |
233 | tst-fts-time64 \ | |
088d3291 AZ |
234 | tst-futimens-time64 \ |
235 | tst-futimes-time64\ | |
118a2aee AZ |
236 | tst-futimesat-time64 \ |
237 | tst-lchmod-time64 \ | |
088d3291 AZ |
238 | tst-lutimes-time64 \ |
239 | tst-stat-time64 \ | |
088d3291 AZ |
240 | tst-utime-time64 \ |
241 | tst-utimensat-time64 \ | |
242 | tst-utimes-time64 \ | |
8a40aff8 | 243 | # tests-time64 |
088d3291 | 244 | |
fd70af45 | 245 | # Likewise for statx, but we do not need static linking here. |
a118dc31 AZ |
246 | tests-internal += \ |
247 | tst-file_change_detection \ | |
248 | tst-statx \ | |
249 | # tests-internal | |
250 | ||
251 | tests-static += \ | |
252 | tst-statx \ | |
253 | # tests-static | |
fd70af45 | 254 | |
f214606a | 255 | ifeq ($(run-built-tests),yes) |
a118dc31 AZ |
256 | tests-special += \ |
257 | $(objpfx)ftwtest-time64.out \ | |
258 | $(objpfx)ftwtest.out \ | |
259 | # tests-special | |
f214606a JM |
260 | endif |
261 | ||
28f540f4 | 262 | include ../Rules |
0793d348 | 263 | |
8d98c7c0 AZ |
264 | CFLAGS-open.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) |
265 | CFLAGS-openat.c += $(config-cflags-wno-ignored-attributes) | |
36975e8e L |
266 | CFLAGS-open64.c += -fexceptions -fasynchronous-unwind-tables |
267 | CFLAGS-creat.c += -fexceptions -fasynchronous-unwind-tables | |
268 | CFLAGS-creat64.c += -fexceptions -fasynchronous-unwind-tables | |
8d98c7c0 AZ |
269 | CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) |
270 | CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) | |
36975e8e L |
271 | CFLAGS-poll.c += -fexceptions -fasynchronous-unwind-tables |
272 | CFLAGS-ppoll.c += -fexceptions -fasynchronous-unwind-tables | |
addff78f | 273 | CFLAGS-lockf.c += -fexceptions -fasynchronous-unwind-tables |
8d98c7c0 | 274 | CFLAGS-lockf64.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) |
36975e8e L |
275 | CFLAGS-statfs.c += -fexceptions |
276 | CFLAGS-fstatfs.c += -fexceptions | |
8d98c7c0 AZ |
277 | CFLAGS-statvfs.c += -fexceptions $(config-cflags-wno-ignored-attributes) |
278 | CFLAGS-fstatvfs.c += -fexceptions $(config-cflags-wno-ignored-attributes) | |
36975e8e L |
279 | CFLAGS-fts.c += -Wno-uninitialized $(uses-callbacks) -fexceptions |
280 | CFLAGS-fts64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions | |
70961aee | 281 | CFLAGS-fts64-time64.c += -Wno-uninitialized $(uses-callbacks) -fexceptions |
36975e8e L |
282 | CFLAGS-ftw.c += $(uses-callbacks) -fexceptions |
283 | CFLAGS-ftw64.c += $(uses-callbacks) -fexceptions | |
19873b18 | 284 | CFLAGS-ftw64-time64.c += $(uses-callbacks) -fexceptions |
36975e8e L |
285 | CFLAGS-posix_fallocate.c += -fexceptions |
286 | CFLAGS-posix_fallocate64.c += -fexceptions | |
287 | CFLAGS-fallocate.c += -fexceptions | |
288 | CFLAGS-fallocate64.c += -fexceptions | |
8d98c7c0 AZ |
289 | CFLAGS-read.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) |
290 | CFLAGS-write.c += -fexceptions -fasynchronous-unwind-tables $(config-cflags-wno-ignored-attributes) | |
bdfed2e2 | 291 | CFLAGS-close.c += -fexceptions -fasynchronous-unwind-tables |
8d98c7c0 | 292 | CFLAGS-lseek64.c += $(config-cflags-wno-ignored-attributes) |
36975e8e L |
293 | |
294 | CFLAGS-test-stat.c += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE | |
295 | CFLAGS-test-lfs.c += -D_LARGEFILE64_SOURCE | |
118a2aee | 296 | CFLAGS-tst-lchmod.c += -D_FILE_OFFSET_BITS=64 |
d951286f | 297 | |
25851835 UD |
298 | test-stat2-ARGS = Makefile . $(objpfx)test-stat2 |
299 | ||
a14f121d UD |
300 | tst-statvfs-ARGS = $(objpfx)tst-statvfs tst-statvfs.c /tmp |
301 | ||
95511aab JM |
302 | tst-open-tmpfile-ARGS = --test-dir=$(objpfx) |
303 | ||
088d3291 AZ |
304 | CFLAGS-ftwtest-time64.c += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 |
305 | ||
03ac099f | 306 | ifeq ($(run-built-tests),yes) |
89f1c388 | 307 | $(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest |
f0881698 JM |
308 | $(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \ |
309 | $(evaluate-test) | |
088d3291 AZ |
310 | |
311 | $(objpfx)ftwtest-time64.out: ftwtest-sh $(objpfx)ftwtest-time64 | |
312 | $(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \ | |
313 | $(evaluate-test) | |
e7a95dc6 | 314 | endif |