On 14.11.2008 19:54, ron minnich wrote: > On Fri, Nov 14, 2008 at 10:52 AM, Stefan Reinauer <[EMAIL PROTECTED]> wrote: > >> Carl-Daniel Hailfinger wrote: >> >>> We're missing one crucial piece which is necessary to get PIC to work: >>> The linker. PIC code must be linked _after_ its location is known. >>> >> That sounds absurd as it would totally defeat the purpose of PIC. >> >> It's position independent code exactly _because_ you can't know the >> position at link time. >> > > > actually, the GCC definiton of PIC is odd to say the least, as > compared to what I used to call PIC. >
Remember what Segher said: We're (ab)using gcc on x86 in a way that was never envisioned. > But I am afraid carl-daniel is right. PIC in the gcc sense really > means "shared libraries" from what I can see, and does require a > linker post-pass. > > Possibly on machines such as core 2, we should copy the (tiny) initram > to CARBASE and run it there, and link it for CARBASE. > At least on AMD Fam10h processors, this is documented to fail. I believe we can trick the processor into doing that anyway, but that would be so highly complicated and processor dependent that the author of that code would become a critical resource ;-) I'd like to have the initram in CAR option available for emergency situations, though. Regards, Carl-Daniel -- http://www.hailfinger.org/ -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

