Author: rharabien
Date: Thu Dec  8 19:02:04 2011
New Revision: 54613

URL: http://svn.reactos.org/svn/reactos?rev=54613&view=rev
Log:
[RSYM]
- Don't strip relocations for some sections. Linker knows better if they are 
needed. Fixes removed relocations for delayed imports in idata section. Bug 
traced by me, Timo and Amine.
See issue #6618 for more details.

Modified:
    trunk/reactos/tools/rsym/rsym.c

Modified: trunk/reactos/tools/rsym/rsym.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rsym/rsym.c?rev=54613&r1=54612&r2=54613&view=diff
==============================================================================
--- trunk/reactos/tools/rsym/rsym.c [iso-8859-1] (original)
+++ trunk/reactos/tools/rsym/rsym.c [iso-8859-1] Thu Dec  8 19:02:04 2011
@@ -432,35 +432,6 @@
 }
 
 static int
-IncludeRelocationsForSection(PIMAGE_SECTION_HEADER SectionHeader)
-{
-  static char *BlacklistedSections[] =
-    {
-      ".edata",
-      ".idata",
-      ".reloc"
-    };
-  char SectionName[IMAGE_SIZEOF_SHORT_NAME];
-  unsigned i;
-
-  if (0 != (SectionHeader->Characteristics & IMAGE_SCN_LNK_REMOVE))
-    {
-      return 0;
-    }
-
-  for (i = 0; i < sizeof(BlacklistedSections) / 
sizeof(BlacklistedSections[0]); i++)
-    {
-      strncpy(SectionName, BlacklistedSections[i], IMAGE_SIZEOF_SHORT_NAME);
-      if (0 == memcmp(SectionName, SectionHeader->Name, 
IMAGE_SIZEOF_SHORT_NAME))
-        {
-          return 0;
-        }
-    }
-
-  return 1;
-}
-
-static int
 ProcessRelocations(ULONG *ProcessedRelocsLength, void **ProcessedRelocs,
                    void *RawData, PIMAGE_OPTIONAL_HEADER OptHeader,
                    unsigned NumberOfSections, PIMAGE_SECTION_HEADER 
SectionHeaders)
@@ -505,7 +476,7 @@
     {
       TargetSectionHeader = FindSectionForRVA(BaseReloc->VirtualAddress, 
NumberOfSections,
                                               SectionHeaders);
-      if (NULL != TargetSectionHeader && 
IncludeRelocationsForSection(TargetSectionHeader))
+      if (NULL != TargetSectionHeader)
         {
           AcceptedRelocs = *ProcessedRelocs;
           Found = 0;


Reply via email to