Re: [PATCH 0/4] More arch specific fixes

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

 




On 27/11/2019 21:02, Luc Van Oostenryck wrote:
> On Wed, Nov 27, 2019 at 06:05:37PM +0000, Ramsay Jones wrote:
>> On 27/11/2019 17:48, Luc Van Oostenryck wrote:
>>> On Wed, Nov 27, 2019 at 05:15:20PM +0000, Ramsay Jones wrote:
>>>>
>>>> I was going to just test 'luc/int128_ctype', but looking at the output
>>>> of 'git log --oneline --graph master..luc/int128_ctype' I can see that
>>>> several other branches are merged into the result. So, I will apply
>>>> the patches from the mailing list directly to test them (hmm, _hopefully_
>>>> tonight).
>>>
>>> Hi Ramsay,
>>>
>>> Sorry, I should have added in the cover letter that the series
>>> with all related patches is available at:
>>> 	git://github.com/lucvoo/sparse-dev.git next
>>
>> Hmm, but that _also_ contains several other branches not contained
>> in 'master', thus:
>>
>> $ git --no-pager log --oneline --graph master..luc/next
>> * 4a8aa8d1 (luc/tip, luc/next) cgcc: add support for riscv64
>> * df14d253 arch: fix wchar_t & wint_t for openbsd
>> * 662ed740 arch: add missing predefines for PPC
>> * 1ff97d3a arch: add missing predfines: __amd64 & __amd64__
>> * d8754f2c cgcc: filter-out -msize-long & -msize-llp64
>> * 7efa090f (luc/int128_ctype) spec: replace lllong_ctype by int128_ctype
> 
> Yes, indeed. It's how these patches have been written and tested, though.
> They're supposed to be the cherries on top of the cake.
> But I think that only 'df14d253 arch: fix wchar_t & wint_t for openbsd'
> may have some dependencies on one of these branches. For the 3 others
> it shouldn't matter.

I decided to just test the 'luc/next' branch (commit 4a8aa8d1 cgcc: add
support for riscv64). :-P

I have only tested on 64-bit Linux and Cygwin (the sparse testsuite and
running it over git), so far with no issues.

I have also compared the output of:
  $ ./cgcc -dM -E - </dev/null | sort >sss
  $ gcc -dM -E - </dev/null | sort >ggg
  $ meld ggg sss
on both Linux and cygwin (with similar results).

I have ignored the 'float stuff', since the output of gcc and sparse
is almost totally different! :(

The main difference, which is new, is the spelling of the 'type names'.
e.g. __CHAR16_TYPE__ is given as 'short unsigned int' by gcc but
'unsigned short' by sparse. The following table shows the 'type name'
differences:

CHAR16_TYPE  short unsigned int => unsigned short
INT16_TYPE   short int          => short
INT64_TYPE   long int           => long
INTMAX_TYPE  long int           => long
INTPTR_TYPE  long int           => long
PTRDIFF_TYPE long int           => long
SIZE_TYPE    long unsigned int  => unsigned long
UINT16_TYPE short unsigned int  => unsigned short
UINT64_TYPE  long unsigned int  => unsigned long
UINTMAX_TYPE long unsigned int  => unsigned long
UINTPTR_TYPE long unsigned int  => unsigned long

sparse seems to '#define linux linux' rather than '#define linux 1'.
sparse defines __LITTLE_ENDIAN__ but gcc does not.

On cygwin, the results are similar to the above, with the addition
of the following:

WCHAR_TYPE short unsigned int => unsigned short
Also, sparse defines __CYGWIN32__ when it shouldn't (this is on
x86_64 cygwin, without -m32 etc).

That's all so far. ;-)

ATB,
Ramsay Jones





[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