This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: bfd assertion fail in cofflink.c:1397 on aixps2


   Date: Mon, 3 Oct 94 20:00:16 PDT
   From: Minh Tran-Le <TRANLE@intellicorp.com>

   At the line 1397 of cofflink.c there is following code:

       BFD_ASSERT(auxp->x_file.x_n.x_offset >= STRING_SIZE_SIZE)

   and that assert fail when I am using shared libraries under aix386 with:

       auxp->x_file.x_n.x_offset = 0 and
       STRING_SIZE_SIZE = 4

   Does anybody have the same problem on other svr3 shared libraries ?
   I seems that some of my shared libraries contains .file symbol with
   a null symbol.  Can I just ignore those bogus .file symbols ?

cofflink.c is buggy.  Here is the patch.

Ian

Index: cofflink.c
===================================================================
RCS file: /rel/cvsfiles/devo/bfd/cofflink.c,v
retrieving revision 1.5
diff -p -r1.5 cofflink.c
*** cofflink.c	1994/09/27 21:09:20	1.5
--- cofflink.c	1994/10/04 15:52:37
*************** coff_link_input_bfd (finfo, input_bfd)
*** 1388,1394 ****
  		{
  		  /* If this is a long filename, we must put it in the
  		     string table.  */
! 		  if (auxp->x_file.x_n.x_zeroes == 0)
  		    {
  		      const char *filename;
  		      bfd_size_type indx;
--- 1388,1395 ----
  		{
  		  /* If this is a long filename, we must put it in the
  		     string table.  */
! 		  if (auxp->x_file.x_n.x_zeroes == 0
! 		      && auxp->x_file.x_n.x_offset != 0)
  		    {
  		      const char *filename;
  		      bfd_size_type indx;