public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Overflow fix (was Problems with trampoline.S with 64 bit binutils)
       [not found] <Pine.LNX.4.10.9907272027230.8678-100000@mullet.itr.unisa.edu.au>
@ 1999-07-28  2:09 ` Alan Modra
  1999-07-28 15:50   ` Ian Lance Taylor
  0 siblings, 1 reply; 11+ messages in thread
From: Alan Modra @ 1999-07-28  2:09 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils

Is it OK for me to check this one in, Ian?  It's almost in the "obvious
fix" category...

On Tue, 27 Jul 1999, I wrote:

> This is more elegant, and the concern voiced in the comment is no longer
> relevant as we check for size < sizof(valueT)
> 
> --- binutils-current/gas/write.c~	Fri Jul 16 17:57:19 1999
> +++ binutils-current/gas/write.c	Tue Jul 27 20:32:04 1999
> @@ -2733,24 +2733,13 @@
>  	{
>  	  if ((size_t) size < sizeof (valueT))
>  	    {
> -	      valueT mask, hibit;
> +	      valueT mask;
>  
> -	      /* set all bits to one */
>  	      mask = 0;
> -	      mask--;
> -	      /* Technically, combining these produces an undefined result
> -		 if size is sizeof (valueT), though I think these two
> -		 half-way operations should both be defined.  And the
> -		 compiler should be able to combine them if it's valid on
> -		 the host architecture.  */
> -	      mask <<= size * 4;
> -	      mask <<= size * 4;
> -	      hibit = (valueT) 1 << (size * 8 - 1);
> -	      if (((add_number & mask) != 0
> -		   || (fixP->fx_signed
> -		       && (add_number & hibit) != 0))
> -		  && ((add_number & mask) != mask
> -		      || (add_number & hibit) == 0))
> +	      mask--;	      /* set all bits to one */
> +	      mask <<= size * 8 - (fixP->fx_signed ? 1 : 0);
> +	      if ((add_number & mask) != 0
> +		  && (add_number & mask) != mask)
>  		{
>  		  char buf[50], buf2[50];
>  		  sprint_value (buf, fragP->fr_address + where);



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

* Re: Overflow fix (was Problems with trampoline.S with 64 bit binutils)
  1999-07-28  2:09 ` Overflow fix (was Problems with trampoline.S with 64 bit binutils) Alan Modra
@ 1999-07-28 15:50   ` Ian Lance Taylor
  1999-07-28 15:57     ` Alan Modra
  1999-07-28 19:28     ` make check Alan Modra
  0 siblings, 2 replies; 11+ messages in thread
From: Ian Lance Taylor @ 1999-07-28 15:50 UTC (permalink / raw)
  To: alan; +Cc: binutils

   Date: Wed, 28 Jul 1999 18:39:18 +0930 (CST)
   From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>

   Is it OK for me to check this one in, Ian?  It's almost in the "obvious
   fix" category...

Almost.

   > +	      mask <<= size * 8 - (fixP->fx_signed ? 1 : 0);

If size is 4 and fixP->fx_signed is not set, then this will do a left
shift by 32.  If mask is itself 32 bits, then this is not defined by
ANSI C.  There are in fact compilers which will turn this into a
no-op: they generate a shift by 32 instruction, which is masked into a
shift by 0 instruction.

That's why I had the two shifts in the old code, and I think we need
to keep that.

Ian

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

* Re: Overflow fix (was Problems with trampoline.S with 64 bit binutils)
  1999-07-28 15:50   ` Ian Lance Taylor
@ 1999-07-28 15:57     ` Alan Modra
  1999-07-28 16:03       ` Ian Lance Taylor
  1999-07-28 19:28     ` make check Alan Modra
  1 sibling, 1 reply; 11+ messages in thread
From: Alan Modra @ 1999-07-28 15:57 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils

On 28 Jul 1999, Ian Lance Taylor wrote:

>    Date: Wed, 28 Jul 1999 18:39:18 +0930 (CST)
>    From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
> 
>    Is it OK for me to check this one in, Ian?  It's almost in the "obvious
>    fix" category...
> 
> Almost.
> 
>    > +	      mask <<= size * 8 - (fixP->fx_signed ? 1 : 0);
> 
> If size is 4 and fixP->fx_signed is not set, then this will do a left
> shift by 32.  If mask is itself 32 bits, then this is not defined by
> ANSI C.  There are in fact compilers which will turn this into a
> no-op: they generate a shift by 32 instruction, which is masked into a
> shift by 0 instruction.
> 
> That's why I had the two shifts in the old code, and I think we need
> to keep that.

size == 4  =>  sizeof (mask) > 4.  Surely ANSI C doesn't restrict shift
counts of 64 bit quantities to 32??

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

* Re: Overflow fix (was Problems with trampoline.S with 64 bit binutils)
  1999-07-28 15:57     ` Alan Modra
@ 1999-07-28 16:03       ` Ian Lance Taylor
  0 siblings, 0 replies; 11+ messages in thread
From: Ian Lance Taylor @ 1999-07-28 16:03 UTC (permalink / raw)
  To: alan; +Cc: binutils

   Date: Thu, 29 Jul 1999 08:27:32 +0930 (CST)
   From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>

   On 28 Jul 1999, Ian Lance Taylor wrote:

   >    Date: Wed, 28 Jul 1999 18:39:18 +0930 (CST)
   >    From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
   > 
   >    Is it OK for me to check this one in, Ian?  It's almost in the "obvious
   >    fix" category...
   > 
   > Almost.
   > 
   >    > +	      mask <<= size * 8 - (fixP->fx_signed ? 1 : 0);
   > 
   > If size is 4 and fixP->fx_signed is not set, then this will do a left
   > shift by 32.  If mask is itself 32 bits, then this is not defined by
   > ANSI C.  There are in fact compilers which will turn this into a
   > no-op: they generate a shift by 32 instruction, which is masked into a
   > shift by 0 instruction.
   > 
   > That's why I had the two shifts in the old code, and I think we need
   > to keep that.

   size == 4  =>  sizeof (mask) > 4.  Surely ANSI C doesn't restrict shift
   counts of 64 bit quantities to 32??

Whoops, sorry, I totally missed the initial if condition.  Yes, please
check in this patch.

Ian

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

* make check
  1999-07-28 15:50   ` Ian Lance Taylor
  1999-07-28 15:57     ` Alan Modra
@ 1999-07-28 19:28     ` Alan Modra
  1999-07-28 19:35       ` more "make check" issues Alan Modra
                         ` (2 more replies)
  1 sibling, 3 replies; 11+ messages in thread
From: Alan Modra @ 1999-07-28 19:28 UTC (permalink / raw)
  To: Ian Lance Taylor, Ulrich Drepper, Jason Merrill; +Cc: binutils

I've been slightly annoyed that "make check" always did a "make all" for
quite a while, but never annoyed enough to fix it until now.

Jason, on Oct 27 1997 you added the check-target-libio dependency on
all-target-libio.  Has the need for this gone?

Ulrich, do we need "check" to depend on "all" in your po/Makefiles?

I think I need an OK from both of you (and Ian) before checking this in.

Alan Modra


--- binutils-current/bfd/po/Make-in~	Mon May  3 16:58:58 1999
+++ binutils-current/bfd/po/Make-in	Thu Jul 29 11:09:46 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 
--- binutils-current/Makefile.in~	Wed Jul 28 14:00:16 1999
+++ binutils-current/Makefile.in	Thu Jul 29 11:38:31 1999
@@ -1583,7 +1583,7 @@
 all-target-libgloss: configure-target-libgloss configure-target-newlib
 configure-target-libio: $(ALL_GCC)
 all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
-check-target-libio: all-target-libstdc++
+check-target-libio:
 all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
 all-libiberty:
 configure-target-librx: $(ALL_GCC) configure-target-newlib
--- binutils-current/binutils/po/Make-in~	Mon May  3 16:59:10 1999
+++ binutils-current/binutils/po/Make-in	Thu Jul 29 11:10:29 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 
--- binutils-current/gas/po/Make-in~	Mon May  3 16:58:45 1999
+++ binutils-current/gas/po/Make-in	Thu Jul 29 11:11:15 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 
--- binutils-current/gprof/po/Make-in~	Mon May  3 16:59:11 1999
+++ binutils-current/gprof/po/Make-in	Thu Jul 29 11:15:17 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 
--- binutils-current/intl/Makefile.in~	Mon May  3 16:59:05 1999
+++ binutils-current/intl/Makefile.in	Thu Jul 29 11:10:00 1999
@@ -99,7 +99,7 @@
 ../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
 	cd ../po && $(MAKE) cat-id-tbl.$lo
 
-check: all
+check:
 
 # This installation goal is only used in GNU gettext.  Packages which
 # only use the library should use install instead.
--- binutils-current/ld/po/Make-in~	Mon May  3 16:59:07 1999
+++ binutils-current/ld/po/Make-in	Thu Jul 29 11:10:51 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 
--- binutils-current/opcodes/po/Make-in~	Mon May  3 16:59:01 1999
+++ binutils-current/opcodes/po/Make-in	Thu Jul 29 11:03:48 1999
@@ -178,7 +178,7 @@
 	done
 	rm -f $(gettextsrcdir)/po-Makefile.in.in
 
-check: all
+check:
 
 cat-id-tbl.o: ../intl/libgettext.h
 

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

* more "make check" issues
  1999-07-28 19:28     ` make check Alan Modra
@ 1999-07-28 19:35       ` Alan Modra
  1999-08-03  9:43         ` Ian Lance Taylor
  1999-07-29  9:38       ` make check Jason Merrill
  1999-07-29 11:29       ` Ian Lance Taylor
  2 siblings, 1 reply; 11+ messages in thread
From: Alan Modra @ 1999-07-28 19:35 UTC (permalink / raw)
  To: binutils

This one I've been ignoring for a long time.
                === binutils tests ===

Running /usr/src/binutils-current/binutils/testsuite/binutils-all/ar.exp ...
ERROR: (DejaGnu) proc "is_remote host" does not exist.
The error code is 


This one is new.
                === ld tests ===

Running /usr/src/binutils-current/ld/testsuite/ld-bootstrap/bootstrap.exp ...
ERROR: (DejaGnu) proc "target_info name" does not exist.
The error code is 


Target is i586-linuxlibc1 if it matters.  Time to update my dejagnu?

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

* Re: make check
  1999-07-28 19:28     ` make check Alan Modra
  1999-07-28 19:35       ` more "make check" issues Alan Modra
@ 1999-07-29  9:38       ` Jason Merrill
  1999-07-29 11:29       ` Ian Lance Taylor
  2 siblings, 0 replies; 11+ messages in thread
From: Jason Merrill @ 1999-07-29  9:38 UTC (permalink / raw)
  To: Alan Modra; +Cc: Ian Lance Taylor, Ulrich Drepper, binutils

This seems like it's the domain of the GNU coding standards.  What do they
say?  I don't care much one way or the other.

Jason

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

* Re: make check
  1999-07-28 19:28     ` make check Alan Modra
  1999-07-28 19:35       ` more "make check" issues Alan Modra
  1999-07-29  9:38       ` make check Jason Merrill
@ 1999-07-29 11:29       ` Ian Lance Taylor
  1999-07-29 11:37         ` Ulrich Drepper
  2 siblings, 1 reply; 11+ messages in thread
From: Ian Lance Taylor @ 1999-07-29 11:29 UTC (permalink / raw)
  To: alan; +Cc: drepper, jason, binutils

   Date: Thu, 29 Jul 1999 11:58:24 +0930 (CST)
   From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>

   I've been slightly annoyed that "make check" always did a "make all" for
   quite a while, but never annoyed enough to fix it until now.

   Jason, on Oct 27 1997 you added the check-target-libio dependency on
   all-target-libio.  Has the need for this gone?

   Ulrich, do we need "check" to depend on "all" in your po/Makefiles?

   I think I need an OK from both of you (and Ian) before checking this in.

These changes are OK with me.  Note that you can change them in the
binutils repository without affecting any other repository.

Of course, it would probably be nicer if we all agreed on the proper
solution.  I tend to agree that ``make check'' should not imply ``make
all.''  The GNU standards say this:
    Perform self-tests (if any).  The user must build the program before
    running the tests, but need not install the program; you should write
    the self-tests so that they work when the program is built but not
    installed.
which is ambiguous, but I think it implies that ``make check'' need
not imply ``make all''.

Ian

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

* Re: make check
  1999-07-29 11:29       ` Ian Lance Taylor
@ 1999-07-29 11:37         ` Ulrich Drepper
  1999-07-29 17:22           ` Alan Modra
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Drepper @ 1999-07-29 11:37 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: alan, jason, binutils

Ian Lance Taylor <ian@zembu.com> writes:

>    Ulrich, do we need "check" to depend on "all" in your po/Makefiles?

Yes, this is what we are doing everywhere.

-- 
---------------.      drepper at gnu.org  ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Cygnus Solutions `--' drepper at cygnus.com   `------------------------

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

* Re: make check
  1999-07-29 11:37         ` Ulrich Drepper
@ 1999-07-29 17:22           ` Alan Modra
  0 siblings, 0 replies; 11+ messages in thread
From: Alan Modra @ 1999-07-29 17:22 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Ian Lance Taylor, jason, binutils

On 29 Jul 1999, Ulrich Drepper wrote:

> > Ulrich, do we need "check" to depend on "all" in your po/Makefiles?
> 
> Yes, this is what we are doing everywhere.

Which in the binutils/*/po/ Makefiles is particularly silly.  "make check"
in these directories doesn't do any checking!

Not that this particularly concerns me, as leaving in the dependency there
just does a local "make all" in that directory.  The dependency I will
remove, since Jason didn't object, is

check-target-libio: all-target-libstdc++

in binutils/Makefile, as this results in a global "make all"

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

* Re: more "make check" issues
  1999-07-28 19:35       ` more "make check" issues Alan Modra
@ 1999-08-03  9:43         ` Ian Lance Taylor
  0 siblings, 0 replies; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-03  9:43 UTC (permalink / raw)
  To: alan; +Cc: binutils

   Date: Thu, 29 Jul 1999 12:05:22 +0930 (CST)
   From: Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>

   This one I've been ignoring for a long time.
		   === binutils tests ===

   Running /usr/src/binutils-current/binutils/testsuite/binutils-all/ar.exp ...
   ERROR: (DejaGnu) proc "is_remote host" does not exist.
   The error code is 


   This one is new.
		   === ld tests ===

   Running /usr/src/binutils-current/ld/testsuite/ld-bootstrap/bootstrap.exp ...
   ERROR: (DejaGnu) proc "target_info name" does not exist.
   The error code is 


   Target is i586-linuxlibc1 if it matters.  Time to update my dejagnu?

I've been assuming that the dejagnu sources which can be found at
    ftp://sourceware.cygnus.com/pub/gcc/infrastructure
will work for the binutils.  Can anybody confirm or deny that?

Ian

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

end of thread, other threads:[~1999-08-03  9:43 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <Pine.LNX.4.10.9907272027230.8678-100000@mullet.itr.unisa.edu.au>
1999-07-28  2:09 ` Overflow fix (was Problems with trampoline.S with 64 bit binutils) Alan Modra
1999-07-28 15:50   ` Ian Lance Taylor
1999-07-28 15:57     ` Alan Modra
1999-07-28 16:03       ` Ian Lance Taylor
1999-07-28 19:28     ` make check Alan Modra
1999-07-28 19:35       ` more "make check" issues Alan Modra
1999-08-03  9:43         ` Ian Lance Taylor
1999-07-29  9:38       ` make check Jason Merrill
1999-07-29 11:29       ` Ian Lance Taylor
1999-07-29 11:37         ` Ulrich Drepper
1999-07-29 17:22           ` Alan Modra

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).