vmlinux.lds.h: add HEADERED_SECTION_* macros
[linux-2.6-microblaze.git] / include / asm-generic / vmlinux.lds.h
index c17f947..c9a475a 100644 (file)
 
 #define BOUNDED_SECTION(_sec)   BOUNDED_SECTION_BY(_sec, _sec)
 
+#define HEADERED_SECTION_PRE_LABEL(_sec_, _label_, _BEGIN_, _END_, _HDR_) \
+       _HDR_##_label_  = .;                                            \
+       KEEP(*(.gnu.linkonce.##_sec_))                                  \
+       BOUNDED_SECTION_PRE_LABEL(_sec_, _label_, _BEGIN_, _END_)
+
+#define HEADERED_SECTION_POST_LABEL(_sec_, _label_, _BEGIN_, _END_, _HDR_) \
+       _label_##_HDR_ = .;                                             \
+       KEEP(*(.gnu.linkonce.##_sec_))                                  \
+       BOUNDED_SECTION_POST_LABEL(_sec_, _label_, _BEGIN_, _END_)
+
+#define HEADERED_SECTION_BY(_sec_, _label_)                            \
+       HEADERED_SECTION_PRE_LABEL(_sec_, _label_, __start, __stop)
+
+#define HEADERED_SECTION(_sec)  HEADERED_SECTION_BY(_sec, _sec)
+
 #ifdef CONFIG_TRACE_BRANCH_PROFILING
 #define LIKELY_PROFILE()                                               \
        BOUNDED_SECTION_BY(_ftrace_annotated_branch, _annotated_branch_profile)