flat assembler
Message board for the users of flat assembler.
Index
> Windows > Fixups / Relocation Table |
Author |
|
LocoDelAssembly 12 Apr 2012, 01:10
Maybe you forgot to add the fixups?
Code: section '.reloc' data discardable fixups if ~ $-$$ dd 0,8 ;empty fixups section iff no other fixups end if |
|||
12 Apr 2012, 01:10 |
|
CMalcheski 12 Apr 2012, 01:47
My existing version was compiled with MASM. I'm looking at switching to FASM now because of this problem.
|
|||
12 Apr 2012, 01:47 |
|
LocoDelAssembly 12 Apr 2012, 02:05
If the relocs are present in all the DLLs (and I believe this is always the case with MASM, at least with default settings), then everything should be going fine. The base address you mention, is the one you specified at link time? Notice that if the address range is already occupied the DLL has to be, well, relocated and hence it is completely normal to have it re-based (and therefore the pointer to functions looking different). Now if because of this the pointers are going nowhere (memory not allocated), or to something that it shouldn't go to then something is seriously screwed up (hard coded pointers in your source that MASM is not identifying as relocatable pointers rather than plain immediates?)
In case you are looking that one DLL and your EXE are using overlapping addresses, make sure the EXE is actually loaded where you think it is, because if MASM included relocations in your EXE, then Win7 might be using them as part of the ASLR process. |
|||
12 Apr 2012, 02:05 |
|
CMalcheski 12 Apr 2012, 02:48
OMG it's the embarrassment of the century. On par with calling tech support for a broken computer that isn't plugged in ...
I installed Win 7 on a new hard drive. Copied the whole development directory tree to the new Win7 drive off the old Vista drive. Had to rework all the batch files that do all the compiling because all the ML.EXE, LINK.EXE, etc. files are now in different location (8.3 naming has to be used in batch files). In the process of doing all this ... ahem ... I changed the /out: file name to something.dll ... but ... ... forgot the /DLL switch so it was compiling as an .EXE and being named as a .DLL. Added the switch and it all worked. |
|||
12 Apr 2012, 02:48 |
|
Madis731 12 Apr 2012, 06:19
There's a new linux-ish thing called PowerShell 2.0 in Windows 7, maybe you can break that 8.3 limitation with this shell.
|
|||
12 Apr 2012, 06:19 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.