[llvm-commits] Patches to build EFI with clang/llvm

Carl Norum carl.norum at apple.com
Tue Jan 25 17:43:56 PST 2011

On Jan 25, 2011, at 5:40 PM, Jakob Stoklund Olesen wrote:
> On Jan 25, 2011, at 5:23 PM, Carl Norum wrote:
>>>>> Takumi recently submitted a patch to do the exact same thing. I think he managed to avoid the new instructions. I think his solution was better, assuming it works for you.
>>>> It very well might; I sort of inherited this code, so I'll have to dig around a bit before figuring that all out.  Has that patch gone into TOT, and if not, where can I get it from?
>>> I think this was his latest attempt: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110110/115159.html
>>> The changes haven't been committed, AFAIK.
>> This patch worked great here - I haven't done exhaustive testing, but I could build EFI and boot/sleep/wake a couple of machines with the resulting binaries.  Is it expected that these patches will get committed sometime in the near future?
> Takumi?
>> Let me know what you think about the attached Mach-O patches! 
> Somebody else should look at those.
> Some of the conditionals look suspicious:
>> +  if (Subtarget->isTargetDarwin() || Subtarget->isTargetMacho()) {
>>      if (is64Bit)
>>        return new X8664_MachoTargetObjectFile();
>>      return new TargetLoweringObjectFileMachO();
> Should that be just Subtarget->isTargetMacho()?
>> -  if (TM.getSubtarget<X86Subtarget>().isTargetCOFF())
>> +  if (Subtarget->isTargetCOFF() && !Subtarget->isTargetMacho())
> Can COFF and Macho be true at the same time?

I think the triple we're using confuses a lot of things.  Our output is Win32 ABI in Mach-O objects, so for our case, isTargetDarwin() is not true, but isTargetMacho() is true; it is probably the case that anything that says isTargetDarwin() is true will also return true for isTargetMachO(), though.

I guess because we have win32 in our triple (x86_64-pc-win32-macho) that somehow isTargetCOFF() is returning true.  I'll have to dig in there and see what's up with that.

-- Carl

More information about the llvm-commits mailing list