Chinaunix首页 | 论坛 | 博客
  • 博客访问: 317155
  • 博文数量: 72
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-07 17:36
文章分类

全部博文(72)

文章存档

2012年(7)

2011年(17)

2010年(46)

2009年(2)

分类: LINUX

2011-07-13 16:53:47

前几天需要给当前的内核(2.6.27.28)上打上ftrace的patch,由于前一个项目平台是mips的,所以patch也是基于mips的(laura的没找到),打上之后,开启ftrace 的function trace,编译,然后就出现链接错误“linking mips:isa32r2 module with previous mips:laura1x modules”找了一天,没发现什么毛病,为什么加进function-trace就出问题了呢?今天有时间仔细看了下这个patch,发现在出问题的tracepoint打开的情况下,有这么一段
  1. --- scripts/Makefile.build    (版本 4686)
  2. +++ scripts/Makefile.build    (工作副本)
  3. @@ -198,10 +198,18 @@
  4.      fi;
  5.  endif

  6. +ifdef CONFIG_FTRACE_MCOUNT_RECORD
  7. +cmd_record_mcount = perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
  8. +    "$(if $(CONFIG_CPU_BIG_ENDIAN),big,little)" \
  9. +    "$(if $(CONFIG_64BIT),64,32)" \
  10. +    "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" "$(MV)" "$(@)";
  11. +endif
  12. +
  13.  define rule_cc_o_c
  14.      $(call echo-cmd,checksrc) $(cmd_checksrc)             \
  15.      $(call echo-cmd,cc_o_c) $(cmd_cc_o_c);                 \
  16.      $(cmd_modversions)                         \
  17. +    $(cmd_record_mcount)                         \
  18.      scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \
  19.       $(dot-target).tmp; \
  20.      rm -f $(depfile);                         \
  21. Index: Makefile

最终他是在 scripts/recordmcount.pl中做了一次arch的判断(在build的时候),这样问题就出来了,由于我们平台是mips,而工具链是基于laura的,这里在判断的时候是mips的体系,由于这里没有针对laura cpu的,于是就选择了默认的mips:isa32r2, 于是悲剧就产生了。 对于GCC完全白痴的我,这个问题难倒我了,无解。。。。 好在打ftrace patch的目的不在于function trace。追查工作就到此了

阅读(1351) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~