From: Nick Clifton Date: Mon, 8 Mar 2004 11:33:59 +0000 (+0000) Subject: Honour PRIVATE keyword X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ee31fbd0360ca03692ab43dc4743ea0c3fa5a91a;p=binutils-gdb.git Honour PRIVATE keyword --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 38ac4fed80f..37138d939fc 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2004-03-08 Danny Smith + + * pe-dll.c (pe_dll_generate_implib): Skip sections marked as + private when building implib. + 2004-03-05 Nathan Sidwell * ldlang.c (lang_add_section): Don't force SEC_LOAD on diff --git a/ld/pe-dll.c b/ld/pe-dll.c index 5c4a3ad72b3..10d636e544c 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -26,6 +26,7 @@ #include "libiberty.h" #include "safe-ctype.h" +#include #include #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;