From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mumit Khan To: binutils@sourceware.cygnus.com Subject: (fixed patch) pe-dll fix for exporting common symbols Date: Thu, 01 Jul 1999 00:00:00 -0000 Message-id: <199906241943.OAA06490@mercury.xraylith.wisc.edu> X-SW-Source: 1999-q2/msg00343.html 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 * 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