[hellogcc] Re: [hellogcc] Re: [hellogcc] Re: gcc中的reloc实现简介

  • From: Yao Qi <qiyaoltc@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Fri, 21 Oct 2011 15:19:36 +0800

我首先声明一下,xx的这个文章很好。我看了以后明白了一些东西。

>>>
>>
>> PLT/GOT的作用比你说的要多一些,还是自己看linker&loader吧。
>>
>
> 恩,所以说PLT/GOT等概念要自己补充,这个东西一两句说不清的。我只是提取出来了这里需要的点一下,其实我也没有理解非常透彻。
>

我倾向于每个文章都有自己的重点,可以不用很全面。如果很全面,就成了manual了。我们能在一个点上想明白,就很好了。慢慢的,把这些点链接起来,就好了。


>>> 然后machine.md里面对call要有相应的照顾。
>>> \begin{shaded}
>>> \begin{verbatim}
>>> (define_expand "call"
>>>   [(parallel [(call (match_operand:SI 0 "sym_ref_mem_operand" "")
>>>                   (match_operand 1 "" "i"))
>>>             (clobber (reg:SI 9))])]
>>
>> 能把上边这个解释一下不? operand 0 和operand 1分别是什么?
>> 为啥clobber reg:SI 9?这个是什么?
>>
>> 问题可能有点跑题 :)
>>
>
> 恩,有时间的话我整理一下md文件里面我个人能理解和掌握的,这个例子里面确实和这些内容没太大关联。
> 这个md文件水很深,也不是一年半载能讲清楚的,有时间的话,一点儿一点儿来,通过不同的例子,不同的角度,来慢慢讲清楚不同的用法。
>

我觉得挺有关联的。 :)
我还是喜欢那样通过一个问题,一点一点去追,会得到很多收获。其实这里是不是和pic有关系,我倒不是那么在乎了。如果这里,我们先搞明白gcc为了pic
call,怎样产生代码。这个pattern是怎么match的。以及dynamic linker怎么resolve
symbol,以及update plt entry。我想这样就是所谓的"情景分析"吧。
这样的方式很适合去学习。

anyway, it is a good start.  Thanks a lot :)

-- 
Yao Qi <qiyaoltc AT gmail DOT com>
http://sites.google.com/site/duewayqi/

Other related posts: