[LLVMdev] Cygwin llvm-gcc regression
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
>>> 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";
>> 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.
> "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
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev