Commit 1cf60226 authored by Rusty Russell's avatar Rusty Russell

autodata: make note about not being generally useful for shared libraries.

If you have sections, it might still work for some cases though: on x86
Ubuntu it worked once I changed the section name from autodata to xautodata.
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent b5f5d105
......@@ -8,6 +8,9 @@
* together at runtime to form tables. This is often used in place of
* having a central registration function or table.
*
* Note that this technique does not work in general for shared libaries,
* only for code compiled into a binary.
*
* License: BSD-MIT
*
* Example:
......
......@@ -23,7 +23,7 @@
*/
#define AUTODATA_TYPE(name, type) \
typedef type autodata_##name##_; \
extern type *__start_autodata_##name[], *__stop_autodata_##name[]
extern type *__start_xautodata_##name[], *__stop_xautodata_##name[]
/**
* AUTODATA - add a pointer to this autodata set
......@@ -42,7 +42,7 @@
*/
#define AUTODATA(name, ptr) \
static const autodata_##name##_ *NEEDED \
__attribute__((section("autodata_" #name))) \
__attribute__((section("xautodata_" #name))) \
AUTODATA_VAR_(name, __LINE__) = (ptr);
/**
......@@ -68,8 +68,8 @@
*/
#define autodata_get(name, nump) \
((autodata_##name##_ **) \
autodata_get_section(__start_autodata_##name, \
__stop_autodata_##name, (nump)))
autodata_get_section(__start_xautodata_##name, \
__stop_xautodata_##name, (nump)))
#endif /* HAVE_SECTION_START_STOP */
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment