|
|
|
Re: writing a jump table | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
But how does non-PIC code where it is in memory? When I disassemble the non-PIC version, the address space starts at 0 which must mean that the linker relocates the code. Also, labels represent offsets if I understand this correctly, which is also a relative address and not an absolute. That's what I meant with that I don't fully understand why these extra hoops are necessary. On 03/16/11 20:23, Brian Raiter wrote: >> I think I figured it out now. I used gcc to compile PIC for the C >> switch statement and checked what it does. I don't fully understand >> it to be honest, but it seems to do the job also for non PIC code. > > Of course -- PIC code just means that the code doesn't assume it knows > where it's located in memory, which for a shared-object library is a > necessary thing. It does mean the code has to jump through a few more > hoops, which is why the compiler doesn't make it the default. > > b
Attachment:
signature.asc
Description: OpenPGP digital signature
[Kernel Newbies] [Security] [Linux C Programming] [Linux for Hams] [DCCP] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux RAID] [Linux Admin] [Samba] [Video 4 Linux]
![]() |