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

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

558.0. "Help with Linker options" by MILRAT::KEEFE () Fri Sep 18 1987 13:24

    We have been trying without success to perform a composite link
    of 2 executable images, that work together, into one loadable
    image. 
          
    I've been using the 'cluster' and 'collect' options but either
    I'm not using them correctly or haven't found the 'right' combination.

    I've included the two separate com files in the hopes that someone
    out there could give me a hint.

    These are standalone images, they do not run under VMS. Originally  
    image 1 (actually VDS) was booted via disk and internal drivers loaded 
    image 2(the diagnostic). They are both loaded into separate address spaces.
                                                                 
    We want to load just one single image that contains both     
    in their respective positions. Any linker heavies know how this
    might be accomplished ?                                      
                                                                 
    Thanks,                                                      
                                                                 
	- Bill                                                   
                                                                 
    
    $link -                                                         
      /exe=ehsaa.exe/contig/debug/map=ehsaa.map/full/cross/symbol=ds -
      vds/options                                                


    This is the contents of the options file.
        
cluster=test,%x200,,dz0,dz1
psect_attr=$header,gbl
psect_attr=$tstcnt,gbl
psect_attr=dispatch,gbl
psect_attr=dispatch_x,gbl
collect=test,$header,-
	$tstcnt,-
	dispatch,-
	dispatch_x
cluster=main,%x10000,,KERNEL,-
	ACPFDT,-
	APT,-
	ASSIGN,-
	ASTCON,-    (there's many more obj files, but you get the idea)
	ASTDEL,- 
	ATTACH,- 
	BOOTDRIVR

dzro_min=1000
        

    The resulting Map shows the .psects where we expect them to be,
    however when the image is loaded or we DUMP it to a file, the contents 
    of the MAIN cluster are not in fact at address %x10000. 
                                              
T.RTitleUserPersonal
Name
DateLines
558.1PSW::WINALSKIPaul S. WinalskiSun Sep 27 1987 18:196
Of course it isn't loaded at %X10000.  Putting it there is up to your load
routine, if you are not running VMS (in which case the image activator will
map the address space properly).  You need to use the /SYSTEM qualifier when
creating images that wil not be loaded by the VMS image activator.

--PSW
558.2workaroundMILRAT::KEEFEBill Keefe - 223-1837- MLO21-4Tue Nov 10 1987 12:3211
    In case anyone else bumps into this, we had to solve the problem
    by writing a program that massaged the diagnostic and the VDS .exe
    files. Also needed was a small macro-32 program that moves things
    to the proper place after booting. We now are able to boot one image
    over the ENET that contains both the supervisor and the diagnostic
    within it, issue the needed ATTACH/SELECT commands and start running. 
                                                                 
    Anyone interested in more details, please send mail.
    
    	- Bill Keefe