On 11/23/2009 05:58 PM, yunfeng zhang wrote:
next:
     pop %ebx //<<  A.
     ...
     movl new_offset(%ebx), %eax //<<  B. load global variable foo to eax.
     ...
     .global foo //<<  C.
OK!, to ld, offsetof(C - A) is const...

Your premise is wrong right there. C-A is *not* a constant. That's why we used a load from memory. If it had been a constant then B would have been:

  leal f...@gotoff(%ebx), %eax


r~

Reply via email to