This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
(fixed patch) pe-dll fix for exporting common symbols
- To: binutils@sourceware.cygnus.com
- Subject: (fixed patch) pe-dll fix for exporting common symbols
- From: Mumit Khan <khan@xraylith.wisc.EDU>
- Date: Thu, 24 Jun 1999 14:43:05 -0500
Ooops! Looks like I sent the wrong file. Please ignore the last one.
The following change allows i386-pe ``ld --shared'' to export common
symbols correctly.
Thu Jun 24 12:41:50 1999 Mumit Khan <khan@xraylith.wisc.edu>
* pe-dll.c (process_def_file): Export common symbols correctly.
Index: pe-dll.c
===================================================================
RCS file: /cvs/binutils/binutils/ld/pe-dll.c,v
retrieving revision 1.2
diff -u -3 -p -u -p -r1.2 pe-dll.c
--- pe-dll.c 1999/05/11 21:06:48 1.2
+++ pe-dll.c 1999/06/24 20:48:17
@@ -383,13 +383,23 @@ process_def_file (abfd, info)
name,
false, false, true);
- if (blhe && (blhe->type == bfd_link_hash_defined))
+ if (blhe
+ && (blhe->type == bfd_link_hash_defined
+ || (blhe->type == bfd_link_hash_common)))
{
count_exported++;
if (!pe_def_file->exports[i].flag_noname)
count_exported_byname++;
- exported_symbol_offsets[i] = blhe->u.def.value;
- exported_symbol_sections[i] = blhe->u.def.section;
+ if (blhe->type == bfd_link_hash_defined)
+ {
+ exported_symbol_offsets[i] = blhe->u.def.value;
+ exported_symbol_sections[i] = blhe->u.def.section;
+ }
+ else
+ {
+ exported_symbol_offsets[i] = 0;
+ exported_symbol_sections[i] = blhe->u.c.p->section;
+ }
if (pe_def_file->exports[i].ordinal != -1)
{
if (max_ordinal < pe_def_file->exports[i].ordinal)
Regards,
Mumit