LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1179|回复: 0

编译uClinux内核出错,我不知道错在何处,朋友们帮帮忙,一起研究一下

[复制链接]
发表于 2007-6-15 21:50:18 | 显示全部楼层 |阅读模式
我用的是Redhat9.0,内核版本为2.6.10,我用的源代码包为uClinux-44b0ii(我用的开发板为,EV44b0ii ,源代码包是开发板带的)。
    交叉编译工具为arm-elf-tools-20030314,步骤为:  
    clean
    make xconfig;
       make dep
       make..
     根文件系统 romfs已经生成,当编译到内核时出错,出错部分提示如下:
  
make[2]: Entering directory `/uClinux/uClinux-dist/linux-2.4.x/arch/armnommu/kernel'
arm-elf-gcc -D__ASSEMBLY__ -D__KERNEL__ -I/uClinux/uClinux-dist/linux-2.4.x/include -DNO_MM -mapcs-32 -march=armv4 -msoft-float -mno-fpu -c -o entry-armv.o entry-armv.S
entry-armv.S: Assembler messages:
entry-armv.S:1003: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1005: Error: Internal_relocation (type 185) not fixed up (IMMEDIATE)
entry-armv.S:1052: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1053: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1276: Error: Can not represent SWI relocation in this object file format (0)
make[2]: *** [entry-armv.o] Error 1
make[2]: Leaving directory `/uClinux/uClinux-dist/linux-.4.x/arch/armnommu/kernel'
make[1]: *** [_dir_arch/armnommu/kernel] Error 2
make[1]: Leaving directory `/uClinux/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1

看提示是说entry-armv.S文件中第1003等行语句的内部重定位没有安排好。。什么意思??
entry-armv.S文件中出错部分代码如下:

1001 call_fpe:        get_current_task r10
1002 mov        r8, #1
1003 strb        r8, [r10, #TSK_USED_MATH]        @ set current->used_math
1004 ldr        r4, .LCfp
1005 add        r10, r10, #TSS_FPESAVE                @ r10 = workspace
1006 ldr        pc, [r4]                        @ Call FP module USR entry point

/*
* Register switch for ARMv3 and ARMv4 processors
* r0 = previous, r1 = next, return previous.
* previous and next are guaranteed not to be the same.
*/
1048 ENTRY(__switch_to)
1049 stmfd sp!, {r4 - sl, fp, lr} @ Store most regs on stack
1050 mrs ip, cpsr
1051 str ip, [sp, #-4]! @ Save cpsr_SVC
1052 1336: str sp, [r0, #TSS_SAVE] @ Save sp_SVC
1053 ldr sp, [r1, #TSS_SAVE] @ Get saved sp_SVC
1054 #ifndef CONFIG_UCLINUX
1055 ldr r2, [r1, #TSS_DOMAIN]
1056 mcr p15, 0, r2, c3, c0 @ Set domain register
1057 #endif
1058 ldr ip, [sp], #4
1059 msr spsr, ip @ Save tasks CPSR into SPSR for this return
1060 ldmfd sp!, {r4 - sl, fp, pc}^ @ Load all regs saved previously

.section ".text.init",#alloc,#execinstr

1276 .LCvectors:        swi        SYS_ERROR0
1277 b        __real_stubs_start + (vector_undefinstr - __stubs_start)
1278 ldr        pc, __real_stubs_start + (.LCvswi - __stubs_start)
1279 b        __real_stubs_start + (vector_prefetch - __stubs_start)

        以前没有出现过这个问题,所以不可能是源代码出错,
我推测跟.depend 有关系,但是无从下手,很郁闷。
    有没有人碰到过相似的问题,
希望大家,帮忙!谢了!
单选投票, 共有 2 人参与投票

投票已经结束

0.00% (0)
0.00% (0)
50.00% (1)
50.00% (1)
您所在的用户组没有投票权限
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表