Honour PRIVATE keyword
authorNick Clifton <nickc@redhat.com>
Mon, 8 Mar 2004 11:33:59 +0000 (11:33 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 8 Mar 2004 11:33:59 +0000 (11:33 +0000)
ld/ChangeLog
ld/pe-dll.c

index 38ac4fed80f63fac3f065b8216a88c181260aa0a..37138d939fce8ae9897c6eea71c9763de2bc2b19 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-08  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * pe-dll.c (pe_dll_generate_implib): Skip sections marked as
+       private when building implib.
+
 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
 
        * ldlang.c (lang_add_section): Don't force SEC_LOAD on
index 5c4a3ad72b37b29ed63eb4e6f0e97518606abc1c..10d636e544c50034731f3ef1bfc3bef1b25fd24b 100644 (file)
@@ -26,6 +26,7 @@
 #include "libiberty.h"
 #include "safe-ctype.h"
 
+#include <stdint.h>
 #include <time.h>
 
 #include "ld.h"
@@ -917,8 +918,8 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   int s, hint;
   unsigned char *edirectory;
-  unsigned long *eaddresses;
-  unsigned long *enameptrs;
+  uint32_t *eaddresses;
+  uint32_t *enameptrs;
   unsigned short *eordinals;
   unsigned char *enamestr;
   time_t now;
@@ -929,7 +930,7 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
 
   /* Note use of array pointer math here.  */
   edirectory = edata_d;
-  eaddresses = (unsigned long *) (edata_d + 40);
+  eaddresses = (uint32_t *) (edata_d + 40);
   enameptrs = eaddresses + export_table_size;
   eordinals = (unsigned short *) (enameptrs + count_exported_byname);
   enamestr = (char *) (eordinals + count_exported_byname);
@@ -2257,6 +2258,9 @@ pe_dll_generate_implib (def_file *def, const char *impfilename)
       char *internal = def->exports[i].internal_name;
       bfd *n;
 
+      /* Don't add PRIVATE entries to import lib.  */  
+      if (pe_def_file->exports[i].flag_private)
+       continue;
       def->exports[i].internal_name = def->exports[i].name;
       n = make_one (def->exports + i, outarch);
       n->next = head;