SUE@geneseo.bitnet (Sue Chichester) (04/10/89)
I thought it would be nice for my users not to have to think about
linking with the GCCLIB and the VAXC libraries when they linked their
GCC programs. So what I wanted to have them do is say GLINK fn when
linking. The first GLINK was just suppose to be a quick and dirty way of
doing this. I made up a little command procedure GLINK.COM.
$ ! GLINK.COM - LINK for GCC
$!
$ IF P1 .NES. "" THEN GOTO LINK
$ INQUIRE P1 "File"
$LINK:
$LINK 'P1',GNU_CC:[000000]GCCLIB/LIB,VAXC/OPTIONS
$EXIT
This is okay but what I really want is something that you can also
use the options available on the LINK command. I used VERB to extract
LINK.CLD and thought I'd modify it. (By the way, I don't know too much
about writing .CLD files) To be quick honest, I really didn't know what I was
doing with this GLINK.CLD but I tried the following and I get an error when I
say GLINK my.obj
LINK-F-FIRSTMOD first input file being a library requires module extraction.
My question: Does anyone know how LINK.CLD should be modified to always
link with the GCCLIB and VAXC libraries? Is it even possible?
-OR-
Can my DCL command procedure be modified to allow for options on the LINK
command?
Thanks in advance.
Sue Chichester
SUNY Geneseo
SUE@GENESEO.BITNET
!*************************************GLINK**************************************
define type CHECK_KEY
keyword SYSTEM
default
keyword TASK
define type SHARE_KEY
keyword TASK
default
keyword COMMON
keyword LIBRARY
define syntax LINK_USING_TKB
image BACKTRANS
parameter P1 , prompt="File"
value (required,impcat,list,type=$infile)
qualifier BRIEF
default
qualifier CHECKPOINT
value (type=CHECK_KEY)
qualifier COMPATIBLE
default
qualifier CONCATENATED
placement=local
qualifier CROSS_REFERENCE
qualifier DEBUG
value (type=$infile)
qualifier DEFAULT_LIBRARY
value (required,type=$infile)
qualifier ERROR_LIMIT
value (default="1")
qualifier EXECUTABLE
default
value (type=$outfile)
placement=positional
qualifier EXIT
value (default="1")
qualifier FULL
qualifier HEADER
default
qualifier INCLUDE
value (required,list)
placement=local
qualifier LIBRARY
placement=local
qualifier LONG
qualifier MAP
batch
value (type=$outfile)
placement=positional
qualifier OPTIONS
value (type=$infile)
qualifier OVERLAY_DESCRIPTION
qualifier POSITION_INDEPENDENT
qualifier POST_MORTEM
qualifier RECEIVE
default
qualifier RESIDENT_OVERLAY
default
qualifier RSX11
qualifier SEGREGATE
qualifier SELECTIVE_SEARCH
placement=local
qualifier SEQUENTIAL
qualifier SHAREABLE
value (type=SHARE_KEY)
qualifier SLOW
qualifier SYMBOL_TABLE
value (type=$outfile)
placement=positional
qualifier TKB_OPTIONS
value (type=$infile)
qualifier TRACE
disallow ((LONG or FULL or BRIEF or CROSS_REFERENCE) and not MAP)
disallow (EXIT and ERROR_LIMIT)
disallow any2(BRIEF,LONG,FULL)
disallow (OPTIONS and TKB_OPTIONS)
define verb GLINK
image LINK
parameter P1 , prompt="File"
value (required,impcat,list,type=$infile)
qualifier BRIEF
qualifier CROSS_REFERENCE
qualifier DEBUG
value (type=$infile)
qualifier EXECUTABLE
default
value (type=$outfile)
placement=positional
qualifier INCLUDE
value (required,list)
placement=local
qualifier LIBRARY
default
value(default="gnu_cc:[000000]gcclib,sys$library:vaxcrtl")
placement=local
qualifier SHAREABLE
value (type=$outfile)
qualifier CONTIGUOUS
qualifier MAP
batch
value (type=$outfile)
placement=positional
qualifier OPTIONS
placement=local
qualifier SELECTIVE_SEARCH
placement=local
qualifier SYMBOL_TABLE
value (type=$outfile)
placement=positional
qualifier SYSLIB
default
qualifier SYSTEM
value
qualifier SUPRESS
default
value (default="SYSLIB,DEBUG,WEAK")
qualifier RSX11 , syntax=LINK_USING_TKB
qualifier FULL
qualifier HEADER
qualifier TRACE
default
qualifier SYSSHR
default
qualifier USERLIBRARY
default
value (list)
qualifier P0IMAGE
qualifier PROTECT
disallow ((FULL or BRIEF or CROSS_REFERENCE) and not MAP)
disallow (SYSTEM and DEBUG)
disallow (PROTECT and SYSTEM)
disallow (P0IMAGE and (SHAREABLE or SYSTEM))
disallow (HEADER and SHAREABLE)
disallow (BRIEF and (CROSS_REFERENCE or FULL))huxtable@kuhub.cc.ukans.edu (Kathryn Huxtable) (04/12/89)
In article <8904101437.AA11953@life.ai.mit.edu>, SUE@geneseo.bitnet (Sue Chichester) writes: > I thought it would be nice for my users not to have to think about > linking with the GCCLIB and the VAXC libraries when they linked their > GCC programs. So what I wanted to have them do is say GLINK fn when > linking. The first GLINK was just suppose to be a quick and dirty way of > doing this. I made up a little command procedure GLINK.COM. > > > $ ! GLINK.COM - LINK for GCC > $! > $ IF P1 .NES. "" THEN GOTO LINK > $ INQUIRE P1 "File" > $LINK: > $LINK 'P1',GNU_CC:[000000]GCCLIB/LIB,VAXC/OPTIONS > $EXIT You can't do what you want with the CLD file because you are not allowed to specify a list for a default value. CLD won't parse it, and the LINK command doesn't think it has to. Try the following: declare a symbol, as follows: $ glink == "@ gnu_cc:[000000]glink """"" This will supply a null 'P1' to the command procedure. This will allow qualifiers to be used immediately after the symbol name. Replace the first two occurrences of P1 with P2. Then replace the LINK command in your command procedure with: $ LINK 'P2' 'P3' 'P4' 'P5' 'P6' 'P7' 'P8', - GNU_CC:[000000]GCCLIB/LIB,VAXC/OPTIONS Any qualifiers will be passed through, commas won't be stripped, so DCL should be happy. I use something similar to this, myself. Good luck, Kathryn Huxtable huxtable@kuhub.cc.ukans.edu