Binutils 2.15.97 available

Etienne Lorrain etienne_lorrain@yahoo.fr
Mon Apr 25 14:11:00 GMT 2005


  Hi,

  I have s strange problem with this version, but 2.15 works.
  Do you know what
Error: `dataPS2' can't be equated to common symbol
  means?

-------------------------------
etienne@cygne:~/projet/gujin$ cat tmp.c
struct mouse_interface_str {
    enum MOUSE_type {
        MOUSE_NONE= 0,
        MOUSE_PS2 = 0xAA,
        MOUSE_SERIAL_COM1 = 0x10, MOUSE_SERIAL_COM2,   /* 2 buttons */
        MOUSE_SERIAL_COM3, MOUSE_SERIAL_COM4,
        MOUSE_SERIAL3_COM1 = 0x30, MOUSE_SERIAL3_COM2, /* 3 buttons */
        MOUSE_SERIAL3_COM3, MOUSE_SERIAL3_COM4,         /* Logitech */
        MOUSE_SERIALM_COM1 = 0x40, MOUSE_SERIALM_COM2, /* 3 buttons */
        MOUSE_SERIALM_COM3, MOUSE_SERIALM_COM4         /* MouseSystems */
#define MOUSE_SERIAL_MASK 0xF0
        } type;

    union {
        struct PS2_struct {
            unsigned short reservedword : 16;
              signed char y_data        : 8;
              signed char y_reserved    : 8;
              signed char x_data        : 8;
              signed char x_reserved    : 8;
            unsigned char left_button   : 1;
            unsigned char right_button  : 1;
            unsigned char middle_button : 1;
            unsigned char reservedbit   : 1;
            unsigned char x_negative    : 1;
            unsigned char y_negative    : 1;
            unsigned char x_overflow    : 1;
            unsigned char y_overflow    : 1;
            unsigned char reservedbyte  : 8;
            } __attribute__ ((packed)) PS2;
        } data;

    } MOUSE;

unsigned MOUSE_PS2_init (void)
  {
  MOUSE.type = MOUSE_PS2;
  asm volatile (" dataPS2 = %c0 ": : "i" (&MOUSE.data.PS2));
  return 0;
  }

asm (
"PS2_mouse_callback:                                                    \n"
"       pushl   %ds                                                     \n"
"       pushl   %eax                                                    \n"
"       movw    %cs,%ax                                                 \n"
"       addw    $deltaseg,%ax   # not necessary if no CODE_SEGMENT      \n"
"       movw    %ax,%ds                                                 \n"
"       movl    12(%esp),%eax                                           \n"
"       movl    %eax,dataPS2                                            \n"
"       movl    16(%esp),%eax                                           \n"
"       movl    %eax,dataPS2 + 4                                        \n"
"       popl    %eax                                                    \n"
"       popl    %ds                                                     \n"
"       lretw                                                           \n"
        );
etienne@cygne:~/projet/gujin$ /home/etienne/projet/toolchain/bin/gcc
--version
gcc (GCC) 3.4.0
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

etienne@cygne:~/projet/gujin$ /home/etienne/projet/toolchain/bin/ld -v
GNU ld version 2.15.97 20050420
etienne@cygne:~/projet/gujin$ /home/etienne/projet/toolchain/bin/as -v
GNU assembler version 2.15.97 (i686-pc-linux-gnu) using BFD version 2.15.97
20050420

etienne@cygne:~/projet/gujin$ /home/etienne/projet/toolchain/bin/gcc tmp.c
/tmp/ccQt6JrC.s: Assembler messages:
/tmp/ccQt6JrC.s:34: Error: `dataPS2' can't be equated to common symbol
etienne@cygne:~/projet/gujin$
-------------------------------

  Thanks,
  Etienne.


	

	
		
__________________________________________________________________
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails ! 
Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/



More information about the Binutils mailing list