1 2include $(top_srcdir)/Makefile.tool-tests.am 3 4dist_noinst_SCRIPTS = \ 5 compare_error_count_with \ 6 filter_annotate_barrier_xml \ 7 filter_error_count \ 8 filter_error_summary \ 9 filter_stderr \ 10 filter_stderr_and_thread_no \ 11 filter_stderr_and_thread_no_and_offset \ 12 filter_stderr_solaris \ 13 filter_thread_no \ 14 filter_thread_name_xml \ 15 filter_xml_and_thread_no \ 16 run_openmp_test \ 17 supported_libpthread \ 18 supported_sem_init 19 20noinst_HEADERS = \ 21 tsan_thread_wrappers_pthread.h \ 22 unified_annotations.h 23 24EXTRA_DIST = \ 25 annotate_barrier.stderr.exp \ 26 annotate_barrier.vgtest \ 27 annotate_barrier_xml.stderr.exp \ 28 annotate_barrier_xml.vgtest \ 29 annotate_hb_err.stderr.exp \ 30 annotate_hb_err.vgtest \ 31 annotate_hb_race.stderr.exp \ 32 annotate_hb_race.vgtest \ 33 annotate_hbefore.stderr.exp \ 34 annotate_hbefore.vgtest \ 35 annotate_order_1.stderr.exp \ 36 annotate_order_1.vgtest \ 37 annotate_order_2.stderr.exp \ 38 annotate_order_2.vgtest \ 39 annotate_order_3.stderr.exp \ 40 annotate_order_3.vgtest \ 41 annotate_publish_hg.stderr.exp \ 42 annotate_publish_hg.vgtest \ 43 annotate_sem.stderr.exp \ 44 annotate_sem.vgtest \ 45 annotate_smart_pointer.stderr.exp \ 46 annotate_smart_pointer.vgtest \ 47 annotate_smart_pointer2.stderr.exp \ 48 annotate_smart_pointer2.stderr.exp-darwin \ 49 annotate_smart_pointer2.vgtest \ 50 annotate_spinlock.stderr.exp \ 51 annotate_spinlock.vgtest \ 52 annotate_rwlock.stderr.exp \ 53 annotate_rwlock.vgtest \ 54 annotate_rwlock_hg.stderr.exp \ 55 annotate_rwlock_hg.vgtest \ 56 annotate_ignore_read.stderr.exp \ 57 annotate_ignore_read.vgtest \ 58 annotate_ignore_rw.stderr.exp \ 59 annotate_ignore_rw.vgtest \ 60 annotate_ignore_rw2.stderr.exp \ 61 annotate_ignore_rw2.stderr.exp-solaris \ 62 annotate_ignore_rw2.vgtest \ 63 annotate_ignore_write.stderr.exp \ 64 annotate_ignore_write.stderr.exp-solaris \ 65 annotate_ignore_write.vgtest \ 66 annotate_ignore_write2.stderr.exp \ 67 annotate_ignore_write2.stderr.exp-solaris \ 68 annotate_ignore_write2.vgtest \ 69 annotate_trace_memory.stderr.exp-32bit \ 70 annotate_trace_memory.stderr.exp-64bit \ 71 annotate_trace_memory.stderr.exp-mips32 \ 72 annotate_trace_memory.vgtest \ 73 annotate_trace_memory_xml.stderr.exp-32bit \ 74 annotate_trace_memory_xml.stderr.exp-64bit \ 75 annotate_trace_memory_xml.stderr.exp-mips32 \ 76 annotate_trace_memory_xml.vgtest \ 77 annotate_sem.stderr.exp \ 78 annotate_sem.vgtest \ 79 annotate_static.stderr.exp \ 80 annotate_static.vgtest \ 81 atomic_var.stderr.exp \ 82 atomic_var.vgtest \ 83 bar_bad.stderr.exp \ 84 bar_bad.vgtest \ 85 bar_bad_xml.stderr.exp \ 86 bar_bad_xml.vgtest \ 87 bar_trivial.stderr.exp \ 88 bar_trivial.stdout.exp \ 89 bar_trivial.vgtest \ 90 boost_thread.stderr.exp \ 91 boost_thread.vgtest \ 92 bug-235681.stderr.exp \ 93 bug-235681.vgtest \ 94 circular_buffer.stderr.exp \ 95 circular_buffer.vgtest \ 96 concurrent_close.stderr.exp \ 97 concurrent_close.vgtest \ 98 custom_alloc.stderr.exp \ 99 custom_alloc.vgtest \ 100 custom_alloc_fiw.stderr.exp \ 101 custom_alloc_fiw.vgtest \ 102 fp_race.stderr.exp \ 103 fp_race.stderr.exp-mips32-be \ 104 fp_race.stderr.exp-mips32-le \ 105 fp_race.vgtest \ 106 fp_race2.stderr.exp \ 107 fp_race2.vgtest \ 108 fp_race_xml.stderr.exp \ 109 fp_race_xml.stderr.exp-mips32-be \ 110 fp_race_xml.stderr.exp-mips32-le \ 111 fp_race_xml.stderr.exp-solaris \ 112 fp_race_xml.vgtest \ 113 free_is_write.stderr.exp \ 114 free_is_write.vgtest \ 115 free_is_write2.stderr.exp \ 116 free_is_write2.vgtest \ 117 hg01_all_ok.stderr.exp \ 118 hg01_all_ok.vgtest \ 119 hg02_deadlock.stderr.exp \ 120 hg02_deadlock.vgtest \ 121 hg03_inherit.stderr.exp \ 122 hg03_inherit.vgtest \ 123 hg04_race.stderr.exp \ 124 hg04_race.vgtest \ 125 hg05_race2.stderr.exp \ 126 hg05_race2.stderr.exp-powerpc \ 127 hg05_race2.vgtest \ 128 hg06_readshared.stderr.exp \ 129 hg06_readshared.vgtest \ 130 hold_lock_1.stderr.exp \ 131 hold_lock_1.vgtest \ 132 hold_lock_2.stderr.exp \ 133 hold_lock_2.vgtest \ 134 linuxthreads_det.stderr.exp \ 135 linuxthreads_det.stderr.exp-linuxthreads \ 136 linuxthreads_det.stdout.exp \ 137 linuxthreads_det.stdout.exp-linuxthreads \ 138 linuxthreads_det.vgtest \ 139 local_static.stderr.exp \ 140 local_static.vgtest \ 141 matinv.stderr.exp \ 142 matinv.stdout.exp \ 143 matinv.vgtest \ 144 memory_allocation.stderr.exp \ 145 memory_allocation.vgtest \ 146 monitor_example.stderr.exp \ 147 monitor_example.vgtest \ 148 new_delete.stderr.exp \ 149 new_delete.vgtest \ 150 omp_matinv.stderr.exp \ 151 omp_matinv.stdout.exp \ 152 omp_matinv.vgtest \ 153 omp_matinv_racy.stderr.exp \ 154 omp_matinv_racy.stdout.exp \ 155 omp_matinv_racy.vgtest \ 156 omp_prime_racy.stderr.exp \ 157 omp_prime_racy.vgtest \ 158 omp_printf.stderr.exp \ 159 omp_printf.vgtest \ 160 pth_barrier.stderr.exp \ 161 pth_barrier.vgtest \ 162 pth_barrier2.stderr.exp \ 163 pth_barrier2.vgtest \ 164 pth_barrier3.stderr.exp \ 165 pth_barrier3.vgtest \ 166 pth_barrier_race.stderr.exp \ 167 pth_barrier_race.vgtest \ 168 pth_barrier_reinit.stderr.exp \ 169 pth_barrier_reinit.vgtest \ 170 pth_barrier_thr_cr.stderr.exp \ 171 pth_barrier_thr_cr.vgtest \ 172 pth_barrier_thr_cr.supp \ 173 pth_broadcast.stderr.exp \ 174 pth_broadcast.vgtest \ 175 pth_cancel_locked.stderr.exp \ 176 pth_cancel_locked.stderr.exp-darwin \ 177 pth_cancel_locked.vgtest \ 178 pth_cleanup_handler.stderr.exp \ 179 pth_cleanup_handler.vgtest \ 180 pth_cond_destroy_busy.stderr.exp \ 181 pth_cond_destroy_busy.stderr.exp-solaris \ 182 pth_cond_destroy_busy.vgtest \ 183 pth_cond_race.stderr.exp \ 184 pth_cond_race.vgtest \ 185 pth_cond_race2.stderr.exp \ 186 pth_cond_race2.vgtest \ 187 pth_cond_race3.stderr.exp \ 188 pth_cond_race3.vgtest \ 189 pth_create_chain.stderr.exp \ 190 pth_create_chain.vgtest \ 191 pth_create_glibc_2_0.stderr.exp \ 192 pth_create_glibc_2_0.vgtest \ 193 pth_detached.stderr.exp \ 194 pth_detached.stdout.exp \ 195 pth_detached.vgtest \ 196 pth_detached2.stderr.exp \ 197 pth_detached2.stdout.exp \ 198 pth_detached2.vgtest \ 199 pth_detached3.stderr.exp1 \ 200 pth_detached3.stderr.exp2 \ 201 pth_detached3.vgtest \ 202 pth_detached_sem.stderr.exp \ 203 pth_detached_sem.stdout.exp \ 204 pth_detached_sem.vgtest \ 205 pth_inconsistent_cond_wait.stderr.exp1 \ 206 pth_inconsistent_cond_wait.stderr.exp2 \ 207 pth_inconsistent_cond_wait.vgtest \ 208 pth_mutex_reinit.stderr.exp \ 209 pth_mutex_reinit.vgtest \ 210 pth_once.stderr.exp \ 211 pth_once.vgtest \ 212 pth_process_shared_mutex.stderr.exp \ 213 pth_process_shared_mutex.vgtest \ 214 pth_spinlock.stderr.exp \ 215 pth_spinlock.vgtest \ 216 pth_uninitialized_cond.stderr.exp \ 217 pth_uninitialized_cond.vgtest \ 218 read_and_free_race.stderr.exp \ 219 read_and_free_race.vgtest \ 220 recursive_mutex.stderr.exp-linux \ 221 recursive_mutex.stderr.exp-darwin \ 222 recursive_mutex.stderr.exp-solaris \ 223 recursive_mutex.vgtest \ 224 rwlock_race.stderr.exp \ 225 rwlock_race.stderr.exp2 \ 226 rwlock_race.vgtest \ 227 rwlock_test.stderr.exp \ 228 rwlock_test.vgtest \ 229 rwlock_type_checking.stderr.exp \ 230 rwlock_type_checking.vgtest \ 231 sem_as_mutex.stderr.exp \ 232 sem_as_mutex.stderr.exp-mips32-be \ 233 sem_as_mutex.stderr.exp-mips32-le \ 234 sem_as_mutex.vgtest \ 235 sem_as_mutex2.stderr.exp \ 236 sem_as_mutex2.vgtest \ 237 sem_as_mutex3.stderr.exp \ 238 sem_as_mutex3.stderr.exp-mips32-be \ 239 sem_as_mutex3.stderr.exp-mips32-le \ 240 sem_as_mutex3.vgtest \ 241 sem_open.stderr.exp \ 242 sem_open.stderr.exp-mips32-be \ 243 sem_open.stderr.exp-mips32-le \ 244 sem_open.vgtest \ 245 sem_open2.stderr.exp \ 246 sem_open2.vgtest \ 247 sem_open3.stderr.exp \ 248 sem_open3.stderr.exp-mips32-be \ 249 sem_open3.stderr.exp-mips32-le \ 250 sem_open3.vgtest \ 251 sem_open_traced.stderr.exp \ 252 sem_open_traced.vgtest \ 253 sem_wait.stderr.exp \ 254 sem_wait.vgtest \ 255 sigalrm.stderr.exp \ 256 sigalrm.vgtest \ 257 sigaltstack.stderr.exp \ 258 sigaltstack.vgtest \ 259 std_atomic.stderr.exp \ 260 std_atomic.vgtest \ 261 std_list.stderr.exp \ 262 std_list.vgtest \ 263 std_string.stderr.exp \ 264 std_string.vgtest \ 265 std_thread.stderr.exp \ 266 std_thread.vgtest \ 267 std_thread2.stderr.exp \ 268 std_thread2.vgtest \ 269 std_thread2.supp \ 270 str_tester.stderr.exp \ 271 str_tester.vgtest \ 272 tc01_simple_race.stderr.exp \ 273 tc01_simple_race.vgtest \ 274 tc02_simple_tls.stderr.exp \ 275 tc02_simple_tls.vgtest \ 276 tc03_re_excl.stderr.exp \ 277 tc03_re_excl.vgtest \ 278 tc04_free_lock.stderr.exp-x86 \ 279 tc04_free_lock.stderr.exp-ppc \ 280 tc04_free_lock.stderr.exp-s390 \ 281 tc04_free_lock.vgtest \ 282 tc05_simple_race.stderr.exp \ 283 tc05_simple_race.vgtest \ 284 tc06_two_races.stderr.exp \ 285 tc06_two_races.vgtest \ 286 tc07_hbl1.stderr.exp \ 287 tc07_hbl1.stdout.exp \ 288 tc07_hbl1.vgtest \ 289 tc08_hbl2.stderr.exp \ 290 tc08_hbl2.stdout.exp \ 291 tc08_hbl2.vgtest \ 292 tc09_bad_unlock.stderr.exp-x86 \ 293 tc09_bad_unlock.stderr.exp-ppc \ 294 tc09_bad_unlock.stderr.exp-glibc2.8 \ 295 tc09_bad_unlock.stderr.exp-s390 \ 296 tc09_bad_unlock.stderr.exp-solaris \ 297 tc09_bad_unlock.vgtest \ 298 tc10_rec_lock.stderr.exp \ 299 tc10_rec_lock.vgtest \ 300 tc11_XCHG.stderr.exp tc11_XCHG.stdout.exp \ 301 tc11_XCHG.vgtest \ 302 tc12_rwl_trivial.stderr.exp \ 303 tc12_rwl_trivial.vgtest \ 304 tc13_laog1.stderr.exp \ 305 tc13_laog1.vgtest \ 306 tc15_laog_lockdel.stderr.exp \ 307 tc15_laog_lockdel.vgtest \ 308 tc16_byterace.stderr.exp \ 309 tc16_byterace.vgtest \ 310 tc17_sembar.stderr.exp \ 311 tc17_sembar.vgtest \ 312 tc18_semabuse.stderr.exp \ 313 tc18_semabuse.stderr.exp-solaris \ 314 tc18_semabuse.vgtest \ 315 tc19_shadowmem.stderr.exp-32bit \ 316 tc19_shadowmem.stderr.exp-64bit \ 317 tc19_shadowmem.vgtest \ 318 tc21_pthonce.stderr.exp \ 319 tc21_pthonce.stdout.exp \ 320 tc21_pthonce.vgtest \ 321 tc22_exit_w_lock.stderr.exp-32bit \ 322 tc22_exit_w_lock.stderr.exp-64bit \ 323 tc22_exit_w_lock.vgtest \ 324 tc23_bogus_condwait.stderr.exp-linux-x86 \ 325 tc23_bogus_condwait.stderr.exp-linux-ppc \ 326 tc23_bogus_condwait.stderr.exp-darwin-x86 \ 327 tc23_bogus_condwait.stderr.exp-darwin-amd64 \ 328 tc23_bogus_condwait.vgtest \ 329 tc24_nonzero_sem.stderr.exp \ 330 tc24_nonzero_sem.vgtest \ 331 thread_name.stderr.exp \ 332 thread_name.vgtest \ 333 thread_name_xml.stderr.exp \ 334 thread_name_xml.vgtest \ 335 threaded-fork.stderr.exp \ 336 threaded-fork.vgtest \ 337 threaded-fork-vcs.stderr.exp \ 338 threaded-fork-vcs.vgtest \ 339 tls_threads.stderr.exp \ 340 tls_threads.vgtest \ 341 trylock.stderr.exp \ 342 trylock.vgtest \ 343 unit_bitmap.stderr.exp \ 344 unit_bitmap.vgtest \ 345 unit_vc.stderr.exp \ 346 unit_vc.vgtest 347 348 349check_PROGRAMS = \ 350 annotate_hb_err \ 351 annotate_hb_race \ 352 annotate_ignore_rw \ 353 annotate_ignore_write \ 354 annotate_publish_hg \ 355 annotate_static \ 356 annotate_trace_memory \ 357 bug-235681 \ 358 custom_alloc \ 359 concurrent_close \ 360 fp_race \ 361 free_is_write \ 362 hold_lock \ 363 linuxthreads_det \ 364 local_static \ 365 memory_allocation \ 366 monitor_example \ 367 new_delete \ 368 pth_broadcast \ 369 pth_cancel_locked \ 370 pth_cleanup_handler \ 371 pth_cond_destroy_busy \ 372 pth_cond_race \ 373 pth_create_chain \ 374 pth_detached \ 375 pth_detached_sem \ 376 pth_detached3 \ 377 pth_inconsistent_cond_wait \ 378 pth_mutex_reinit \ 379 pth_process_shared_mutex \ 380 pth_uninitialized_cond \ 381 recursive_mutex \ 382 rwlock_race \ 383 rwlock_test \ 384 rwlock_type_checking \ 385 sem_as_mutex \ 386 sem_open \ 387 sigalrm \ 388 threaded-fork \ 389 trylock \ 390 unit_bitmap \ 391 unit_vc 392 393if HAVE_BOOST_1_35 394check_PROGRAMS += boost_thread 395endif 396 397if HAVE_BUILTIN_ATOMIC 398check_PROGRAMS += \ 399 annotate_barrier \ 400 annotate_rwlock \ 401 annotate_sem \ 402 atomic_var \ 403 circular_buffer 404endif 405 406if HAVE_BUILTIN_ATOMIC_CXX 407check_PROGRAMS += \ 408 annotate_smart_pointer \ 409 tsan_unittest 410endif 411 412# clang 3.3 will generate errors about libstdc++ headers from 413# gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 414if CXX_CAN_INCLUDE_THREAD_HEADER 415if HAVE_SHARED_POINTER_ANNOTATION 416check_PROGRAMS += \ 417 std_atomic \ 418 std_list \ 419 std_string \ 420 std_thread \ 421 std_thread2 422endif 423endif 424 425if HAVE_OPENMP 426check_PROGRAMS += omp_matinv omp_prime omp_printf 427endif 428 429if HAVE_PTHREAD_BARRIER 430check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit \ 431 pth_barrier_thr_cr thread_name 432endif 433 434if HAVE_PTHREAD_CREATE_GLIBC_2_0 435check_PROGRAMS += pth_create_glibc_2_0 436endif 437 438if HAVE_PTHREAD_SPINLOCK 439check_PROGRAMS += pth_spinlock 440endif 441 442if !VGCONF_OS_IS_DARWIN 443check_PROGRAMS += sem_wait 444endif 445 446 447AM_CFLAGS += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter 448AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter 449 450LDADD = -lpthread 451 452 453concurrent_close_SOURCES = concurrent_close.cpp 454monitor_example_SOURCES = monitor_example.cpp 455new_delete_SOURCES = new_delete.cpp 456new_delete_CXXFLAGS = $(AM_CXXFLAGS) @FLAG_W_NO_MISMATCHED_NEW_DELETE@ 457 458free_is_write_CFLAGS = $(AM_CFLAGS) 459pth_barrier_CFLAGS = $(AM_CFLAGS) 460if VGCONF_OS_IS_SOLARIS 461free_is_write_CFLAGS += -D__EXTENSIONS__ 462pth_barrier_CFLAGS += -D__EXTENSIONS__ 463endif 464 465pth_create_chain_CFLAGS = $(AM_CFLAGS) 466pth_detached_CFLAGS = $(AM_CFLAGS) 467if VGCONF_OS_IS_SOLARIS 468pth_create_chain_CFLAGS += -D__EXTENSIONS__ 469pth_detached_CFLAGS += -D__EXTENSIONS__ 470endif 471 472tsan_unittest_SOURCES = tsan_unittest.cpp 473tsan_unittest_CXXFLAGS = $(AM_CXXFLAGS) \ 474 -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' 475 476unit_bitmap_CFLAGS = $(AM_CFLAGS) -O2 \ 477 -DENABLE_DRD_CONSISTENCY_CHECKS \ 478 @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ 479unit_bitmap_LDADD = # nothing, i.e. not -lpthread 480 481unit_vc_CFLAGS = $(AM_CFLAGS) -DENABLE_DRD_CONSISTENCY_CHECKS 482unit_vc_LDADD = # nothing, i.e. not -lpthread 483 484if HAVE_BOOST_1_35 485boost_thread_SOURCES = boost_thread.cpp 486boost_thread_CXXFLAGS = $(AM_CXXFLAGS) $(BOOST_CFLAGS) 487boost_thread_LDADD = $(BOOST_LIBS) 488endif 489 490if HAVE_BUILTIN_ATOMIC 491annotate_smart_pointer_SOURCES = annotate_smart_pointer.cpp 492endif 493 494annotate_static_SOURCES = annotate_static.cpp 495annotate_static_CXXFLAGS = $(AM_CXXFLAGS) @FLAG_W_NO_UNUSED_FUNCTION@ 496 497local_static_SOURCES = local_static.cpp 498 499if HAVE_OPENMP 500omp_matinv_CFLAGS = $(AM_CFLAGS) -fopenmp 501omp_matinv_LDFLAGS = -fopenmp 502omp_matinv_LDADD = $(LDADD) -lm 503 504if VGCONF_OS_IS_SOLARIS 505omp_matinv_CFLAGS += -std=gnu99 506endif 507 508omp_prime_CFLAGS = $(AM_CFLAGS) -fopenmp 509omp_prime_LDFLAGS = -fopenmp 510omp_prime_LDADD = $(LDADD) -lm 511 512omp_printf_CFLAGS = $(AM_CFLAGS) -fopenmp 513omp_printf_LDFLAGS = -fopenmp 514omp_printf_LDADD = $(LDADD) -lm 515endif 516 517matinv_CFLAGS = $(AM_CFLAGS) 518if VGCONF_OS_IS_SOLARIS 519matinv_CFLAGS += -std=gnu99 -D__EXTENSIONS__ 520endif 521if HAVE_PTHREAD_BARRIER 522matinv_LDADD = $(LDADD) -lm 523endif 524 525rwlock_test_CFLAGS = $(AM_CFLAGS) 526if VGCONF_OS_IS_SOLARIS 527rwlock_test_CFLAGS += -D__EXTENSIONS__ 528endif 529 530std_atomic_SOURCES = std_atomic.cpp 531std_atomic_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare 532 533std_list_SOURCES = std_list.cpp 534std_list_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare 535 536std_string_SOURCES = std_string.cpp 537std_string_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare 538 539# Note: -Wl,--no-as-needed is a workaround for 540# https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1228201 541 542std_thread_SOURCES = std_thread.cpp 543std_thread_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x 544if !VGCONF_OS_IS_SOLARIS 545std_thread_LDFLAGS = -Wl,--no-as-needed 546endif 547 548std_thread2_SOURCES = std_thread2.cpp 549std_thread2_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x 550if !VGCONF_OS_IS_SOLARIS 551std_thread2_LDFLAGS = -Wl,--no-as-needed 552endif 553 554sem_wait_SOURCES = sem_wait.cpp 555