delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/09/14/20:51:27

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Date: Thu, 14 Sep 2000 20:50:38 -0400
Message-Id: <200009150050.UAA09500@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
To: danny_r_smith AT hotmail DOT com, cygwin AT sources DOT redhat DOT com
In-reply-to: <200009142254.SAA08402@envy.delorie.com> (message from DJ Delorie
on Thu, 14 Sep 2000 18:54:25 -0400)
Subject: Re: ld -shared and @ordinals in .def files
References: <20000724232744 DOT 44516 DOT qmail AT hotmail DOT com> <200009142254 DOT SAA08402 AT envy DOT delorie DOT com>

Oops, I meant this patch, which should also fix the NONAME bug:

Index: pe-dll.c
===================================================================
RCS file: /cvs/src/src/ld/pe-dll.c,v
retrieving revision 1.14
diff -p -2 -r1.14 pe-dll.c
*** pe-dll.c	2000/07/19 00:04:04	1.14
--- pe-dll.c	2000/09/15 00:48:59
*************** fill_edata (abfd, info)
*** 704,720 ****
  				+ ssec->output_section->vma
  				+ ssec->output_offset);
  
! 	  bfd_put_32 (abfd, srva - image_base, (void *) (eaddresses + i));
  	  if (!pe_def_file->exports[s].flag_noname)
  	    {
  	      char *ename = pe_def_file->exports[s].name;
  	      bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs);
  	      strcpy (enamestr, ename);
  	      enamestr += strlen (enamestr) + 1;
! 	      bfd_put_16 (abfd, i, (void *) eordinals);
! 	      enameptrs++;
  	      pe_def_file->exports[s].hint = hint++;
  	    }
- 	  eordinals++;
  	}
      }
--- 704,722 ----
  				+ ssec->output_section->vma
  				+ ssec->output_offset);
+ 	  int ord = pe_def_file->exports[s].ordinal;
  
! 	  bfd_put_32 (abfd, srva - image_base,
! 		      (void *) (eaddresses + ord - min_ordinal));
  	  if (!pe_def_file->exports[s].flag_noname)
  	    {
  	      char *ename = pe_def_file->exports[s].name;
  	      bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs);
+ 	      enameptrs++;
  	      strcpy (enamestr, ename);
  	      enamestr += strlen (enamestr) + 1;
! 	      bfd_put_16 (abfd, ord, (void *) eordinals);
! 	      eordinals++;
  	      pe_def_file->exports[s].hint = hint++;
  	    }
  	}
      }


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019