public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Binutils 2.15.97 available
@ 2005-04-20 19:51 Daniel Jacobowitz
  2005-04-21  1:31 ` Mike Frysinger
                   ` (4 more replies)
  0 siblings, 5 replies; 26+ messages in thread
From: Daniel Jacobowitz @ 2005-04-20 19:51 UTC (permalink / raw)
  To: binutils

I have uploaded binutils 2.15.97 to:

  ftp://sources.redhat.com/pub/binutils/snapshots/binutils-2.15.97.tar.bz2

I plan that this will be the last prerelease, and binutils 2.16 will
be released more-or-less unchanged next week.  Please do not commit
anything to the 2.16 release branch without asking me first.  Please
test this snapshot.

If problems show up for particular targets, I would prefer to have a
quick 2.16.1 rather than delay this release any further.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: Binutils 2.15.97 available
@ 2005-04-25 14:11 Etienne Lorrain
  2005-04-25 14:34 ` Nick Clifton
  2005-04-25 15:19 ` H. J. Lu
  0 siblings, 2 replies; 26+ messages in thread
From: Etienne Lorrain @ 2005-04-25 14:11 UTC (permalink / raw)
  To: binutils; +Cc: drow

  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/

^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: Binutils 2.15.97 available
@ 2005-04-25 15:03 Etienne Lorrain
  2005-04-25 15:45 ` Dave Korn
  0 siblings, 1 reply; 26+ messages in thread
From: Etienne Lorrain @ 2005-04-25 15:03 UTC (permalink / raw)
  To: Nick Clifton; +Cc: binutils, drow

  Hi Nick,

--- Nick Clifton wrote:
> >   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?
> 
> It is an error message from the assembler.  Try compiling with the "-c" 
> and "--save-temps" flags and then locate the line in the assembler 
> source file where the error is flagged.  Presumably it will relate to 
> this line in your source code:
> 
> >   asm volatile (" dataPS2 = %c0 ": : "i" (&MOUSE.data.PS2));

  This C file is just an extract of an application which is compiling,
 assembling and linking with binutils-2.15.
  The lines of the assembler file does not look strange, the error is
 given at end of the mouse.s file.

  Just replacing
asm volatile (" dataPS2 = %c0 ": : "i" (&MOUSE.data.PS2));
  by:
asm volatile (" .equ dataPS2, %c0 ": : "i" (&MOUSE.data.PS2));
  does not change the error message:

/home/etienne/projet/toolchain/bin/as  -acdhls=mouse.lis -o mouse.o mouse.s
mouse.s: Assembler messages:
mouse.s:1902: Error: `dataPS2' can't be equated to common symbol
make: *** [mouse.o] Error 1

etienne@cygne:~/projet/gujin$ grep dataPS2 mouse.s
        movl    %eax,dataPS2
        movl    %eax,dataPS2 + 4
         .equ dataPS2, MOUSE+476

The MOUSE structure is a common structure:
        .comm   MOUSE,512,32

> You didn't say, but I assume that you are compiling for an x86 target ?

  Yes - a strange x86 target.

> My guess is that the assembler is no longer support the syntax you are 
> using to assign a value to the "dataPS2" symbol.  Perhaps you need to 
> change the above asm() statement to use the .set pseudo operator ?

  Note that I can initialise the MOUSE structure to zero and I no more
 have this assembler error - but I am not sure this behaviour of GAS
 is the intended one.

  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/

^ permalink raw reply	[flat|nested] 26+ messages in thread
* RE: Binutils 2.15.97 available
@ 2005-04-25 16:21 Etienne Lorrain
  0 siblings, 0 replies; 26+ messages in thread
From: Etienne Lorrain @ 2005-04-25 16:21 UTC (permalink / raw)
  To: Dave Korn, 'Nick Clifton', H. J. Lu; +Cc: binutils, drow

--- Dave Korn <dave.korn@artimi.com> wrote:
> > >   asm volatile (" dataPS2 = %c0 ": : "i" (&MOUSE.data.PS2));
> 
>   IIUIC, all you want to do here is initialise an assembler-level variable
> with the address of MOUSE.data.PS2 at runtime, yes?  So why not make your
> life a load easier, and do it the other way round:
> void *dataPS2 = NULL;

  I do not think my method is that complex, not going through a variable
 pointer but just defining a symbol to write to. With your pointer I would
 have to read the content of the pointer and write to this address - and
 so save another register on the stack to store the address to write to
 in my interrupt treatment.
 This address is known at link time so there is no need to put it in
 a variable pointer.

  I can accept the argument of H.J. saying that the behaviour I am waiting
 is not guarantied - but I am sure it was working perfectly in my case,
 with binutils-2.15.
 The address is the same, the PS2 mouse is perfectly working in Gujin,
 and this field is only written under interrupt and only read in C.

  That is not a real problem for my application, I will initialise to
 get the MOUSE structure in BSS instead of COMMON.

  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/

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2005-04-29 18:44 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-20 19:51 Binutils 2.15.97 available Daniel Jacobowitz
2005-04-21  1:31 ` Mike Frysinger
2005-04-21  3:21   ` Daniel Jacobowitz
2005-04-21  8:59     ` Nick Clifton
2005-04-21 12:43       ` Mike Frysinger
2005-04-21  9:56 ` Ralf Corsepius
2005-04-21 15:30   ` Mark Mitchell
2005-04-21 15:47     ` Ralf Corsepius
2005-04-29 14:32   ` Daniel Jacobowitz
2005-04-29 17:05     ` [Patch] Switching h8300*rtems to elf (Was: Re: Binutils 2.15.97 available) Ralf Corsepius
2005-04-30  0:14       ` Daniel Jacobowitz
2005-04-21 10:41 ` Binutils 2.15.97 available Dave Korn
2005-04-21 13:11   ` Daniel Jacobowitz
2005-04-21 14:01     ` Dave Korn
2005-04-22  0:45       ` build failure, gcc4 merged over Binutils 2.15.97 Don Lindsay
2005-04-22  1:28         ` DJ Delorie
2005-04-21 17:07 ` Binutils 2.15.97 available Richard Sandiford
2005-04-29 14:45 ` Daniel Jacobowitz
2005-04-25 14:11 Etienne Lorrain
2005-04-25 14:34 ` Nick Clifton
2005-04-25 15:19 ` H. J. Lu
2005-04-25 15:03 Etienne Lorrain
2005-04-25 15:45 ` Dave Korn
2005-04-25 16:00   ` Dave Korn
2005-04-25 16:08     ` Dave Korn
2005-04-25 16:21 Etienne Lorrain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).