1 # Copyright (C) 1991-2020 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.
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
42 routines
:= brk sbrk sstk ioctl \
43 readv writev preadv preadv64 pwritev pwritev64 \
44 preadv2 preadv64v2 pwritev2 pwritev64v2 \
49 gethostname sethostname getdomain setdomain \
51 acct chroot fsync sync fdatasync syncfs reboot \
54 swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \
55 mkostemp mkostemp64 mkstemps mkstemps64 mkostemps mkostemps64 \
59 fstab mntent mntent_r \
60 utimes lutimes futimes futimesat \
61 truncate ftruncate truncate64 ftruncate64 \
63 insremque getttyent getusershell getpass ttyslot \
64 syslog syscall daemon \
65 mmap mmap64 munmap mprotect msync madvise mincore remap_file_pages\
66 mlock munlock mlockall munlockall \
67 efgcvt efgcvt_r qefgcvt qefgcvt_r \
68 hsearch hsearch_r tsearch lsearch \
70 getsysstats dirname regexp \
71 getloadavg getclktck \
72 fgetxattr flistxattr fremovexattr fsetxattr getxattr \
73 listxattr lgetxattr llistxattr lremovexattr lsetxattr \
74 removexattr setxattr getauxval ifunc-impl-list makedev \
75 allocate_once fd_to_filename
77 generated
+= tst-error1.mtrace tst-error1-mem.out \
78 tst-allocate_once.mtrace tst-allocate_once-mem.out
82 gpl2lgpl
:= error.c error.h
84 tests
:= tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \
85 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
86 tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 \
87 tst-preadvwritev tst-preadvwritev64 tst-makedev tst-empty \
88 tst-preadvwritev2 tst-preadvwritev64v2 tst-warn-wide \
89 tst-ldbl-warn tst-ldbl-error tst-dbl-efgcvt tst-ldbl-efgcvt \
90 tst-mntent-autofs tst-syscalls
92 # Tests which need libdl.
93 ifeq (yes
,$(build-shared
))
94 tests
+= tst-gethostid
97 tests-internal
:= tst-atomic tst-atomic-long tst-allocate_once
98 tests-static
:= tst-empty
100 # Test for the internal, non-exported __fd_to_filename function.
101 tests-internal
+= tst-fd_to_filename
102 tests-static
+= tst-fd_to_filename
104 ifeq ($(run-built-tests
),yes
)
105 tests-special
+= $(objpfx
)tst-error1-mem.out \
106 $(objpfx
)tst-allocate_once-mem.out
109 CFLAGS-select.c
+= -fexceptions
-fasynchronous-unwind-tables
110 CFLAGS-tsearch.c
+= $(uses-callbacks
)
111 CFLAGS-lsearch.c
+= $(uses-callbacks
)
112 CFLAGS-pselect.c
+= -fexceptions
113 CFLAGS-readv.c
+= -fexceptions
-fasynchronous-unwind-tables
114 CFLAGS-writev.c
+= -fexceptions
-fasynchronous-unwind-tables
115 CFLAGS-preadv.c
+= -fexceptions
-fasynchronous-unwind-tables
116 CFLAGS-preadv64.c
+= -fexceptions
-fasynchronous-unwind-tables
117 CFLAGS-pwritev.c
+= -fexceptions
-fasynchronous-unwind-tables
118 CFLAGS-pwritev64.c
+= -fexceptions
-fasynchronous-unwind-tables
119 CFLAGS-preadv2.c
+= -fexceptions
-fasynchronous-unwind-tables
120 CFLAGS-preadv64v2.c
+= -fexceptions
-fasynchronous-unwind-tables
121 CFLAGS-pwritev2.c
+= -fexceptions
-fasynchronous-unwind-tables
122 CFLAGS-pwritev64v2.c
+= -fexceptions
-fasynchronous-unwind-tables
123 CFLAGS-usleep.c
+= -fexceptions
124 CFLAGS-syslog.c
+= -fexceptions
125 CFLAGS-error.c
+= -fexceptions
126 CFLAGS-getpass.c
+= -fexceptions
127 CFLAGS-mkstemp.c
+= -fexceptions
128 CFLAGS-mkstemp64.c
+= -fexceptions
129 CFLAGS-getsysstats.c
+= -fexceptions
130 CFLAGS-getusershell.c
+= -fexceptions
131 CFLAGS-err.c
+= -fexceptions
132 CFLAGS-tst-tsearch.c
+= $(stack-align-test-flags
)
133 CFLAGS-msync.c
+= -fexceptions
-fasynchronous-unwind-tables
134 CFLAGS-fdatasync.c
+= -fexceptions
-fasynchronous-unwind-tables
135 CFLAGS-fsync.c
+= -fexceptions
-fasynchronous-unwind-tables
137 # Called during static library initialization, so turn stack-protection
138 # off for non-shared builds.
139 CFLAGS-sbrk.o
= $(no-stack-protector
)
140 CFLAGS-sbrk.op
= $(no-stack-protector
)
141 CFLAGS-brk.o
= $(no-stack-protector
)
142 CFLAGS-brk.op
= $(no-stack-protector
)
146 $(objpfx
)libg.a
: $(dep-dummy-lib
); $(make-dummy-lib
)
148 $(objpfx
)tst-tsearch
: $(libm
)
150 tst-error1-ENV
= MALLOC_TRACE
=$(objpfx
)tst-error1.mtrace
151 tst-error1-ARGS
= $(objpfx
)tst-error1.out
152 $(objpfx
)tst-error1-mem.out
: $(objpfx
)tst-error1.out
153 $(common-objpfx
)malloc
/mtrace
$(objpfx
)tst-error1.mtrace
> $@
; \
156 tst-allocate_once-ENV
= MALLOC_TRACE
=$(objpfx
)tst-allocate_once.mtrace
157 $(objpfx
)tst-allocate_once-mem.out
: $(objpfx
)tst-allocate_once.out
158 $(common-objpfx
)malloc
/mtrace
$(objpfx
)tst-allocate_once.mtrace
> $@
; \
161 $(objpfx
)tst-gethostid
: $(libdl
)