- 论坛徽章:
- 0
|
由于需要,将一个initcall section加入到链接脚本,我的做法如下:
在include/asm-generic/vmlinux.lds.h中加入我定义的section
#define INITCALLS \
591 *(.initcallearly.init) \
592 VMLINUX_SYMBOL(__early_initcall_end) = .; \
593 *(.initcall0.init) \
594 *(.initcall0s.init) \
595 *(.initcall1.init) \
596 *(.initcall1s.init) \
597 *(.initcall2.init) \
598 *(.initcall2s.init) \
599 *(.initcall3.init) \
600 *(.initcall3s.init) \
601 *(.initcall4e.init) \ 我定义的
602 *(.initcall4.init) \
603 *(.initcall4s.init) \
604 *(.initcall5.init) \
605 *(.initcall5s.init) \
606 *(.initcallrootfs.init) \
607 *(.initcall6.init) \
608 *(.initcall6s.init) \
609 *(.initcall7.init) \
610 *(.initcall7s.init)
最后在vmlinux.lds里面也生成了。
后面再init.h加入
194 #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)
195 #define imsert_my(fn) __define_initcall("4e",fn,4e)//我添加的
196 //add by maverick
197 #define subsys_initcall(fn) __define_initcall("4",fn,4)
198 #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)
199 #define fs_initcall(fn) __define_initcall("5",fn,5)
然后我将一个函数imsert_my,结果在System.map文件中看不到,反汇编该文件,这函数甚至没有被编译进去。求解!!!!!!!!!!!!!!!!!!!!! |
|