This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi Pedro,
> Kai Tietz wrote:
> > Hi Pedro,
> >
> >> Kai Tietz wrote:
> >>
> >> > +#define MSIMAGEBASEOFF 2
> >> > + 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),
> >> > @@ -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 ("__ImageBase", val);
> >> >
> >>
> >> Shouldn't it be ___ImageBase (3 underscores) on i386 9x/NT
> >> Windows, as opposed to x64, which I think I've read that it
> >> is not underscored? This file is also used for arm-wince,
> >> which is not underscored. (Although this __ImageBase thing
> >> isn't as useful in Windows CE, because HMODULE == base address
> >> isn't true there.)
> >>
> >> You may use U take care of the differences between targets,
> >> it's defined in the top of pe.em:
> >>
> >> #define U(S) ${INITIAL_SYMBOL_CHAR} S
> >>
> >> Where INITIAL_SYMBOL_CHAR is "_" in i386.
> >>
> >> Like so:
> >> + set_pe_name (U ("__ImageBase"), val);
> >
>
>
> > The symbol is defined by MS as 'extern IMAGE_DOS_HEADER _ImageBase'.
So
> > the name is correct. I will add the U.
>
> Where is that documented? It wouldn't be the first time
> MS docs wheren't exactly in line with reality...
>
> Did you try it? This doesn't build here with MSVC2005.
>
> #include "stdafx.h"
> #include <windows.h>
> #include <stdio.h>
>
> EXTERN_C IMAGE_DOS_HEADER _ImageBase;
> #define HINST_THISCOMPONENT ((HINSTANCE)&_ImageBase)
>
> int _tmain(int argc, _TCHAR* argv[])
> {
> printf ("%p\n", HINST_THISCOMPONENT);
> return 0;
> }
>
> >Linking...
> >main.obj : error LNK2001: unresolved external symbol __ImageBase
>
> But, two underscores on __ImageBase on the C/C++ side links correctly.
AFAIC read your version is correct. There must be two underscores in the
header and therefore three in ld. I took a look at the MS headers (as
Jerker did) and MS defines it with two underscores 8|
I will add the same issue to pep.em, too. Because I defined it there
false, too.
> > For Windows CE and arm-wince __image_base__ is invalid too (the same
thing
> > as for _ImageBase).
>
> I know. It hasn't bothered me enough yet to fix it ;)
>
> > No, for x64 it is underscored, too.
>
> Humm, this is what I remembered reading:
>
http://lists-archives.org/mingw-users/07903-leading-underscore-or-not.html
I can just tell, that for the x86_64 version underscores are generated for
symbols. And this target has the same base (for this configuration) as the
32-bit version. So IMHO there are underscores.
ChangleLog for /ld/emultempl:
2007-11-02 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.
Cheers,
i.A. Kai Tietz
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
------------------------------------------------------------------------------------------
OneVision Software Entwicklungs GmbH & Co. KG
Dr.-Leo-Ritter-StraÃe 9 - 93049 Regensburg
Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
Handelsregister: HRA 6744, Amtsgericht Regensburg
KomplementÃrin: OneVision Software Entwicklungs Verwaltungs GmbH
Dr.-Leo-Ritter-StraÃe 9 â 93049 Regensburg
Handelsregister: HRB 8932, Amtsgericht Regensburg - GeschÃftsfÃhrer:
Ulrike DÃhler, Manuela Kluger
Attachment:
imagebase32.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |