当前位置: 代码迷 >> 汇编语言 >> 关于linux下head.s和编译链接的一些有关问题
  详细解决方案

关于linux下head.s和编译链接的一些有关问题

热度:131   发布时间:2016-05-02 04:37:51.0
关于linux下head.s和编译链接的一些问题
最近在看linux启动流程,遇到一些问题不明白,不知道有没有发错地方,望路过的大神解答下。

首先,文件是/work/linux-2.6.36/arch/arm/boot/compressed/head.S
其中有3段代码(我写的代码  .start段  .text段)

我在这个文件的最开始(include之后),加入一段代码(内容不重要)
之后的内容是:
.section ".start", #alloc, #execinstr
/*
 * sort out different calling conventions
 */

.align
start:
.type start,#function
        ......

.text
adr r0, LC0
        ......

lds文件指出
. = 0;
  _text = .;

  .text : {
    _start = .;
    *(.start)
    *(.text)
    *(.text.*)

链接时,从.start段开始,反汇编后看到,代码从0地址开始,确实是.start段,理论上,接下来应该是.text段,然后我的代码不被编译,但看反汇编,实际的排序是:
.start段
我的代码
.text段
这是为什么?
------解决方案--------------------
lds文件已经指出了section链接的顺序了,但是你的问题没说明你的代码放在哪个section了。
  相关解决方案