]>
Commit | Line | Data |
---|---|---|
d4697bc9 | 1 | # Copyright (C) 1998-2014 Free Software Foundation, Inc. |
2de7874e UD |
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. | |
2de7874e UD |
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. |
2de7874e | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | # License along with the GNU C Library; if not, see |
16 | # <http://www.gnu.org/licenses/>. | |
2de7874e UD |
17 | |
18 | # | |
19 | # Sub-makefile for debug portion of the library. | |
20 | # | |
21 | subdir := debug | |
22 | ||
a5f891ac JM |
23 | include ../Makeconfig |
24 | ||
2de7874e UD |
25 | headers := execinfo.h |
26 | ||
ee586a6d RM |
27 | # Note that ptsname_r_chk and getlogin_r are not here, but in |
28 | # login/Makefile instead. If that subdir is omitted from the | |
29 | # build, its _FORTIFY_SOURCE support will be too. | |
61062f56 | 30 | routines = backtrace backtracesyms backtracesymsfd noophooks \ |
b5cc329c | 31 | memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \ |
8215c9ec | 32 | strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \ |
b5cc329c UD |
33 | sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \ |
34 | printf_chk fprintf_chk vprintf_chk vfprintf_chk \ | |
553cc5f9 UD |
35 | gets_chk chk_fail readonly-area fgets_chk fgets_u_chk \ |
36 | read_chk pread_chk pread64_chk recv_chk recvfrom_chk \ | |
a346370d | 37 | readlink_chk readlinkat_chk getwd_chk getcwd_chk \ |
bd9ffde6 | 38 | realpath_chk fread_chk fread_u_chk \ |
8215c9ec UD |
39 | wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \ |
40 | wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \ | |
41 | wcpncpy_chk \ | |
42 | swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \ | |
43 | vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \ | |
ee586a6d | 44 | confstr_chk getgroups_chk ttyname_r_chk \ |
df6f8969 | 45 | gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \ |
02ca3541 | 46 | wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ |
dff37515 UD |
47 | wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \ |
48 | vdprintf_chk obprintf_chk \ | |
b50f8e42 | 49 | longjmp_chk ____longjmp_chk \ |
d9a216c0 | 50 | fdelt_chk poll_chk ppoll_chk \ |
ddfd0535 | 51 | stack_chk_fail fortify_fail \ |
61062f56 | 52 | $(static-only-routines) |
35f1e827 | 53 | static-only-routines := warning-nop stack_chk_fail_local |
2de7874e UD |
54 | |
55 | CFLAGS-backtrace.c = -fno-omit-frame-pointer | |
c75ccd4c RM |
56 | CFLAGS-sprintf_chk.c = $(libio-mtsafe) |
57 | CFLAGS-snprintf_chk.c = $(libio-mtsafe) | |
58 | CFLAGS-vsprintf_chk.c = $(libio-mtsafe) | |
59 | CFLAGS-vsnprintf_chk.c = $(libio-mtsafe) | |
60 | CFLAGS-asprintf_chk.c = $(libio-mtsafe) | |
61 | CFLAGS-vasprintf_chk.c = $(libio-mtsafe) | |
62 | CFLAGS-obprintf_chk.c = $(libio-mtsafe) | |
63 | CFLAGS-dprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
64 | CFLAGS-vdprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
65 | CFLAGS-printf_chk.c = $(libio-mtsafe) $(exceptions) | |
66 | CFLAGS-fprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
67 | CFLAGS-vprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
68 | CFLAGS-vfprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
69 | CFLAGS-gets_chk.c = $(libio-mtsafe) $(exceptions) | |
70 | CFLAGS-fgets_chk.c = $(libio-mtsafe) $(exceptions) | |
71 | CFLAGS-fgets_u_chk.c = $(libio-mtsafe) $(exceptions) | |
72 | CFLAGS-fread_chk.c = $(libio-mtsafe) $(exceptions) | |
73 | CFLAGS-fread_u_chk.c = $(libio-mtsafe) $(exceptions) | |
74 | CFLAGS-swprintf_chk.c = $(libio-mtsafe) | |
75 | CFLAGS-vswprintf_chk.c = $(libio-mtsafe) | |
76 | CFLAGS-wprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
77 | CFLAGS-fwprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
78 | CFLAGS-vwprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
79 | CFLAGS-vfwprintf_chk.c = $(libio-mtsafe) $(exceptions) | |
80 | CFLAGS-fgetws_chk.c = $(libio-mtsafe) $(exceptions) | |
81 | CFLAGS-fgetws_u_chk.c = $(libio-mtsafe) $(exceptions) | |
553cc5f9 UD |
82 | CFLAGS-read_chk.c = -fexceptions -fasynchronous-unwind-tables |
83 | CFLAGS-pread_chk.c = -fexceptions -fasynchronous-unwind-tables | |
84 | CFLAGS-pread64_chk.c = -fexceptions -fasynchronous-unwind-tables | |
85 | CFLAGS-recv_chk.c = -fexceptions -fasynchronous-unwind-tables | |
86 | CFLAGS-recvfrom_chk.c = -fexceptions -fasynchronous-unwind-tables | |
fed806c3 MF |
87 | |
88 | # Need to make sure the settings here override what configure might have | |
89 | # set up for us, so keep the CFLAGS/CPPFLAGS split logical as the order is: | |
90 | # <user CFLAGS> <test CFLAGS> <user CPPFLAGS> <test CPPFLAGS> | |
91 | CFLAGS-tst-longjmp_chk.c = -fexceptions -fasynchronous-unwind-tables | |
92 | CPPFLAGS-tst-longjmp_chk.c = -D_FORTIFY_SOURCE=1 | |
93 | CFLAGS-tst-longjmp_chk2.c = -fexceptions -fasynchronous-unwind-tables | |
94 | CPPFLAGS-tst-longjmp_chk2.c = -D_FORTIFY_SOURCE=1 | |
ac8cc9e3 MF |
95 | CFLAGS-tst-longjmp_chk3.c = -fexceptions -fasynchronous-unwind-tables |
96 | CPPFLAGS-tst-longjmp_chk3.c = -D_FORTIFY_SOURCE=1 | |
2de7874e | 97 | |
7a344d1d UD |
98 | # We know these tests have problems with format strings, this is what |
99 | # we are testing. Disable that warning. | |
100 | CFLAGS-tst-chk1.c = -Wno-format | |
101 | CFLAGS-tst-chk2.c = -Wno-format | |
102 | CFLAGS-tst-chk3.c = -Wno-format | |
de1c3ebb UD |
103 | CFLAGS-tst-chk4.cc = -Wno-format |
104 | CFLAGS-tst-chk5.cc = -Wno-format | |
105 | CFLAGS-tst-chk6.cc = -Wno-format | |
106 | CFLAGS-tst-lfschk1.c = -Wno-format | |
107 | CFLAGS-tst-lfschk2.c = -Wno-format | |
108 | CFLAGS-tst-lfschk3.c = -Wno-format | |
109 | CFLAGS-tst-lfschk4.cc = -Wno-format | |
110 | CFLAGS-tst-lfschk5.cc = -Wno-format | |
111 | CFLAGS-tst-lfschk6.cc = -Wno-format | |
5ca78dd0 L |
112 | LDLIBS-tst-chk4 = -lstdc++ |
113 | LDLIBS-tst-chk5 = -lstdc++ | |
114 | LDLIBS-tst-chk6 = -lstdc++ | |
115 | LDLIBS-tst-lfschk4 = -lstdc++ | |
116 | LDLIBS-tst-lfschk5 = -lstdc++ | |
117 | LDLIBS-tst-lfschk6 = -lstdc++ | |
5852d1e5 | 118 | |
31d470ac JM |
119 | # backtrace_symbols only works if we link with -rdynamic. backtrace |
120 | # requires unwind tables on most architectures. | |
121 | CFLAGS-tst-backtrace2.c += -funwind-tables | |
122 | CFLAGS-tst-backtrace3.c += -funwind-tables | |
123 | CFLAGS-tst-backtrace4.c += -funwind-tables | |
124 | CFLAGS-tst-backtrace5.c += -funwind-tables | |
d400dcac | 125 | CFLAGS-tst-backtrace6.c += -funwind-tables |
31d470ac JM |
126 | LDFLAGS-tst-backtrace2 = -rdynamic |
127 | LDFLAGS-tst-backtrace3 = -rdynamic | |
128 | LDFLAGS-tst-backtrace4 = -rdynamic | |
129 | LDFLAGS-tst-backtrace5 = -rdynamic | |
d400dcac | 130 | LDFLAGS-tst-backtrace6 = -rdynamic |
31d470ac | 131 | |
b50f8e42 | 132 | tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ |
de1c3ebb | 133 | tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ |
a9a04420 | 134 | tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 \ |
31d470ac | 135 | tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 tst-backtrace4 \ |
d400dcac | 136 | tst-backtrace5 tst-backtrace6 |
2de7874e | 137 | |
87843f15 | 138 | extra-libs = libSegFault libpcprofile |
107f8131 UD |
139 | extra-libs-others = $(extra-libs) |
140 | ||
141 | libSegFault-routines = segfault | |
142 | libSegFault-inhibit-o = $(filter-out .os,$(object-suffixes)) | |
143 | ||
87843f15 UD |
144 | libpcprofile-routines = pcprofile |
145 | libpcprofile-inhibit-o = $(filter-out .os,$(object-suffixes)) | |
146 | ||
08920a50 | 147 | others = pcprofiledump |
6c3ebebd UD |
148 | install-bin = pcprofiledump |
149 | install-bin-script = xtrace | |
cab30d75 | 150 | |
bfe1b528 | 151 | ifeq ($(build-shared),yes) |
6c3ebebd | 152 | install-bin-script += catchsegv |
ce85d65b | 153 | endif |
f08e9a26 | 154 | generated += catchsegv xtrace |
6ce7ab19 | 155 | |
2de7874e | 156 | include ../Rules |
107f8131 | 157 | |
f50fa10c UD |
158 | sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,') |
159 | ||
6ce7ab19 UD |
160 | $(objpfx)catchsegv: catchsegv.sh $(common-objpfx)soversions.mk \ |
161 | $(common-objpfx)config.make | |
0325dd20 | 162 | slibpfx=`echo $(slibdir)|sed 's/lib\(64\|\)$$/\\\\\\\\$$LIB/'`; \ |
8b748aed JM |
163 | sed -e 's|@VERSION@|$(version)|' -e "s|@SLIB@|$$slibpfx|" \ |
164 | -e 's|@PKGVERSION@|$(PKGVERSION)|' \ | |
165 | -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $< > $@.new | |
6ce7ab19 UD |
166 | chmod 555 $@.new |
167 | mv -f $@.new $@ | |
168 | ||
cab30d75 | 169 | $(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o |
cab30d75 UD |
170 | |
171 | $(objpfx)xtrace: xtrace.sh | |
172 | rm -f $@.new | |
173 | sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ | |
8b748aed JM |
174 | -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ |
175 | -e 's|@PKGVERSION@|$(PKGVERSION)|' \ | |
176 | -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ | |
cab30d75 | 177 | && rm -f $@ && mv $@.new $@ && chmod +x $@ |