Patchwork arm host: Fix linker warning (m68k targets)

login
register
mail settings
Submitter Stefan Weil
Date Jan. 22, 2010, 9:04 p.m.
Message ID <1264194294-28593-1-git-send-email-weil@mail.berlios.de>
Download mbox | patch
Permalink /patch/43512/
State New
Headers show

Comments

Stefan Weil - Jan. 22, 2010, 9:04 p.m.
Compilation of m68k-softmmu or m68k-linux-user on arm host
(or cross compilation for arm) results in a linker warning:

  LINK  m68k-softmmu/qemu-system-m68k
m68k-dis.o: warning: definition of `floatformat_ieee_single_little' overriding common
arm-dis.o: warning: common is here
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/bin/ld: Warning: size of symbol `floatformat_ieee_single_little' changed from 4 in arm-dis.o to 48 in m68k-dis.o

floatformat_ieee_single_little is declared in arm-dis.c and m68k-dis.c,
and both declarations don't match, so this is an error.

The symbol is not needed in arm-dis.c, so I removed it there.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 arm-dis.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)
Stefan Weil - Feb. 12, 2010, 9:57 a.m.
Stefan Weil schrieb:
> Compilation of m68k-softmmu or m68k-linux-user on arm host
> (or cross compilation for arm) results in a linker warning:
>
> LINK m68k-softmmu/qemu-system-m68k
> m68k-dis.o: warning: definition of `floatformat_ieee_single_little'
> overriding common
> arm-dis.o: warning: common is here
> /usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/bin/ld:
> Warning: size of symbol `floatformat_ieee_single_little' changed from
> 4 in arm-dis.o to 48 in m68k-dis.o
>
> floatformat_ieee_single_little is declared in arm-dis.c and m68k-dis.c,
> and both declarations don't match, so this is an error.
>
> The symbol is not needed in arm-dis.c, so I removed it there.
>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
> arm-dis.c | 8 ++------
> 1 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arm-dis.c b/arm-dis.c
> index 2c67d8f..4fb899e 100644
> --- a/arm-dis.c
> +++ b/arm-dis.c
> @@ -60,10 +60,8 @@
> #define FPU_VFP_EXT_V3 0
> #define FPU_NEON_EXT_V1 0
>
> -int floatformat_ieee_single_little;
> /* Assume host uses ieee float. */
> -static void floatformat_to_double (int *ignored, unsigned char *data,
> - double *dest)
> +static void floatformat_to_double (unsigned char *data, double *dest)
> {
> union {
> uint32_t i;
> @@ -2543,9 +2541,7 @@ print_insn_neon (struct disassemble_info *info,
> long given, bfd_boolean thumb)
> valbytes[2] = (value >> 16) & 0xff;
> valbytes[3] = (value >> 24) & 0xff;
>
> - floatformat_to_double
> - (&floatformat_ieee_single_little, valbytes,
> - &fvalue);
> + floatformat_to_double (valbytes, &fvalue);
>
> func (stream, "#%.7g\t; 0x%.8lx", fvalue,
> value);

The patch is still missing in git. Maybe it got lost?

A linker warning about symbols which change from 4 to 48 byte
should be regarded as error.

Regards,
Stefan Weil
Stefan Weil - Feb. 23, 2010, 6:42 p.m.
Stefan Weil schrieb:
> Stefan Weil schrieb:
>   
>> Compilation of m68k-softmmu or m68k-linux-user on arm host
>> (or cross compilation for arm) results in a linker warning:
>>
>> LINK m68k-softmmu/qemu-system-m68k
>> m68k-dis.o: warning: definition of `floatformat_ieee_single_little'
>> overriding common
>> arm-dis.o: warning: common is here
>> /usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/bin/ld:
>> Warning: size of symbol `floatformat_ieee_single_little' changed from
>> 4 in arm-dis.o to 48 in m68k-dis.o
>>
>> floatformat_ieee_single_little is declared in arm-dis.c and m68k-dis.c,
>> and both declarations don't match, so this is an error.
>>
>> The symbol is not needed in arm-dis.c, so I removed it there.
>>
>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>> ---
>> arm-dis.c | 8 ++------
>> 1 files changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/arm-dis.c b/arm-dis.c
>> index 2c67d8f..4fb899e 100644
>> --- a/arm-dis.c
>> +++ b/arm-dis.c
>> @@ -60,10 +60,8 @@
>> #define FPU_VFP_EXT_V3 0
>> #define FPU_NEON_EXT_V1 0
>>
>> -int floatformat_ieee_single_little;
>> /* Assume host uses ieee float. */
>> -static void floatformat_to_double (int *ignored, unsigned char *data,
>> - double *dest)
>> +static void floatformat_to_double (unsigned char *data, double *dest)
>> {
>> union {
>> uint32_t i;
>> @@ -2543,9 +2541,7 @@ print_insn_neon (struct disassemble_info *info,
>> long given, bfd_boolean thumb)
>> valbytes[2] = (value >> 16) & 0xff;
>> valbytes[3] = (value >> 24) & 0xff;
>>
>> - floatformat_to_double
>> - (&floatformat_ieee_single_little, valbytes,
>> - &fvalue);
>> + floatformat_to_double (valbytes, &fvalue);
>>
>> func (stream, "#%.7g\t; 0x%.8lx", fvalue,
>> value);
>>     
>
> The patch is still missing in git. Maybe it got lost?
>
> A linker warning about symbols which change from 4 to 48 byte
> should be regarded as error.
>
> Regards,
> Stefan Weil
>   

I'd commit it myself if I had the rights, but I haven't.
So the only think I can do is remind those who have...

Regards,
Stefan
Anthony Liguori - Feb. 23, 2010, 9:13 p.m.
On 02/23/2010 12:42 PM, Stefan Weil wrote:
>
> I'd commit it myself if I had the rights, but I haven't.
> So the only think I can do is remind those who have...
>    

Please resubmit.  I would expect an ARM host patch to be applied by Paul 
but if he's not available to, I'll keep it my queue to be applied.

Regards,

Anthony Liguori

> Regards,
> Stefan
>
>

Patch

diff --git a/arm-dis.c b/arm-dis.c
index 2c67d8f..4fb899e 100644
--- a/arm-dis.c
+++ b/arm-dis.c
@@ -60,10 +60,8 @@ 
 #define FPU_VFP_EXT_V3	 0
 #define FPU_NEON_EXT_V1	 0
 
-int floatformat_ieee_single_little;
 /* Assume host uses ieee float.  */
-static void floatformat_to_double (int *ignored, unsigned char *data,
-                                   double *dest)
+static void floatformat_to_double (unsigned char *data, double *dest)
 {
     union {
         uint32_t i;
@@ -2543,9 +2541,7 @@  print_insn_neon (struct disassemble_info *info, long given, bfd_boolean thumb)
                                 valbytes[2] = (value >> 16) & 0xff;
                                 valbytes[3] = (value >> 24) & 0xff;
 
-                                floatformat_to_double
-                                  (&floatformat_ieee_single_little, valbytes,
-                                  &fvalue);
+                                floatformat_to_double (valbytes, &fvalue);
 
                                 func (stream, "#%.7g\t; 0x%.8lx", fvalue,
                                       value);