emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Generate correct base
authorNick Clifton <nickc@redhat.com>
Thu, 30 Sep 2004 17:19:19 +0000 (17:19 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 30 Sep 2004 17:19:19 +0000 (17:19 +0000)
  address for position independant executables.
pe-dll.c (pe_dll_fill_sections): Don't mark position independant executables
  as DLLs.

ld/ChangeLog
ld/emultempl/pe.em
ld/pe-dll.c

index f9a0780..4f915c5 100644 (file)
@@ -1,3 +1,10 @@
+2004-09-30  Filip Navara  <navaraf@reactos.com>
+
+       * emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Generate
+       correct base address for position independant executables.
+       * pe-dll.c (pe_dll_fill_sections): Don't mark position independant
+       executables as DLLs.
+
 2004-09-30  Paul Brook  <paul@codesourcery.com>
 
        * ld.texinfo: Document --target2=abs.
index 9ff5c9c..9f39aa6 100644 (file)
@@ -665,7 +665,7 @@ gld_${EMULATION_NAME}_set_symbols (void)
     {
       if (link_info.relocatable)
        init[IMAGEBASEOFF].value = 0;
-      else if (init[DLLOFF].value || link_info.shared)
+      else if (init[DLLOFF].value || (link_info.shared && !link_info.pie))
 #ifdef DLL_SUPPORT
        init[IMAGEBASEOFF].value = (pe_enable_auto_image_base) ?
          compute_dll_image_base (output_filename) : NT_DLL_IMAGE_BASE;
index 0d0ecda..8813de6 100644 (file)
@@ -2665,7 +2665,7 @@ pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
 
   fill_edata (abfd, info);
 
-  if (info->shared)
+  if (info->shared && !info->pie)
     pe_data (abfd)->dll = 1;
 
   edata_s->contents = edata_d;