Hi, 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 ? I would really appreciate any help in this regard. Thanks, Rithin.