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

  • From: Liu <proljc@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Fri, 21 Oct 2011 16:06:15 +0800

2011/10/21 Yao Qi <qiyaoltc@xxxxxxxxx>:
> 我首先声明一下,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:

  • » [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: gcc中的reloc实现简介 - Liu