noinst_PROGRAMS = test_urcu test_urcu_dynamic_link test_urcu_timing \
test_rwlock_timing test_rwlock test_perthreadlock_timing \
test_perthreadlock test_urcu_yield test_urcu_mb \
- test_qsbr_timing test_qsbr urcutorture \
- urcutorture-yield test_mutex test_looplen test_urcu_gc \
+ test_qsbr_timing test_qsbr rcutorture_urcu \
+ rcutorture_urcu_mb rcutorture_urcu_bp rcutorture_qsbr \
+ test_mutex test_looplen test_urcu_gc \
test_urcu_gc_mb test_qsbr_gc test_qsbr_lgc test_urcu_lgc \
test_urcu_lgc_mb test_qsbr_dynamic_link test_urcu_mb_defer \
test_uatomic test_urcu_assign test_urcu_assign_dynamic_link \
test_urcu_bp test_urcu_bp_dynamic_link
-
noinst_HEADERS = rcutorture.h
if COMPAT_ARCH
# -DURCU_MB must be defined
URCU_MB_DEFER=$(top_builddir)/urcu.c $(top_builddir)/urcu-defer.c $(top_builddir)/urcu-pointer.c $(COMPAT)
+URCU_SIGNAL_LIB=$(top_builddir)/liburcu.la
+URCU_MB_LIB=$(top_builddir)/liburcu-mb.la
+URCU_BP_LIB=$(top_builddir)/liburcu-bp.la
+URCU_QSBR_LIB=$(top_builddir)/liburcu-qsbr.la
if GCC_API
APIHEADER=api_gcc.h
test_qsbr_SOURCES = test_qsbr.c $(URCU_QSBR)
-urcutorture_SOURCES = api.h urcutorture.c $(URCU_SIGNAL)
+rcutorture_urcu_SOURCES = api.h urcutorture.c
+rcutorture_urcu_CFLAGS = -DTORTURE_URCU_SIGNAL $(AM_CFLAGS)
+rcutorture_urcu_LDADD = $(URCU_SIGNAL_LIB)
+
+rcutorture_urcu_mb_SOURCES = api.h urcutorture.c
+rcutorture_urcu_mb_CFLAGS = -DTORTURE_URCU_MB $(AM_CFLAGS)
+rcutorture_urcu_mb_LDADD = $(URCU_MB_LIB)
+
+rcutorture_qsbr_SOURCES = api.h urcutorture.c
+rcutorture_qsbr_CFLAGS = -DTORTURE_QSBR $(AM_CFLAGS)
+rcutorture_qsbr_LDADD = $(URCU_QSBR_LIB)
-urcutorture_yield_SOURCES = api.h urcutorture.c $(URCU_SIGNAL_YIELD)
-urcutorture_yield_CFLAGS = -DDEBUG_YIELD $(AM_CFLAGS)
+rcutorture_urcu_bp_SOURCES = api.h urcutorture.c
+rcutorture_urcu_bp_CFLAGS = -DTORTURE_URCU_BP $(AM_CFLAGS)
+rcutorture_urcu_bp_LDADD = $(URCU_BP_LIB)
test_mutex_SOURCES = test_mutex.c $(URCU_SIGNAL)
test_urcu_bp_dynamic_link_SOURCES = test_urcu_bp.c $(URCU_BP)
test_urcu_bp_dynamic_link_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS)
-urcutorture.o: api.h
+*.o: api.h
api.h: $(APIHEADER)
cp -f $(srcdir)/$(APIHEADER) api.h
#define rcu_read_unlock_nest()
#endif /* #else #ifdef RCU_READ_NESTABLE */
+#ifdef TORTURE_QSBR
+#define mark_rcu_quiescent_state rcu_quiescent_state
+#define put_thread_offline rcu_thread_offline
+#define put_thread_online rcu_thread_online
+#endif
+
#ifndef mark_rcu_quiescent_state
#define mark_rcu_quiescent_state() do ; while (0)
#endif /* #ifdef mark_rcu_quiescent_state */