[LLVMdev] Cygwin llvm-gcc regression

Aaron Gray aaronngray.lists at googlemail.com
Sun Jan 10 10:00:34 PST 2010


2010/1/10 Aaron Gray <aaronngray.lists at googlemail.com>

> 2010/1/10 Duncan Sands <baldrick at free.fr>
>
> Hi Aaron,
>>
>>
>>  Thanks, okay heres the results :-
>>>
>>> LLVM type size doesn't match GCC type size!
>>>
>>>  <real_type 0x7ff80b40 long double sizes-gimplified XF size <integer_cst
>>> 0x7ff010e0 type <integer_type 0x7ff80060 bit_size_type> constant invariant
>>> 96>
>>>    unit size <integer_cst 0x7ff01100 type <integer_type 0x7ff80000
>>> unsigned int> constant invariant 12>
>>>    align 32 symtab 0 alias set -1 precision 80
>>>    pointer_to_this <pointer_type 0x7ff80c60>>
>>>
>>
>> as I thought, it's a problem with long double.  GCC thinks it is 12 bytes
>> long, LLVM presumably thinks it is 16 bytes long [in reality long double
>> is 10 bytes long, but here sizes include alignment, and different OS's
>> choose different alignments for it].
>>
>> Does the following fix it for you?
>>
>> Index: X86Subtarget.h
>> ===================================================================
>> --- X86Subtarget.h      (revision 93111)
>> +++ X86Subtarget.h      (working copy)
>> @@ -169,7 +169,7 @@
>>       p = "e-p:64:64-s:64-f64:64:64-i64:64:64-f80:128:128-n8:16:32:64";
>>     else if (isTargetDarwin())
>>       p = "e-p:32:32-f64:32:64-i64:32:64-f80:128:128-n8:16:32";
>> -    else if (isTargetCygMing() || isTargetWindows())
>> +    else if (isTargetWindows())
>>       p = "e-p:32:32-f64:64:64-i64:64:64-f80:128:128-n8:16:32";
>>     else
>>       p = "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32";
>>
>
> Yep ! Thanks a lot Duncan, obviously not doing my job properly.
>
> http://llvm.org/viewvc/llvm-project?view=rev&revision=91745
> *
> *
> "Bump alignment requirements for windows targets to achieve compartibility
> with vcpp. Based on patch by Michael Beck!"
>
> Looks like there is an issue to resolve here. As Cygwin will never be VC++
> compatible its probably not a good idea to change Cygwin's DataLayout as
> well as Ming's.
>

Now, I am getting another regression in stage 2 configure :-

    "checking whether the C compiler works... configure: error: cannot run C
compiled programs."

This one is strange, I have had it before but cannot remember what the cause
is as it was along time ago. Its odd as xgcc was used to compile libgcc, and
prev-gcc/xgcc compiles and executes a test c program, yet stage 2's
configure is failing.

Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100110/75ee0ef9/attachment.html>


More information about the llvm-dev mailing list