1 2 include $(top_srcdir)/Makefile.tool-tests.am 3 4 SUBDIRS = . 5 6 # Arch-specific tests. 7 if VGCONF_ARCHS_INCLUDE_X86 8 SUBDIRS += x86 9 endif 10 if VGCONF_ARCHS_INCLUDE_AMD64 11 SUBDIRS += amd64 12 endif 13 14 if VGCONF_ARCHS_INCLUDE_PPC32 15 SUBDIRS += ppc32 16 endif 17 if VGCONF_ARCHS_INCLUDE_PPC64 18 SUBDIRS += ppc64 19 endif 20 21 # OS-specific tests 22 if VGCONF_OS_IS_LINUX 23 SUBDIRS += linux 24 endif 25 if VGCONF_OS_IS_DARWIN 26 SUBDIRS += darwin 27 endif 28 29 # Platform-specific tests 30 if VGCONF_PLATFORMS_INCLUDE_X86_LINUX 31 SUBDIRS += x86-linux 32 endif 33 if VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX 34 SUBDIRS += amd64-linux 35 endif 36 37 DIST_SUBDIRS = x86 amd64 ppc32 ppc64 linux darwin x86-linux amd64-linux . 38 39 dist_noinst_SCRIPTS = \ 40 filter_addressable \ 41 filter_allocs \ 42 filter_leak_cases_possible \ 43 filter_stderr filter_xml \ 44 filter_varinfo3 45 46 noinst_HEADERS = leak.h 47 48 EXTRA_DIST = \ 49 addressable.stderr.exp addressable.stdout.exp addressable.vgtest \ 50 atomic_incs.stderr.exp atomic_incs.vgtest \ 51 atomic_incs.stdout.exp-32bit atomic_incs.stdout.exp-64bit \ 52 badaddrvalue.stderr.exp \ 53 badaddrvalue.stdout.exp badaddrvalue.vgtest \ 54 badfree-2trace.stderr.exp badfree-2trace.vgtest \ 55 badfree.stderr.exp badfree.vgtest \ 56 badfree3.stderr.exp badfree3.vgtest \ 57 badjump.stderr.exp badjump.vgtest \ 58 badjump2.stderr.exp badjump2.vgtest \ 59 badloop.stderr.exp badloop.vgtest \ 60 badpoll.stderr.exp badpoll.vgtest \ 61 badrw.stderr.exp badrw.vgtest \ 62 brk2.stderr.exp brk2.vgtest \ 63 buflen_check.stderr.exp buflen_check.vgtest \ 64 calloc-overflow.stderr.exp calloc-overflow.vgtest\ 65 clientperm.stderr.exp \ 66 clientperm.stdout.exp clientperm.vgtest \ 67 custom_alloc.stderr.exp custom_alloc.vgtest \ 68 custom-overlap.stderr.exp custom-overlap.vgtest \ 69 deep_templates.vgtest \ 70 deep_templates.stdout.exp deep_templates.stderr.exp \ 71 describe-block.stderr.exp describe-block.vgtest \ 72 doublefree.stderr.exp doublefree.vgtest \ 73 erringfds.stderr.exp erringfds.stdout.exp erringfds.vgtest \ 74 error_counts.stderr.exp error_counts.vgtest \ 75 errs1.stderr.exp errs1.vgtest \ 76 exitprog.stderr.exp exitprog.vgtest \ 77 execve.stderr.exp execve.vgtest \ 78 execve2.stderr.exp execve2.vgtest \ 79 file_locking.stderr.exp file_locking.vgtest \ 80 fprw.stderr.exp fprw.vgtest \ 81 fwrite.stderr.exp fwrite.vgtest \ 82 inits.stderr.exp inits.vgtest \ 83 inline.stderr.exp inline.stdout.exp inline.vgtest \ 84 leak-0.vgtest leak-0.stderr.exp \ 85 leak-cases-full.vgtest leak-cases-full.stderr.exp \ 86 leak-cases-possible.vgtest leak-cases-possible.stderr.exp \ 87 leak-cases-summary.vgtest leak-cases-summary.stderr.exp \ 88 leak-cycle.vgtest leak-cycle.stderr.exp \ 89 leak-pool-0.vgtest leak-pool-0.stderr.exp \ 90 leak-pool-1.vgtest leak-pool-1.stderr.exp \ 91 leak-pool-2.vgtest leak-pool-2.stderr.exp \ 92 leak-pool-3.vgtest leak-pool-3.stderr.exp \ 93 leak-pool-4.vgtest leak-pool-4.stderr.exp \ 94 leak-pool-5.vgtest leak-pool-5.stderr.exp \ 95 leak-tree.vgtest leak-tree.stderr.exp \ 96 linux-syslog-syscall linux-syslog-syscall.stderr.exp \ 97 linux-syscalls-2007 linux-syscalls-2007.stderr.exp \ 98 long_namespace_xml.vgtest long_namespace_xml.stdout.exp \ 99 long_namespace_xml.stderr.exp \ 100 long-supps.vgtest long-supps.stderr.exp long-supps.supp \ 101 mallinfo.stderr.exp mallinfo.vgtest \ 102 malloc_free_fill.vgtest \ 103 malloc_free_fill.stderr.exp \ 104 malloc_usable.stderr.exp malloc_usable.vgtest \ 105 malloc1.stderr.exp malloc1.vgtest \ 106 malloc2.stderr.exp malloc2.vgtest \ 107 malloc3.stderr.exp malloc3.stdout.exp malloc3.vgtest \ 108 manuel1.stderr.exp manuel1.stdout.exp manuel1.vgtest \ 109 manuel2.stderr.exp manuel2.stderr.exp64 manuel2.stdout.exp manuel2.vgtest \ 110 manuel3.stderr.exp manuel3.vgtest \ 111 match-overrun.stderr.exp match-overrun.vgtest match-overrun.supp \ 112 memalign_test.stderr.exp memalign_test.vgtest \ 113 memalign2.stderr.exp memalign2.vgtest \ 114 memcmptest.stderr.exp memcmptest.stderr.exp2 \ 115 memcmptest.stdout.exp memcmptest.vgtest \ 116 mempool.stderr.exp mempool.vgtest \ 117 metadata.stderr.exp metadata.stdout.exp metadata.vgtest \ 118 mismatches.stderr.exp mismatches.vgtest \ 119 mmaptest.stderr.exp mmaptest.vgtest \ 120 nanoleak_supp.stderr.exp nanoleak_supp.vgtest nanoleak.supp \ 121 nanoleak2.stderr.exp nanoleak2.vgtest \ 122 new_nothrow.stderr.exp new_nothrow.vgtest \ 123 new_override.stderr.exp new_override.stdout.exp new_override.vgtest \ 124 noisy_child.vgtest noisy_child.stderr.exp noisy_child.stdout.exp \ 125 null_socket.stderr.exp null_socket.vgtest \ 126 origin1-yes.vgtest origin1-yes.stdout.exp origin1-yes.stderr.exp \ 127 origin2-not-quite.vgtest origin2-not-quite.stdout.exp \ 128 origin2-not-quite.stderr.exp \ 129 origin3-no.vgtest origin3-no.stdout.exp \ 130 origin3-no.stderr.exp \ 131 origin4-many.vgtest origin4-many.stdout.exp \ 132 origin4-many.stderr.exp \ 133 origin5-bz2.vgtest origin5-bz2.stdout.exp \ 134 origin5-bz2.stderr.exp-glibc25-x86 \ 135 origin5-bz2.stderr.exp-glibc25-amd64 \ 136 origin5-bz2.stderr.exp-glibc27-ppc64 \ 137 origin6-fp.vgtest origin6-fp.stdout.exp \ 138 origin6-fp.stderr.exp-glibc25-amd64 \ 139 origin6-fp.stderr.exp-glibc27-ppc64 \ 140 overlap.stderr.exp overlap.stdout.exp overlap.vgtest \ 141 partiallydefinedeq.vgtest partiallydefinedeq.stderr.exp \ 142 partiallydefinedeq.stderr.exp2 \ 143 partiallydefinedeq.stdout.exp \ 144 partial_load_ok.vgtest partial_load_ok.stderr.exp partial_load_ok.stderr.exp64 \ 145 partial_load_dflt.vgtest partial_load_dflt.stderr.exp partial_load_dflt.stderr.exp64 \ 146 pdb-realloc.stderr.exp pdb-realloc.vgtest \ 147 pdb-realloc2.stderr.exp pdb-realloc2.stdout.exp pdb-realloc2.vgtest \ 148 pipe.stderr.exp pipe.vgtest \ 149 pointer-trace.vgtest \ 150 pointer-trace.stderr.exp \ 151 post-syscall.stderr.exp post-syscall.vgtest \ 152 realloc1.stderr.exp realloc1.vgtest \ 153 realloc2.stderr.exp realloc2.vgtest \ 154 realloc3.stderr.exp realloc3.vgtest \ 155 sh-mem.stderr.exp sh-mem.vgtest \ 156 sh-mem-random.stderr.exp sh-mem-random.stdout.exp64 \ 157 sh-mem-random.stdout.exp sh-mem-random.vgtest \ 158 sigaltstack.stderr.exp sigaltstack.vgtest \ 159 sigkill.stderr.exp sigkill.stderr.exp-darwin sigkill.vgtest \ 160 signal2.stderr.exp signal2.stdout.exp signal2.vgtest \ 161 sigprocmask.stderr.exp sigprocmask.stderr.exp2 sigprocmask.vgtest \ 162 strchr.stderr.exp strchr.stderr.exp2 strchr.stderr.exp-darwin \ 163 strchr.vgtest \ 164 str_tester.stderr.exp str_tester.vgtest \ 165 supp-dir.vgtest supp-dir.stderr.exp \ 166 supp_unknown.stderr.exp supp_unknown.vgtest supp_unknown.supp \ 167 supp1.stderr.exp supp1.vgtest \ 168 supp2.stderr.exp supp2.vgtest \ 169 supp.supp \ 170 suppfree.stderr.exp suppfree.vgtest \ 171 trivialleak.stderr.exp trivialleak.vgtest \ 172 unit_libcbase.stderr.exp unit_libcbase.vgtest \ 173 unit_oset.stderr.exp unit_oset.stdout.exp unit_oset.vgtest \ 174 varinfo1.vgtest varinfo1.stdout.exp varinfo1.stderr.exp varinfo1.stderr.exp-ppc64\ 175 varinfo2.vgtest varinfo2.stdout.exp varinfo2.stderr.exp varinfo2.stderr.exp-ppc64\ 176 varinfo3.vgtest varinfo3.stdout.exp varinfo3.stderr.exp varinfo3.stderr.exp-ppc64\ 177 varinfo4.vgtest varinfo4.stdout.exp varinfo4.stderr.exp varinfo4.stderr.exp-ppc64\ 178 varinfo5.vgtest varinfo5.stdout.exp varinfo5.stderr.exp varinfo5.stderr.exp-ppc64\ 179 varinfo6.vgtest varinfo6.stdout.exp varinfo6.stderr.exp varinfo6.stderr.exp-ppc64\ 180 vcpu_bz2.stdout.exp vcpu_bz2.stderr.exp vcpu_bz2.vgtest \ 181 vcpu_fbench.stdout.exp vcpu_fbench.stderr.exp vcpu_fbench.vgtest \ 182 vcpu_fnfns.stdout.exp vcpu_fnfns.stdout.exp-glibc28-amd64 \ 183 vcpu_fnfns.stdout.exp-darwin vcpu_fnfns.stderr.exp vcpu_fnfns.vgtest \ 184 wrap1.vgtest wrap1.stdout.exp wrap1.stderr.exp \ 185 wrap2.vgtest wrap2.stdout.exp wrap2.stderr.exp \ 186 wrap3.vgtest wrap3.stdout.exp wrap3.stderr.exp \ 187 wrap4.vgtest wrap4.stdout.exp wrap4.stderr.exp \ 188 wrap5.vgtest wrap5.stdout.exp wrap5.stderr.exp \ 189 wrap6.vgtest wrap6.stdout.exp wrap6.stderr.exp \ 190 wrap7.vgtest wrap7.stdout.exp wrap7.stderr.exp \ 191 wrap8.vgtest wrap8.stdout.exp wrap8.stderr.exp \ 192 wrap8.stdout.exp2 wrap8.stderr.exp2 \ 193 writev.stderr.exp writev.vgtest \ 194 xml1.stderr.exp xml1.stdout.exp xml1.vgtest 195 196 check_PROGRAMS = \ 197 addressable \ 198 atomic_incs \ 199 badaddrvalue badfree badjump badjump2 \ 200 badloop \ 201 badpoll \ 202 badrw \ 203 brk2 \ 204 buflen_check \ 205 calloc-overflow \ 206 clientperm \ 207 custom_alloc \ 208 custom-overlap \ 209 deep_templates \ 210 describe-block \ 211 doublefree error_counts errs1 exitprog execve execve2 erringfds \ 212 file_locking \ 213 fprw fwrite inits inline \ 214 leak-0 \ 215 leak-cases \ 216 leak-cycle \ 217 leak-pool \ 218 leak-tree \ 219 linux-syslog-syscall \ 220 linux-syscalls-2007 \ 221 long_namespace_xml \ 222 long-supps \ 223 mallinfo \ 224 malloc_free_fill \ 225 malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 \ 226 match-overrun \ 227 memalign_test memalign2 memcmptest mempool mmaptest \ 228 mismatches new_override metadata \ 229 nanoleak_supp nanoleak2 new_nothrow \ 230 noisy_child \ 231 null_socket \ 232 origin1-yes origin2-not-quite origin3-no \ 233 origin4-many origin5-bz2 origin6-fp \ 234 overlap \ 235 partiallydefinedeq \ 236 partial_load pdb-realloc pdb-realloc2 \ 237 pipe pointer-trace \ 238 post-syscall \ 239 realloc1 realloc2 realloc3 \ 240 sh-mem sh-mem-random \ 241 sigaltstack signal2 sigprocmask sigkill \ 242 strchr \ 243 str_tester \ 244 supp_unknown supp1 supp2 suppfree \ 245 trivialleak \ 246 unit_libcbase unit_oset \ 247 varinfo1 varinfo2 varinfo3 varinfo4 \ 248 varinfo5 varinfo5so.so varinfo6 \ 249 vcpu_fbench vcpu_fnfns \ 250 xml1 \ 251 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 \ 252 writev 253 254 255 AM_CFLAGS += $(AM_FLAG_M3264_PRI) 256 AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) 257 258 if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX 259 AM_CFLAGS += -mfloat-abi=softfp 260 AM_CXXFLAGS += -mfloat-abi=softfp 261 endif 262 263 if VGCONF_OS_IS_DARWIN 264 atomic_incs_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic 265 else 266 atomic_incs_CFLAGS = $(AM_CFLAGS) 267 endif 268 269 deep_templates_SOURCES = deep_templates.cpp 270 deep_templates_CXXFLAGS = $(AM_CFLAGS) -O -gstabs 271 272 error_counts_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@ 273 274 inits_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@ 275 276 long_namespace_xml_SOURCES = long_namespace_xml.cpp 277 278 manuel1_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@ 279 280 memcmptest_CFLAGS = $(AM_CFLAGS) -fno-builtin-memcmp 281 282 mismatches_SOURCES = mismatches.cpp 283 284 new_nothrow_SOURCES = new_nothrow.cpp 285 new_override_SOURCES = new_override.cpp 286 287 origin2_not_quite_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@ 288 289 origin3_no_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@ 290 291 # This requires optimisation in order to get just one resulting error. 292 origin4_many_CFLAGS = $(AM_CFLAGS) -O 293 294 # Apply -O so as to run in reasonable time. 295 origin5_bz2_CFLAGS = $(AM_CFLAGS) -O -Wno-inline 296 origin6_fp_CFLAGS = $(AM_CFLAGS) -O 297 298 # Don't allow GCC to inline memcpy(), because then we can't intercept it 299 overlap_CFLAGS = $(AM_CFLAGS) -fno-builtin-memcpy 300 301 str_tester_CFLAGS = $(AM_CFLAGS) -Wno-shadow 302 303 supp_unknown_SOURCES = badjump.c 304 supp1_SOURCES = supp.c 305 supp2_SOURCES = supp.c 306 307 vcpu_bz2_CFLAGS = $(AM_CFLAGS) -O2 308 vcpu_fbench_CFLAGS = $(AM_CFLAGS) -O2 309 vcpu_fnfns_CFLAGS = $(AM_CFLAGS) -O2 310 vcpu_fnfns_LDADD = -lm 311 wrap6_CFLAGS = $(AM_CFLAGS) -O2 312 313 # To make it a bit more realistic, have some optimisation enabled 314 # for the varinfo tests. We still expect sane results. 315 varinfo1_CFLAGS = $(AM_CFLAGS) -O 316 varinfo2_CFLAGS = $(AM_CFLAGS) -O -Wno-shadow 317 varinfo3_CFLAGS = $(AM_CFLAGS) -O 318 varinfo4_CFLAGS = $(AM_CFLAGS) -O 319 varinfo5_CFLAGS = $(AM_CFLAGS) -O 320 varinfo6_CFLAGS = $(AM_CFLAGS) -O 321 322 if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5 323 if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5 324 else 325 # persuade the AIX linker not to junk apparently unused 326 # function descriptors. Unfortunately -Wl,-G -Wl,-bnogc 327 # produces a link error on 64-bit AIX, hence only 32-bit 328 # gets these flags. 329 wrap1_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 330 wrap2_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 331 wrap3_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 332 wrap4_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 333 wrap5_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 334 wrap6_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 335 wrap8_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 336 endif 337 endif 338 339 # Build shared object for varinfo5 340 varinfo5_SOURCES = varinfo5.c 341 varinfo5_DEPENDENCIES = varinfo5so.so 342 if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5 343 varinfo5_LDADD = `pwd`/varinfo5so.so 344 varinfo5_LDFLAGS = $(AM_FLAG_M3264_PRI) 345 else 346 if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5 347 varinfo5_LDADD = `pwd`/varinfo5so.so 348 varinfo5_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 349 else 350 if VGCONF_OS_IS_DARWIN 351 varinfo5_LDADD = `pwd`/varinfo5so.so 352 varinfo5_LDFLAGS = $(AM_FLAG_M3264_PRI) 353 else 354 varinfo5_LDADD = varinfo5so.so 355 varinfo5_LDFLAGS = $(AM_FLAG_M3264_PRI) \ 356 -Wl,-rpath,$(top_builddir)/memcheck/tests 357 endif 358 endif 359 360 varinfo5so_so_SOURCES = varinfo5so.c 361 varinfo5so_so_CFLAGS = $(AM_CFLAGS) -fpic -O -Wno-shadow 362 if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5 363 varinfo5so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared 364 else 365 if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5 366 varinfo5so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared \ 367 -Wl,-G -Wl,-bnogc 368 else 369 if VGCONF_OS_IS_DARWIN 370 varinfo5so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -dynamic \ 371 -dynamiclib -all_load 372 else 373 varinfo5so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared \ 374 -Wl,-soname -Wl,varinfo5so.so 375 endif 376 endif 377 endif 378 379 # Build shared object for wrap7 380 wrap7_SOURCES = wrap7.c 381 wrap7_DEPENDENCIES = wrap7so.so 382 if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5 383 wrap7_LDADD = `pwd`/wrap7so.so 384 wrap7_LDFLAGS = $(AM_FLAG_M3264_PRI) 385 else 386 if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5 387 wrap7_LDADD = `pwd`/wrap7so.so 388 wrap7_LDFLAGS = $(AM_FLAG_M3264_PRI) -Wl,-G -Wl,-bnogc 389 else 390 if VGCONF_OS_IS_DARWIN 391 wrap7_LDADD = `pwd`/wrap7so.so 392 wrap7_LDFLAGS = $(AM_FLAG_M3264_PRI) 393 else 394 wrap7_LDADD = wrap7so.so 395 wrap7_LDFLAGS = $(AM_FLAG_M3264_PRI) \ 396 -Wl,-rpath,$(top_builddir)/memcheck/tests 397 endif 398 endif 399 endif 400 401 wrap7so_so_SOURCES = wrap7so.c 402 wrap7so_so_CFLAGS = $(AM_CFLAGS) -fpic 403 if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5 404 wrap7so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared 405 else 406 if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5 407 wrap7so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared \ 408 -Wl,-G -Wl,-bnogc 409 else 410 if VGCONF_OS_IS_DARWIN 411 wrap7so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -dynamic \ 412 -dynamiclib -all_load 413 else 414 wrap7so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared \ 415 -Wl,-soname -Wl,wrap7so.so 416 endif 417 endif 418 endif 419 420 endif 421 422