diff options
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 5 | ||||
-rw-r--r-- | ld/emultempl/pep.em | 4 |
3 files changed, 15 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 5fc553c..74eacab 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2007-11-06 Kai Tietz <kai.tietz@onevision.com> + + * emultempl/pe.em: (init): Add __ImageBase symbol. + (MSIMAGEBASEOFF): New. + (set_pe_name): Keep __image_base and __ImageBase value synch. + (_set_symbols): Likewise. + * emultempl/pep.em: Likewise. + 2007-10-26 Alan Modra <amodra@bigpond.net.au> PR 5215 diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 503f79e..10887b0 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -286,6 +286,8 @@ static definfo init[] = D(ImageBase,"__image_base__", NT_EXE_IMAGE_BASE), #define DLLOFF 1 {&dll, sizeof(dll), 0, "__dll__", 0}, +#define MSIMAGEBASEOFF 2 + D(ImageBase, U ("__ImageBase"), NT_EXE_IMAGE_BASE), D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT), D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT), D(MajorOperatingSystemVersion,"__major_os_version__", 4), @@ -374,6 +376,8 @@ set_pe_name (char *name, long val) { init[i].value = val; init[i].inited = 1; + if (strcmp (name,"__image_base__") == 0) + set_pe_name (U ("__ImageBase"), val); return; } } @@ -708,6 +712,7 @@ gld_${EMULATION_NAME}_set_symbols (void) #endif else init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE; + init[MSIMAGEBASEOFF].value = init[IMAGEBASEOFF].value; } /* Don't do any symbol assignments if this is a relocatable link. */ diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 36b4f61..20523ed 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -260,7 +260,7 @@ static definfo init[] = #define DLLOFF 1 {&dll, sizeof(dll), 0, "__dll__", 0}, #define MSIMAGEBASEOFF 2 - D(ImageBase,"__ImageBase", NT_EXE_IMAGE_BASE), + D(ImageBase,"___ImageBase", NT_EXE_IMAGE_BASE), D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT), D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT), D(MajorOperatingSystemVersion,"__major_os_version__", 4), @@ -343,7 +343,7 @@ set_pep_name (char *name, long val) init[i].value = val; init[i].inited = 1; if (strcmp (name,"__image_base__") == 0) - set_pep_name ("__ImageBase", val); + set_pep_name ("___ImageBase", val); return; } } |