The ust-dl wrapper ends up calling into the getenv common lib very early
from library constructors through use of dlopen by the tracepoint
instrumentation code.
This happens before the getenv common lib is explicitly initialized by
liblttng-ust's contructor.
Perform lazy initialization for those early use by constructor
scenarios.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9f84bb776a62e03b11db0386e267df00eb165ddd
struct lttng_env *e;
bool found = false;
- if (!CMM_LOAD_SHARED(lttng_ust_getenv_is_init))
- abort();
+ /*
+ * Perform lazy initialization of lttng_ust_getenv for early use
+ * by library constructors.
+ */
+ lttng_ust_getenv_init();
for (i = 0; i < LTTNG_ARRAY_SIZE(lttng_env); i++) {
e = <tng_env[i];