"Rithin K Shetty" <rkshetty@xxxxxxxxxxxx> writes: > I have a basic question regarding the working of gcc. When I run "nm" > on an executable compiled on Linux all the addresses will be in the > range 0 to 0xbfffffff. If I do the same on a Linux kernel image the > addresses are in the range 0xC0000000 - 0xFFFFFFFF. This is because > of the way the virtual addresses are organized in Linux. > But since the image is built by gcc, how is this information on > the range of addresses to be used are conveyed to the > compiler/linker ? Is it configurable from command line or does it > require a change of compiler code ? This is done using a linker script. If you look closely at the Linux build, you will see a -T linker option when it actually links the kernel. This is not a gcc question. Ian