[PURRS-devel] Re: CLN 1.1.4 and GCC 3.1

Richard B. Kreckel kreckel at ginac.de
Fri May 31 13:11:53 CEST 2002


Hi there,

I should have looked closer at your bugreport when you first submitted it.  
This is indeed a bug in the assembler 'gas', so in the binutils package,
that was triggered by CLN and fixed by Bruno Haible a couple of weeks ago.

On Fri, 31 May 2002, Roberto Bagnara wrote:
[...]
> gcc -g -O2 -I../include -I../../cln-1.1.5/include -I../../cln-1.1.5/tests -I../../cln-1.1.5/src -I../../cln-1.1.5/src/base -I../../cln-1.1.5/src/float -I../../cln-1.1.5/src/float/lfloat -I../../cln-1.1.5/src/integer -I../../cln-1.1.5/src/base/random -I../../cln-1.1.5/src/base/digitseq -I../../cln-1.1.5/src/base/digit -I../src/base -I../../cln-1.1.5/src/base  -c exam.s -o exam.o
> exam.s: Assembler messages:
> exam.s:216: Error: File number 53 already allocated
> make[1]: *** [exam.o] Error 1
> make[1]: Leaving directory `/usr/local/distrib/buildcln/tests'
> make: *** [all] Error 2

It seems like binutils-2.12.1 does not fix the problem yet.  Hence, you
have three options:
1) Downgrade binutils to a version that has worked before
2) Wait for a new version of binutils.
3) Manually apply the following patch to gas/dwarf2dbg.c that was applied
   upstream by Nick Clifton <nickc at cambridge.redhat.com> on May 11 and
   build and install your own binutils:
===================================================================
RCS file: /cvs/src/src/gas/dwarf2dbg.c,v
retrieving revision 1.46
diff -c -3 -p -w -p -r1.46 dwarf2dbg.c
*** gas/dwarf2dbg.c     3 May 2002 02:25:33 -0000       1.46
--- gas/dwarf2dbg.c     11 May 2002 10:26:52 -0000
*************** dwarf2_emit_insn (size)
*** 290,296 ****
      return;
    loc_directive_seen = false;
  
!   dwarf2_where (&loc);
    dwarf2_gen_line_info (frag_now_fix () - size, &loc);
  }
  
--- 290,301 ----
      return;
    loc_directive_seen = false;
  
!   /* Use the last location established by a .loc directive, not
!      the value returned by dwarf2_where().  That calls as_where()
!      which will return either the logical input file name (foo.c)
!      or the physical input file name (foo.s) and not the file name
!      specified in the most recent .loc directive (eg foo.h).  */
!   loc = current;
    dwarf2_gen_line_info (frag_now_fix () - size, &loc);
  }

Regards
     -richy.
-- 
Richard B. Kreckel
<Richard.Kreckel at Uni-Mainz.DE>
<http://wwwthep.physik.uni-mainz.de/~kreckel/>





More information about the PURRS-devel mailing list