<div dir="ltr">Hi,<div><br></div><div>Even I read somewhere, during compilation, compiler will take the linker script as input and it will generate the virtual addresses.</div><div><br></div><div>Thanks,</div><div>Madhu</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 28, 2016 at 2:44 PM, Augusto Mecking Caringi <span dir="ltr">&lt;<a href="mailto:augustocaringi@gmail.com" target="_blank">augustocaringi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Sep 28, 2016 at 6:06 AM, Madhu K &lt;<a href="mailto:madhu.sk89@gmail.com">madhu.sk89@gmail.com</a>&gt; wrote:<br>
&gt; Hi All,<br>
&gt;<br>
&gt; This is to understand the Virtual address space.Basically who generates the<br>
&gt; virtual addresses CPU or GNU compiler?<br>
<br>
</span>Hi,<br>
<br>
     In my view, the linker.<br>
<br>
     The compiler normally generates absolute addresses (starting from<br>
0), creating object code.<br>
<br>
     Then the linker generates an executable by combining different<br>
object files together and assigning virtual addresses.<br>
<br>
     Finally, is CPU (MMU) job (with the kernel helping) to translate<br>
these virtual addresses to physical ones.<br>
<br>
     Best regards,<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Augusto Mecking Caringi<br>
</font></span></blockquote></div><br></div>