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.
This commit is contained in:
Nick Clifton 2004-09-30 17:19:19 +00:00
parent 9fe0b840a9
commit db8acf26ca
3 changed files with 9 additions and 2 deletions

View 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.

View 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;

View 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;