This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Recent change broke ppc64le and i686 gas builds


On 08/22/2018 12:14 AM, Alan Modra wrote:
> On Tue, Aug 21, 2018 at 08:41:30AM -0600, Jeff Law wrote:
>>
>> Tester started throwing errors due to this change:
>>
>> 706704c88344314646e4edcc0840cb18a9cb4c82 is the first bad commit
>> commit 706704c88344314646e4edcc0840cb18a9cb4c82
>> Author: Alan Modra <amodra@gmail.com>
>> Date:   Tue Aug 21 11:54:29 2018 +0930
>>
>>     Pack reloc_howto_struct
>>
>>     This patch uses bitfields in reloc_howto_struct, reducing its size
>>     from 80 to 40 bytes on 64-bit hosts and from 52 to 32 bytes on 32-bit
>>     hosts (with a 32-bit bfd_vma).  I've also added a new "negate" field
>>     rather than making the encoded "size" field do double duty as both
>>     a size and a flag.
>>
>> [ ... ]
>>
>> Compiling with gcc-4.8.5 on gcc112.fsffrance.org I get the following error:
>>
>> gcc -DHAVE_CONFIG_H -I. -I../../../binutils/gas  -I.
>> -I../../../binutils/gas -I../bfd -I../../../binutils/gas/config
>> -I../../../binutils/gas/../include -I../../../binutils/gas/..
>> -I../../../binutils/gas/../bfd
>> -DLOCALEDIR="\"/home/law/jenkins/workspace/powerpc64le-linux-gnu/installed/share/locale\""
>>  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror
>> -Wwrite-strings -I../../../binutils/gas/../zlib -g -O2 -MT dw2gencfi.o
>> -MD -MP -MF $depbase.Tpo -c -o dw2gencfi.o
>> ../../../binutils/gas/dw2gencfi.c &&\
>> mv -f $depbase.Tpo $depbase.Po
>> In file included from ../../../binutils/gas/dw2gencfi.c:22:0:
>> ../../../binutils/gas/dw2gencfi.c: In function ‘emit_expr_encoded’:
>> ../../../binutils/gas/dw2gencfi.c:200:24: error: comparison between
>> signed and unsigned integer expressions [-Werror=sign-compare]
>>        gas_assert (size == howto->bitsize / 8);
>>                         ^
>> ../../../binutils/gas/as.h:88:33: note: in definition of macro ‘gas_assert’
>>  #define gas_assert(P) ((void) ((P) ? 0 : (abort (), 0)))
>>                                  ^
>> ../../../binutils/gas/dw2gencfi.c: In function ‘output_fde’:
>> ../../../binutils/gas/dw2gencfi.c:1982:26: error: comparison between
>> signed and unsigned integer expressions [-Werror=sign-compare]
>>     gas_assert (addr_size == howto->bitsize / 8);
>>                           ^
>> ../../../binutils/gas/as.h:88:33: note: in definition of macro ‘gas_assert’
>>  #define gas_assert(P) ((void) ((P) ? 0 : (abort (), 0)))
> 
> I fixed one of these sorts of warnings in bfd/coff-rs6000.c but for
> some reason my compilers (7.3.0 and 8.1.1) didn't complain here.  Oh
> well, presumably the warning has been quieted for simpler cases of
> unsigned int bit-field being promoted to int as per the C standard.
> The one in coff-rs6000.c involved "howto->bitsize + howto->rightshift
> == some_unsigned_value".
> 
> I've committed the following.
> 
> 	* dw2gencfi.c (emit_expr_encoded, output_fde): Warning fixes.
Yup.  That took care of things...

Thanks,
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]