Re: Query regarding sizeof long

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 24, 2017 at 4:08 PM, Dibyendu Majumdar
<mobile@xxxxxxxxxxxxxxx> wrote:
> Hi Luc,
>
> On 24 January 2017 at 14:47, Luc Van Oostenryck
> <luc.vanoostenryck@xxxxxxxxx> wrote:
>> On Tue, Jan 24, 2017 at 02:23:13PM +0000, Dibyendu Majumdar wrote:
>>> I am working on porting Sparse to Windows, and I noticed that in
>>> 64-bit architecture the bits_in_long is set to 64. This is not true
>>> for Windows where long is 32 bits on a 64-bit machine. I was wondering
>>> if I just need to set this parameter to 32 or if there are other
>>> implications that I need to be aware of.
>>
>> If you just change the initial value in target.c, it won't do what you
>> need because currently, if you compile sparse on a machine where
>> __x86_64__ is defined, it will automatically enable the -m64 option
>> which will setup things for an LP64 architecture instead of the LLP64
>> that you need (inside handle_arch_m64_finalize()).
>>
>
> Yes I noticed that and I can easily make that conditional on MSVC. I
> guess my question is more whether there are any assumptions in the
> code that a long in a 64-bit environment is 64-bits (e.g. pointers fit
> into long). I have not yet been able to run all the tests on Windows,
> but I guess that is one way I can find out if there are any issues.

There shouldn't be any such assumptions :)
And I think, you shouldn't have much bad surprised,
but I'm a bit less confident regarding the test-suite. It's very possible
that some tests have the assumption that sizeof(long) == sizeof(pointer).
And I'm pretty sure that this LLP64 situation have been very little tested,
very possibly never been tested at all.

Luc
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux