public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* RE: Binutils 2.15.97 available
@ 2005-04-25 16:21 Etienne Lorrain
  2005-04-25 18:43 ` PATCH: Allow a symbol set to common symbol + value H. J. Lu
  0 siblings, 1 reply; 10+ 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] 10+ messages in thread

* PATCH: Allow a symbol set to common symbol + value
  2005-04-25 16:21 Binutils 2.15.97 available Etienne Lorrain
@ 2005-04-25 18:43 ` H. J. Lu
  2005-04-25 19:36   ` PATCH: Allow a global symbol set to common/undefined symbol H. J. Lu
  0 siblings, 1 reply; 10+ messages in thread
From: H. J. Lu @ 2005-04-25 18:43 UTC (permalink / raw)
  To: Etienne Lorrain; +Cc: Dave Korn, 'Nick Clifton', binutils, drow

On Mon, Apr 25, 2005 at 06:20:50PM +0200, Etienne Lorrain wrote:
> --- 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.
> 

"dataPS2 = MOUSE" !=  "dataPS2 = MOUSE + 4" when MOUSE is a common
symbol. "dataPS2 = MOUSE" will create a copy of MOUSE and will create
a symbol with value of "MOUSE + 4". Is that intentional? If yes, this
patch will allow "dataPS2 = MOUSE + 4". Can we change "dataPS2 = MOUSE"
to mean the value of MOUSE, not its copy?


H.J.
----
2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	* read.c (pseudo_set): Disallow symbol set to common symbol.

	* write.c (write_object_file): Allow a symbol set to common
	symbol + value.

--- gas/read.c.set	2005-04-25 09:24:04.000000000 -0700
+++ gas/read.c	2005-04-25 11:30:11.000000000 -0700
@@ -3301,6 +3301,10 @@ pseudo_set (symbolS *symbolP)
 	{
 	  symbolS *s = exp.X_add_symbol;
 
+	  if (S_IS_COMMON (s) && exp.X_add_number == 0)
+	    as_bad (_("`%s' can't be equated to common symbol '%s'"),
+		    S_GET_NAME (symbolP), S_GET_NAME (s));
+
 	  S_SET_SEGMENT (symbolP, seg);
 	  S_SET_VALUE (symbolP, exp.X_add_number + S_GET_VALUE (s));
 	  symbol_set_frag (symbolP, symbol_get_frag (s));
--- gas/write.c.set	2005-04-20 11:12:17.000000000 -0700
+++ gas/write.c	2005-04-25 11:34:17.000000000 -0700
@@ -1928,8 +1936,13 @@ write_object_file (void)
 	  if (symbol_equated_reloc_p (symp))
 	    {
 	      if (S_IS_COMMON (symp))
-		as_bad (_("`%s' can't be equated to common symbol"),
-			S_GET_NAME (symp));
+		{
+		  expressionS *e = symbol_get_value_expression (symp);
+		  if (e->X_add_number == 0)
+		    as_bad (_("`%s' can't be equated to common symbol `%s'"),
+			    S_GET_NAME (symp),
+			    S_GET_NAME (e->X_add_symbol));
+		}
 	      symbol_remove (symp, &symbol_rootP, &symbol_lastP);
 	      continue;
 	    }

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

* PATCH: Allow a global symbol set to common/undefined symbol
  2005-04-25 18:43 ` PATCH: Allow a symbol set to common symbol + value H. J. Lu
@ 2005-04-25 19:36   ` H. J. Lu
  2005-04-26  9:37     ` Etienne Lorrain
  2005-04-26 17:12     ` Nick Clifton
  0 siblings, 2 replies; 10+ messages in thread
From: H. J. Lu @ 2005-04-25 19:36 UTC (permalink / raw)
  To: Etienne Lorrain; +Cc: Dave Korn, 'Nick Clifton', binutils, drow

On Mon, Apr 25, 2005 at 11:43:34AM -0700, H. J. Lu wrote:
> On Mon, Apr 25, 2005 at 06:20:50PM +0200, Etienne Lorrain wrote:
> > --- 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.
> > 
> 
> "dataPS2 = MOUSE" !=  "dataPS2 = MOUSE + 4" when MOUSE is a common
> symbol. "dataPS2 = MOUSE" will create a copy of MOUSE and will create
> a symbol with value of "MOUSE + 4". Is that intentional? If yes, this
> patch will allow "dataPS2 = MOUSE + 4". Can we change "dataPS2 = MOUSE"
> to mean the value of MOUSE, not its copy?
> 

It is the difference between

        .comm   MOUSE,12,4
	dataPS2 = MOUSE + 4

and

	dataPS2 = MOUSE + 4
        .comm   MOUSE,12,4

The former will create a copy of common symbol and latter won't. But

	dataPS2 = MOUSE + 4
        .comm   MOUSE,12,4

will turn the local symbol dataPS2 into a gloal one. It has the same
problem as

http://sources.redhat.com/bugzilla/show_bug.cgi?id=857

This patch will fix PR 857 and allow

	.global dataPS2
	dataPS2 = MOUSE + 4
        .comm   MOUSE,12,4



H.J.
----
gas/

2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-multi.h (FAKE_LABEL_NAME): Defined.

	* read.c (pseudo_set): Disallow symbol set to common symbol.

	PR 857
	* write.c (write_object_file): Report common symbol name when
	disallowing local symbol set to common symbol.
	(adjust_reloc_syms): Disallow local symbol set to undefined
	symbol.

gas/testsuite/

2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/all/assign.s: Make `x' and `y' global.

--- gas/config/obj-multi.h.set	2005-03-03 09:21:24.000000000 -0800
+++ gas/config/obj-multi.h	2005-04-25 12:18:11.000000000 -0700
@@ -146,6 +146,8 @@
 
 #define EMIT_SECTION_SYMBOLS (this_format->emit_section_symbols)
 
+#define FAKE_LABEL_NAME (this_emulation->fake_label_name)
+
 #ifdef OBJ_MAYBE_ELF
 /* We need OBJ_SYMFIELD_TYPE so that symbol_get_obj is defined in symbol.c
    We also need various STAB defines for stab.c  */
--- gas/read.c.set	2005-04-25 09:24:04.000000000 -0700
+++ gas/read.c	2005-04-25 12:18:11.000000000 -0700
@@ -3301,6 +3301,10 @@ pseudo_set (symbolS *symbolP)
 	{
 	  symbolS *s = exp.X_add_symbol;
 
+	  if (S_IS_COMMON (s))
+	    as_bad (_("`%s' can't be equated to common symbol '%s'"),
+		    S_GET_NAME (symbolP), S_GET_NAME (s));
+
 	  S_SET_SEGMENT (symbolP, seg);
 	  S_SET_VALUE (symbolP, exp.X_add_number + S_GET_VALUE (s));
 	  symbol_set_frag (symbolP, symbol_get_frag (s));
--- gas/testsuite/gas/all/assign.s.set	2005-04-15 08:44:24.000000000 -0700
+++ gas/testsuite/gas/all/assign.s	2005-04-25 12:18:11.000000000 -0700
@@ -1,7 +1,9 @@
+ .global x
  x = zzz
  x = x+1
  .long x
 
+ .global y
  y = 1
  y = y+zzz
  .long y
--- gas/write.c.set	2005-04-20 11:12:17.000000000 -0700
+++ gas/write.c	2005-04-25 12:26:11.000000000 -0700
@@ -787,12 +787,20 @@ adjust_reloc_syms (bfd *abfd ATTRIBUTE_U
 	if (fixp->fx_subsy != NULL)
 	  resolve_symbol_value (fixp->fx_subsy);
 
-	/* If this symbol is equated to an undefined symbol, convert
-           the fixup to being against that symbol.  */
+	/* If this symbol is equated to an undefined or common symbol,
+	   convert the fixup to being against that symbol.  */
 	if (symbol_equated_reloc_p (sym))
 	  {
+	    symbolS *new_sym
+	      = symbol_get_value_expression (sym)->X_add_symbol;
+	    const char *name = S_GET_NAME (sym);
+	    if (!S_IS_COMMON (new_sym)
+		&& strcmp (name, FAKE_LABEL_NAME)
+		&& (!S_IS_EXTERNAL (sym) || S_IS_LOCAL (sym)))
+	      as_bad (_("Local symbol `%s' can't be equated to undefined symbol `%s'"),
+		      name, S_GET_NAME (new_sym));
 	    fixp->fx_offset += symbol_get_value_expression (sym)->X_add_number;
-	    sym = symbol_get_value_expression (sym)->X_add_symbol;
+	    sym = new_sym;
 	    fixp->fx_addsy = sym;
 	  }
 
@@ -1927,9 +1935,15 @@ write_object_file (void)
              symbols.  */
 	  if (symbol_equated_reloc_p (symp))
 	    {
-	      if (S_IS_COMMON (symp))
-		as_bad (_("`%s' can't be equated to common symbol"),
-			S_GET_NAME (symp));
+	      const char *name = S_GET_NAME (symp);
+	      if (S_IS_COMMON (symp)
+		  && strcmp (name, FAKE_LABEL_NAME)
+		  && (!S_IS_EXTERNAL (symp) || S_IS_LOCAL (symp)))
+		{
+		  expressionS *e = symbol_get_value_expression (symp);
+		  as_bad (_("Local symbol `%s' can't be equated to common symbol `%s'"),
+			  name, S_GET_NAME (e->X_add_symbol));
+		}
 	      symbol_remove (symp, &symbol_rootP, &symbol_lastP);
 	      continue;
 	    }

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

* Re: PATCH: Allow a global symbol set to common/undefined symbol
  2005-04-25 19:36   ` PATCH: Allow a global symbol set to common/undefined symbol H. J. Lu
@ 2005-04-26  9:37     ` Etienne Lorrain
  2005-04-26 13:43       ` H. J. Lu
  2005-04-26 17:12     ` Nick Clifton
  1 sibling, 1 reply; 10+ messages in thread
From: Etienne Lorrain @ 2005-04-26  9:37 UTC (permalink / raw)
  To: H. J. Lu; +Cc: Dave Korn, 'Nick Clifton', binutils, drow

 --- "H. J. Lu" <hjl@lucon.org> wrote: 
> > > > > >   asm volatile (" dataPS2 = %c0 ": : "i" (&MOUSE.data.PS2));
> 
> It is the difference between
> 
>         .comm   MOUSE,12,4
> 	dataPS2 = MOUSE + 4
> 
> and
> 
> 	dataPS2 = MOUSE + 4
>         .comm   MOUSE,12,4
> 
> The former will create a copy of common symbol and latter won't. But
> 
> 	dataPS2 = MOUSE + 4
>         .comm   MOUSE,12,4
> 
> will turn the local symbol dataPS2 into a gloal one.

  OK, because GCC-4.0 put the ".comm MOUSE,12,4" at end of the
 assembler file I do not see the problem. I did not noticed dataPS2
 was a global symbol - not a problem in my software.

> H.J.
> ----
> gas/
> 
> 2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>
> ......
> --- gas/testsuite/gas/all/assign.s.set	2005-04-15 08:44:24.000000000 -0700
> +++ gas/testsuite/gas/all/assign.s	2005-04-25 12:18:11.000000000 -0700

  I do not have the above filename in my binutils-2.15.97 tree.
  I applied your patch and recompiled the C file given at the begining
 of this thread and the error did not disappear:
/home/etienne/projet/toolchain/bin/as  -acdhls=tmp.lis -o tmp.o tmp.s
tmp.s: Assembler messages:
tmp.s:34: Error: Local symbol `dataPS2' can't be equated to common symbol
`MOUSE'

  Maybe I have done something wrong? I still have the modified error report.
  Note that I no more need this fix because I have put the structure in
 BSS, and that should not affect too many people anyway.

  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] 10+ messages in thread

* Re: PATCH: Allow a global symbol set to common/undefined symbol
  2005-04-26  9:37     ` Etienne Lorrain
@ 2005-04-26 13:43       ` H. J. Lu
  0 siblings, 0 replies; 10+ messages in thread
From: H. J. Lu @ 2005-04-26 13:43 UTC (permalink / raw)
  To: Etienne Lorrain; +Cc: Dave Korn, 'Nick Clifton', binutils, drow

On Tue, Apr 26, 2005 at 11:36:44AM +0200, Etienne Lorrain wrote:
> 
>   I do not have the above filename in my binutils-2.15.97 tree.
>   I applied your patch and recompiled the C file given at the begining
>  of this thread and the error did not disappear:
> /home/etienne/projet/toolchain/bin/as  -acdhls=tmp.lis -o tmp.o tmp.s
> tmp.s: Assembler messages:
> tmp.s:34: Error: Local symbol `dataPS2' can't be equated to common symbol
> `MOUSE'

You need to make `dataPS2' global.


H.J.

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

* Re: PATCH: Allow a global symbol set to common/undefined symbol
  2005-04-25 19:36   ` PATCH: Allow a global symbol set to common/undefined symbol H. J. Lu
  2005-04-26  9:37     ` Etienne Lorrain
@ 2005-04-26 17:12     ` Nick Clifton
  1 sibling, 0 replies; 10+ messages in thread
From: Nick Clifton @ 2005-04-26 17:12 UTC (permalink / raw)
  To: H. J. Lu; +Cc: Etienne Lorrain, Dave Korn, binutils, drow

Hi H. J.

> gas/
> 2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* config/obj-multi.h (FAKE_LABEL_NAME): Defined.
> 
> 	* read.c (pseudo_set): Disallow symbol set to common symbol.
> 
> 	PR 857
> 	* write.c (write_object_file): Report common symbol name when
> 	disallowing local symbol set to common symbol.
> 	(adjust_reloc_syms): Disallow local symbol set to undefined
> 	symbol.
> 
> gas/testsuite/
> 2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* gas/all/assign.s: Make `x' and `y' global.

Approved - please apply.

Cheers
   Nick

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

* Re: PATCH: Allow a global symbol set to common/undefined symbol
@ 2005-04-28 15:08 Etienne Lorrain
  0 siblings, 0 replies; 10+ messages in thread
From: Etienne Lorrain @ 2005-04-28 15:08 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: Nick Clifton, H. J. Lu, Dave Korn, binutils

  Sometimes I feel bad.
  Thanks.

--- Daniel Jacobowitz <drow@false.org> wrote:
> On Thu, Apr 28, 2005 at 04:02:08PM +0200, Etienne Lorrain wrote:
> >   Sorry to bother again...
> > 
> >  With this patch and the source I am using, I have a problem elsewhere.
> >  It is initially due to GCC doing hidden real call to memcpy and
> >  memset when optimising for size (they consider calling those
> >  functions save space...)
> > 
> >  Basically because I am using two code segments (%cs can have two values
> >  to have twice 64 Kbytes accessible) I need two memcpy/memset, one in
> each
> >  segment. Because GCC insert real "call memset" I need to change the
> >  name of the function called in the assembler file - I am doing:
> > asm ("memcpy = xcodeseg_memcpy \n");
> > asm ("memset = xcodeseg_memset \n");
> >  So that "call memcpy" is replaced by "call xcodeseg_memcpy".
> > 
> >   With the H.J. patch in the assembler, I get messages:
> > disk.s:7307: Error: Local symbol `memcpy' can't be equated to undefined
> > symbol `xcodeseg_memcpy'
> > 
> >   I tried to define xcodeseg_memcpy as ".extern" of ".global" without
> >  success - even if they really are defined elsewhere.
> > 
> >   Is there a simple solution for my problem?
> 
> You need to mark memcpy as .globl, not xcodeseg_memcpy.
> 
> 
> -- 
> Daniel Jacobowitz
> CodeSourcery, LLC
> 


	

	
		
__________________________________________________________________ 
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] 10+ messages in thread

* Re: PATCH: Allow a global symbol set to common/undefined symbol
  2005-04-28 14:20 Etienne Lorrain
@ 2005-04-28 14:35 ` Daniel Jacobowitz
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Jacobowitz @ 2005-04-28 14:35 UTC (permalink / raw)
  To: Etienne Lorrain; +Cc: Nick Clifton, H. J. Lu, Dave Korn, binutils

On Thu, Apr 28, 2005 at 04:02:08PM +0200, Etienne Lorrain wrote:
>   Sorry to bother again...
> 
>  With this patch and the source I am using, I have a problem elsewhere.
>  It is initially due to GCC doing hidden real call to memcpy and
>  memset when optimising for size (they consider calling those
>  functions save space...)
> 
>  Basically because I am using two code segments (%cs can have two values
>  to have twice 64 Kbytes accessible) I need two memcpy/memset, one in each
>  segment. Because GCC insert real "call memset" I need to change the
>  name of the function called in the assembler file - I am doing:
> asm ("memcpy = xcodeseg_memcpy \n");
> asm ("memset = xcodeseg_memset \n");
>  So that "call memcpy" is replaced by "call xcodeseg_memcpy".
> 
>   With the H.J. patch in the assembler, I get messages:
> disk.s:7307: Error: Local symbol `memcpy' can't be equated to undefined
> symbol `xcodeseg_memcpy'
> 
>   I tried to define xcodeseg_memcpy as ".extern" of ".global" without
>  success - even if they really are defined elsewhere.
> 
>   Is there a simple solution for my problem?

You need to mark memcpy as .globl, not xcodeseg_memcpy.


-- 
Daniel Jacobowitz
CodeSourcery, LLC

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

* Re: PATCH: Allow a global symbol set to common/undefined symbol
@ 2005-04-28 14:20 Etienne Lorrain
  2005-04-28 14:35 ` Daniel Jacobowitz
  0 siblings, 1 reply; 10+ messages in thread
From: Etienne Lorrain @ 2005-04-28 14:20 UTC (permalink / raw)
  To: Nick Clifton, H. J. Lu; +Cc: Dave Korn, binutils, drow

  Sorry to bother again...

 With this patch and the source I am using, I have a problem elsewhere.
 It is initially due to GCC doing hidden real call to memcpy and
 memset when optimising for size (they consider calling those
 functions save space...)

 Basically because I am using two code segments (%cs can have two values
 to have twice 64 Kbytes accessible) I need two memcpy/memset, one in each
 segment. Because GCC insert real "call memset" I need to change the
 name of the function called in the assembler file - I am doing:
asm ("memcpy = xcodeseg_memcpy \n");
asm ("memset = xcodeseg_memset \n");
 So that "call memcpy" is replaced by "call xcodeseg_memcpy".

  With the H.J. patch in the assembler, I get messages:
disk.s:7307: Error: Local symbol `memcpy' can't be equated to undefined
symbol `xcodeseg_memcpy'

  I tried to define xcodeseg_memcpy as ".extern" of ".global" without
 success - even if they really are defined elsewhere.

  Is there a simple solution for my problem?
  If needed the complete source is at sourceforge (GCC-3.4.2+):
http://prdownloads.sourceforge.net/gujin/gujin-1.0.tar.gz?download
  just untar , cd gujin && make dep disk.o

  Thanks,
  Etienne.

--- Nick Clifton <nickc@redhat.com> wrote:
> Hi H. J.
> 
> > gas/
> > 2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>
> > 
> > 	* config/obj-multi.h (FAKE_LABEL_NAME): Defined.
> > 
> > 	* read.c (pseudo_set): Disallow symbol set to common symbol.
> > 
> > 	PR 857
> > 	* write.c (write_object_file): Report common symbol name when
> > 	disallowing local symbol set to common symbol.
> > 	(adjust_reloc_syms): Disallow local symbol set to undefined
> > 	symbol.
> > 
> > gas/testsuite/
> > 2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>
> > 
> > 	* gas/all/assign.s: Make `x' and `y' global.
> 
> Approved - please apply.
> 
> Cheers
>    Nick
> 


	

	
		
__________________________________________________________________
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] 10+ messages in thread

* Re: PATCH: Allow a global symbol set to common/undefined symbol
@ 2005-04-26 14:24 Etienne Lorrain
  0 siblings, 0 replies; 10+ messages in thread
From: Etienne Lorrain @ 2005-04-26 14:24 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils

--- "H. J. Lu" <hjl@lucon.org> wrote:
> On Tue, Apr 26, 2005 at 11:36:44AM +0200, Etienne Lorrain wrote:
> > /home/etienne/projet/toolchain/bin/as  -acdhls=tmp.lis -o tmp.o tmp.s
> > tmp.s: Assembler messages:
> > tmp.s:34: Error: Local symbol `dataPS2' can't be equated to common
> symbol
> > `MOUSE'
> 
> You need to make `dataPS2' global.

  Works OK, 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] 10+ messages in thread

end of thread, other threads:[~2005-04-28 14:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-25 16:21 Binutils 2.15.97 available Etienne Lorrain
2005-04-25 18:43 ` PATCH: Allow a symbol set to common symbol + value H. J. Lu
2005-04-25 19:36   ` PATCH: Allow a global symbol set to common/undefined symbol H. J. Lu
2005-04-26  9:37     ` Etienne Lorrain
2005-04-26 13:43       ` H. J. Lu
2005-04-26 17:12     ` Nick Clifton
2005-04-26 14:24 Etienne Lorrain
2005-04-28 14:20 Etienne Lorrain
2005-04-28 14:35 ` Daniel Jacobowitz
2005-04-28 15:08 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).