LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]uclinux编译出错,各位兄弟帮忙看看啦。

[复制链接]
发表于 2005-2-23 12:40:06 | 显示全部楼层 |阅读模式
我用的是Redhat9.0,内核版本为2.6.10,我下载的源代码包为uClinux-dist-20040408.tar.gz。
已经安装了arm-elf-tools-20030314,make menuconfig;make dep之后make..
出错部分提示如下:
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:1283: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1285: Error: Internal_relocation (type 185) not fixed up (IMMEDIATE)
entry-armv.S:1336: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1337: Error: Internal_relocation (type 187) not fixed up (OFFSET_IMM)
entry-armv.S:1608: 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文件中第1283等行语句的内部重定位没有安排好。。什么意思??
entry-armv.S文件中出错部分代码如下:

call_fpe:       get_current_task r10
                mov     r8, #1
1283:            strb    r8, [r10, #TSK_USED_MATH]       @ set current->used_math
                ldr     r4, .LCfp
1285:           add     r10, r10, #TSS_FPESAVE          @ r10 = workspace
                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.
*/
ENTRY(__switch_to)
                stmfd   sp!, {r4 - sl, fp, lr}          @ Store most regs on stack
                mrs     ip, cpsr
                str     ip, [sp, #-4]!                  @ Save cpsr_SVC
1336:           str     sp, [r0, #TSS_SAVE]             @ Save sp_SVC
                ldr     sp, [r1, #TSS_SAVE]             @ Get saved sp_SVC
#ifndef CONFIG_UCLINUX
                ldr     r2, [r1, #TSS_DOMAIN]
                mcr     p15, 0, r2, c3, c0              @ Set domain register
#endif
                ldr     ip, [sp], #4
                msr     spsr, ip               @ Save tasks CPSR into SPSR for this return
                ldmfd   sp!, {r4 - sl, fp, pc}^         @ Load all regs saved previously

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

这些看起来就是汇编指令,但又跟我熟悉的汇编语言有所不同,不知道怎样下手。。。。各位兄弟帮忙看看啦。。
发表于 2005-2-23 21:34:21 | 显示全部楼层
建议装下面这个工具链试试

arm-elf-tools-20040427

源代码里面还需要改动的

网上有相关的文章
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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