Check if the linker support the 'notext' keyword to allow relocations
against read-only segments. GNU ld defaults to notext but LLVM's ld does
not, both linkers support the keyword.
This is required for the plugins section symbols.
Change-Id: I2b5f5c77865267e35c529dd17a0298cd4405303d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+# Check if the linker supports the "notext" keyword
+AX_CHECK_LINK_FLAG([-Wl,-z,notext],[
+ AC_SUBST([LD_NOTEXT], [-Wl,-z,notext])
+])
+
## ##
## Programs checks ##
## ##
## Programs checks ##
babeltrace_plugin_ctf_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
babeltrace_plugin_ctf_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
+ -avoid-version -module $(LD_NOTEXT)
babeltrace_plugin_ctf_la_LIBADD = \
common/libbabeltrace2-plugin-ctf-common.la \
babeltrace_plugin_ctf_la_LIBADD = \
common/libbabeltrace2-plugin-ctf-common.la \
babeltrace_plugin_lttng_utils_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
babeltrace_plugin_lttng_utils_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
- -avoid-version -module \
+ -avoid-version -module $(LD_NOTEXT) \
$(ELFUTILS_LIBS)
if !ENABLE_BUILT_IN_PLUGINS
$(ELFUTILS_LIBS)
if !ENABLE_BUILT_IN_PLUGINS
babeltrace_plugin_text_la_SOURCES = plugin.c
babeltrace_plugin_text_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
babeltrace_plugin_text_la_SOURCES = plugin.c
babeltrace_plugin_text_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
+ -avoid-version -module $(LD_NOTEXT)
babeltrace_plugin_text_la_LIBADD = \
pretty/libbabeltrace2-plugin-text-pretty-cc.la \
babeltrace_plugin_text_la_LIBADD = \
pretty/libbabeltrace2-plugin-text-pretty-cc.la \
babeltrace_plugin_utils_la_SOURCES = plugin.c
babeltrace_plugin_utils_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
babeltrace_plugin_utils_la_SOURCES = plugin.c
babeltrace_plugin_utils_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
+ -avoid-version -module $(LD_NOTEXT)
babeltrace_plugin_utils_la_LIBADD = \
dummy/libbabeltrace2-plugin-dummy-cc.la \
muxer/libbabeltrace2-plugin-muxer.la \
babeltrace_plugin_utils_la_LIBADD = \
dummy/libbabeltrace2-plugin-dummy-cc.la \
muxer/libbabeltrace2-plugin-muxer.la \
plugin_minimal_la_SOURCES = minimal.c
plugin_minimal_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
plugin_minimal_la_SOURCES = minimal.c
plugin_minimal_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
- -rpath / -avoid-version -module
+ -rpath / -avoid-version -module $(LD_NOTEXT)
plugin_minimal_la_LIBADD = \
$(top_builddir)/src/lib/libbabeltrace2.la \
$(top_builddir)/src/common/libbabeltrace2-common.la \
plugin_minimal_la_LIBADD = \
$(top_builddir)/src/lib/libbabeltrace2.la \
$(top_builddir)/src/common/libbabeltrace2-common.la \
plugin_sfs_la_SOURCES = sfs.c
plugin_sfs_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
plugin_sfs_la_SOURCES = sfs.c
plugin_sfs_la_LDFLAGS = \
$(LT_NO_UNDEFINED) \
- -rpath / -avoid-version -module
+ -rpath / -avoid-version -module $(LD_NOTEXT)
plugin_sfs_la_LIBADD = \
$(top_builddir)/src/lib/libbabeltrace2.la \
$(top_builddir)/src/common/libbabeltrace2-common.la \
plugin_sfs_la_LIBADD = \
$(top_builddir)/src/lib/libbabeltrace2.la \
$(top_builddir)/src/common/libbabeltrace2-common.la \