[LLVMdev] Question about SPARC target status

Owen Anderson resistor at mac.com
Tue Nov 11 16:28:40 PST 2008


On Nov 11, 2008, at 3:51 PM, Peter Shugalev wrote:

> Owen Anderson wrote:
>> If you configure it as a cross-compiler for 64-bit x86 Linux and  
>> feed it
>> the appropriate header files, it will produce the same output on any
>> platform.  However, that output will not be executable on most
>> platforms, just on 64-bit x86 Linux.  The problems go beyond pointer
>> size.  The size of int is implementation dependent, etc.  The  
>> layout and
>> padding of structs is implementation dependent.  While all
>> implementations on a given target-triple will generally agree to  
>> ensure
>> binary compatibility, there is no guarantee of things being the same
>> once you go to another target-triple.
>
> Do you mean that cross-target execution CAN break on examples like  
> this
> one? [eventually on this example it doesn't]
>
>   struct X {
>     void *a;
>     int b;
>   } x;
>
>   *(int *) ((char *)&x + sizeof(void*)) = 1;
>

What about something much simpler: memcpy'ing an array of structs  
around.  The number of bytes to be memcpy'd is dependent on the  
padding of the struct.

--Owen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2624 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081111/1c65ef3d/attachment.bin>


More information about the llvm-dev mailing list