*/
 extern void unwind_init(void);
 
+#ifdef CONFIG_MODULES
+
 extern void *unwind_add_table(struct module *,
                               const void *table_start,
                               unsigned long table_size);
 
 extern void unwind_remove_table(void *handle, int init_only);
 
+#endif
+
 extern int unwind_init_frame_info(struct unwind_frame_info *,
                                   struct task_struct *,
                                   /*const*/ struct pt_regs *);
 
 static inline void unwind_init(void) {}
 
+#ifdef CONFIG_MODULES
+
 static inline void *unwind_add_table(struct module *mod,
                                      const void *table_start,
                                      unsigned long table_size)
        return NULL;
 }
 
+#endif
+
 static inline void unwind_remove_table(void *handle, int init_only)
 {
 }
 
                          __start_unwind, __end_unwind - __start_unwind);
 }
 
+#ifdef CONFIG_MODULES
+
 /* Must be called with module_mutex held. */
 void *unwind_add_table(struct module *module,
                        const void *table_start,
                kfree(table);
 }
 
+#endif /* CONFIG_MODULES */
+
 static uleb128_t get_uleb128(const u8 **pcur, const u8 *end)
 {
        const u8 *cur = *pcur;