Ensure the main executable has at least one TLS variable which will be
allocated before the rseq area, making sure the rseq_offset is not 0. This
allows testing that the rseq_offset variable is properly initialized by
checking it is not 0.
Most toolchains will add at least one main exec TLS variable but it's
currently not the case on RISC-V.
Change-Id: I1c50640c4f32ea5ef65b0b823e7be75fd92b303d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
#include "tap.h"
+/*
+ * Ensure the main executable has at least one TLS variable which will be
+ * allocated before the rseq area, making sure the rseq_offset is not 0. This
+ * allows testing that the rseq_offset variable is properly initialized by
+ * checking it is not 0.
+ *
+ * Most toolchains will add at least one main exec TLS variable but it's
+ * currently not the case on RISC-V.
+ */
+__thread int dummy_tls = -1;
+
static void test_registered(void)
{
struct rseq_abi *rseq_abi = rseq_get_abi();
#define NR_TESTS 4
+/*
+ * Ensure the main executable has at least one TLS variable which will be
+ * allocated before the rseq area, making sure the rseq_offset is not 0. This
+ * allows testing that the rseq_offset variable is properly initialized by
+ * checking it is not 0.
+ *
+ * Most toolchains will add at least one main exec TLS variable but it's
+ * currently not the case on RISC-V.
+ */
+__thread int dummy_tls = -1;
+
/*
* Check the state of the public symbols when the rseq syscall is available but
* no thread has registered.