[lttng-dev] [PATCH] Force static_alloc setup to be written into memory
Alexander Monakov
amonakov at ispras.ru
Fri Feb 14 09:23:19 EST 2014
On Fri, 14 Feb 2014, Paul Woegerer wrote:
> As explained by Alexander Monakov, dlsym() is defined to be pure, thus the
> compiler is allowed to assume that there is no need to write the changes
> performed by setup_static_allocator() into memory prior to calling dlsym().
> The added cmm_barrier() forces the compiler to write the changes into memory.
>
> For more details refer to:
> http://lists.lttng.org/pipermail/lttng-dev/2014-February/022389.html
If everyone here agrees that this is a workaround for a glibc bug, please add
a note to that effect in the patch and please notify glibc upstream (again).
FWIW, when toying with a similar code I implemented a different workaround
along the lines of
#define dlsym glibc_dlsym_proto_lies_about_leafness
#include <dlfcn.h>
#undef dlsym
extern void *dlsym(void *, const char *);
Thus avoiding the need to sprinkle unneeded compiler memory barriers in code.
HTH
Alexander
More information about the lttng-dev
mailing list