[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference decwet::visual

Title:Microsoft Visual C++ bug reports and kits
Notice:Register in Topic 2. 5.Last for latest Kit
Moderator:DECWET::THOMASN
Created:Tue May 17 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:521
Total number of notes:2938

492.0. "VC50 (RC12) - Problem in rebasing the address of a DLL" by HYDRA::CHIN () Tue Apr 08 1997 10:16

 Hi,

 
 A key CAD partner reports a error: Error Code 487, Attempt to access
 invalid address,  when trying to reallocate a DLL.

  VC50 RC12/Alpha was used:  cl 11.01.7050, link.exe 5.01.7044

 To further exemplify the problem, one can use the rebase (SDK tool)
 to try moving base address of a dll, and get "relocation info is missing..."
 message.

 
 What could be the problem here?  Please let me know if you need 
 more information.

 
 Thanks,
 Miller
 
T.RTitleUserPersonal
Name
DateLines
492.1can't reproduce the problemDECWET::JOMary had a little lamb, with mint jelly. Dot WarnerWed Apr 09 1997 13:5813
    hi miller,
    
    is it possible for you to upgrade to the RTM version of VC50?
    
    we can't reproduce the problem here using the latest VC50.
    we tried it with a DLL built with the RTM kit and couldn't duplicate
    the behaviour you describe.
    
    is it possible to get a copy of the DLL along with the linker and rebase 
    command you're using?
    
    jo
   
492.2Try Linker option /FIXED:NODECWET::MUPOPAWed Apr 09 1997 14:307
The linker default option is NOW (VC++ 5.0) /FIXED:YES.

The effect is NOT to generate a relocation section in
the DLL or EXE image. Opposite of past behavior.

If you want to allow for relocation, you need to specify 
linker option /FIXED:NO.
492.3HYDRA::CHINWed Apr 09 1997 14:527
  
  Thanks for the information.  We are testing the RTM kit as we speak.

  Will keep you posted.

  Miller
492.4FX!32 ?nova05.vbo.dec.com::BERGERThu Apr 10 1997 04:2011
> The linker default option is NOW (VC++ 5.0) /FIXED:YES.
> 
> The effect is NOT to generate a relocation section in
> the DLL or EXE image. Opposite of past behavior.

Is that true for the Intel version as well ? Isn't that going to 
cause problems to FX!32 ? I think I saw somewhere that FX!32 was 
based on being able to relocate Intel executables, but I may be 
totally wrong...

	Vincent
492.5DECWET::MUPOPAThu Apr 10 1997 17:585
Ref: .4

The change applies to Intel platforms also.
Yes, this will surprise quite a few people.
I don't know why the change was necessary.
492.6HYDRA::CHINWed Apr 16 1997 12:4414
  RE: -1

  Sorry for the late reply - the bentley engineer broke his foot last week.

  
  The problem is fixed by changing the default option to /FIXED:NO.
  Bentley is able to compile and link for the first pass, and is ready to try
  some of those ECO-81 switches.  We expect to see some performance gain
  against Intel with this build.

  Thank you all for the help.

 Miller
492.7TECO::tecotoo.mro.dec.com::mayerDanny MayerWed Apr 16 1997 16:056
>  Sorry for the late reply - the bentley engineer broke his foot last week.
> 
	So the fix was a cast??? :-)


		Danny
492.8TALLIS::HERDEGMark HerdegWed Apr 23 1997 17:239
FX!32 does frequently need to relocate x86 images since the FX!32 support images
have to be somewhere in the address space. We were concerned about the VC++ 5.0
change. When I asked about it, I was told that the default has been changed to
/FIXED:YES only for EXEs. It remains /FIXED:NO for DLLs. That is generally OK
with FX!32, unless someone bases their nonrelocatable EXE at an unusual address.

Is that not true? Is the default /FIXED:YES for DLLs as well as EXEs? Yikes!

-Mark
492.9.8 is correctDECWET::PETERSONThu Apr 24 1997 11:055
    I just built a dll using VC++ V5.0 for intel.
    The Base Relocation Directory in it is not empty.
    it is possible to specify /fixed with a dll, in which case the Base
    Relocation Directory is empty and the DLL cannot be relocated,
    but the default is to have relocations with a DLL