Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sascc370(1) — SAS/C 370 5.50.07

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1)

SASCC370(1)  —  USER COMMANDS

NAME

sascc370 − SAS/C 370 UNIX hosted compiler. 

USAGE

sascc370 [ options ] file ... 

DESCRIPTION

sascc370 is the UNIX interface to the SAS/C 370 compiler components, the preprocessor/front end (lc1), the optimizer (go), the code generator (lc2) and the pre-linker (clink).  sascc370 accepts several types of arguments as files:

• Arguments whose names end with a .c are understood to be C source files.  Each is compiled and the resulting object file is left in a file having the corresponding basename, but suffixed with a .o instead of .c.  However, if a single C file is compiled and linked, all in one step, the .o file is deleted. 

• Arguments whose names end with a .o are simply passed to the clink step. 

Assembly source programs (arguments whose names end with a .s) are not supported.  The various options that can be used with sascc370 are listed below. 

OPTIONS

Many of the options are displayed when the sascc370 command is executed with no arguments.  If an option is unrecognized, it is added to the clink command, as is customary of UNIX cc drivers.  What follows is a detailed list of some commonoptions. 

To pass a specific option to a particular phase of the compiler, use -W?,<option>, where ? is 1 for LC1, 2 for LC2 and l for CLINK. 

−W1,−ao ASCIIOUT, all character and string constants will be emitted as ASCII values instead of EBCDIC. 

−Kat AT, Allow use of the @ operator. 

−Kbitfield=n
BITFIELD(n), Set the allowed size of bitfield types to n.  n can be one of 1, 2 or 4. 

−Kbytealign
BYTEALIGN, Align structure members at byte boundaries.

−W1,−cc COMNEST, Allow nested comments

−W1,−ct CTSUP, Surpress warning messages for undefined structure and union tags. 

−W1,−cw CWSUP, Surpress function mismatch warnings for return statements that return an int. 

−W1,−cxx CXX, the C source being compiled was output from the SAS/C C++ pre−processor. 

−Kdbgmacro
DBGMACRO, Specify that C macro names should be saved in the debugger file.

−W1,−xlo DBHOOK, Generate debugger hooks. 

−Dsym=val
DEFINE(sym=val), Define the identifier sym as having the value val during the pre−processing phase. 

−g DEBUG, produce an object suitable for debugging, also produces the debugging information side files, file.stab370 for use with the CPR/370 debugger and file.dbg370 for use with the native SAS/C debugger. 

−Kdollars DOLLARS, Allow the dollar−sign in C identifiers. 

−W1,−ud DYNAMNDEF

−w~n ENFORCE(n), Cause warning message n to be treated as an error condition. 

−Kextname
EXTNAME, Produce extended name information for using external C identifiers whose lengths are greater than 8 characters or are mixed case.

−W1,−pr GENPROTO, Create a file containing prototypes for all functions defined in the source file. 

−W1,!hu Specify system include search rules that are typical of the mainframe rather than the UNIX host. 

−W1,−hs HMULTI, include system headers (<>) only once. 

−W1,−hl IMULTI, include local headers (" ") only once. 

−W1,−i INDEP, Generate code that can be called before the run-time library framework is initialized or code that can be used for interlanguage communications. 

−W1,−j JAPAN

−W1,−l LINENO

−mrc Mainframe Return Code - the sascc370 driver will exit with a value which is the maximum of the return codes from any of the compiler phases, similar to the CMS/MVS drivers.  Without this option, the driver exits with 0 or 1, as a UNIX driver would. 

−W+n MENTION(n), Specify that warning number n should not be suppressed. 

−W1,−cm MULTICHAR

−Kpflocal PFLOCAL, Assume that all functions are __local unless __remote was explicitly specified in the declaration. 

−W1,−co PPIX

−P PPONLY, Only run the pre−processor on any .c files, producing .P files. 

−W1,−cr REDEF,  Allow redefinition of #define values. 

−Krefdef REFDEF, When compiling RENT, use the strict REF/DEF module of C linkage, instead of the COMMON model. 

−Krent RENT,  The resulting object will be RE−ENTRANT. 

−Krentext RENTEXT, Any references to external data will be RE−ENTRANT, static data will remain NON−RE−ENTRANT. 

−cf REQPROTO,

−W1,−k SMPXIVEC, Generate a CSECT with a unique name of the form sname@. in place of @EXTVEC# (for SMP support.) 

−Ksname=foo
SNAME(foo), the compilations section name will be set to foo. 

−W1,−ll STRICT, Enable an extra set of warning messages for questionable or nonportable code. 

−W1,−cs STRINGDUP, Create a single copy of identical string constants. 

−wn SUPPRESS(n), Don’t emit warning message number n. 

−W1,−t TERM

−W1,−cg TRIGRAPHS, Allow/use trigraphs. 

−W1,−v VSTRING

−Wl,−m LET, CLINK doesn’t exit with a return code of 4 for unresolved references. 

−U UNDEF, Do not pre−define the symbols normally defined

−s<ihemsnx>
Listing options; i indicates ILIST, h HLIST, e EXCLUDE, m MACLIST and MLIST, s SOURCE, n  NARROW, and x XREF, produces a cross reference. 

−W1,−t TRANS (accepted but has no effect)

−Kzapspace=n
ZAPSPACE(n), Set the zap space to n. 

−Kzapmin=n
ZAPMIN(n), Set the minimum zap space to n. 

−O Run the global optimizer (go). 

−Oa ALIAS, turn on non−ANSI aliasing assumptions. 

−Ol LOOP, turn on loop optimization

−Os SIZE, size (vs. time) optimizations

−Ot TIME, time (vs. size) optimizations

−Oin INLINE, Enables inlining during the optimization phase. 

−Oic=n COMPLEXITY(n), inline complexity specification. 

−Oid=n DEPTH(n), inline nesting depth. 

−Oir=n RDEPTH(n), inline recursion specification. 

−Oil INLOCAL, inline single−use static functions. 

−S OMD, generate an object module disassembly listing, produced in a .omd file. 

−Ipathname
append pathname to the list of directories searched for include files. 

−Qpathname
specify where to search for the compiler phases.

−c don’t run the pre-linker (clink). 

−o filename specify the filename of the generated object or executable.  Note that a space is required between the -o and filename

−v show the command line which executes each phase of the compiler. 

−temp=dir specify where to put temporary files. 

−Tcms370 specify that CMS is the target.  Causes the compiler to #define CMS and not #define MVS.  Causes the driver to specify the CMS libraries during linking, and to add the -p option (remove psuedo registers) to the clink command. 

−Tpcms370 specify that pre-bimodal CMS is the target.  Causes the compiler to #define CMS and not #define MVS.  Causes the driver to specify the pre-bimodal CMS libraries during linking, and to add the -p option (remove psuedo registers) to the clink command

−Tallres specify that the all-resident libraries specific to the target should be pre-pended before the normal C library (libc.a) for the target.  -Tallres may be used in conjunction with -Tcms370 and -Tpcms370. 

−Tspe specify that the SPE libraries specific to the target should replace the normal C library (libc.a) for the target.  -Tspe may be used in conjunction with -Tcms370 and -Tpcms370. 

−W1,−q002=list−file−name
specify the name of the listing file.

−W2,−q001=source−file−name
specify the name of the source file in the debugging file.

−W2,−q003=dbg370−file−name
specify the name of the native SAS/C 370 debugging information.

−W2,−q004
force the code generator to generate a single return sequence at the end of each function.

-Q<path> specify an alternative location, path, for locating the compiler executables. 

ENVIRONMENT VARIABLES.

The environment variable INCLUDE can be used to specify where the system include files are to be found.  The sascc370 driver provides a default location if INCLUDE is not specified. 

EXAMPLE

sascc370 -c foo.c
Will compile the C source foo.c, and produce the object file foo.o

FILES

file.cinput C source file
file.ocompiled object file
file.sOMD file
a.outPre-linked output (default)
LIBDIR/libc.aStandard C library. 
LIBDIR/libares.a All-Resident C library. 
LIBDIR/libspe.a System’s Programming Environment C library. 
sascc370      SAS/C Cross Platform compiler driver
lc1      SAS/C Cross Platform C language parser
lc2      SAS/C Cross Platform code generator
go      SAS/C Cross Plaform global optimizer
clink      SAS/C Cross Platform pre-linker
omd      SAS/C Cross Plaform Object Module Disassembler

DIAGNOSTICS

The diagnostics produced by sascc370 represent problems executing phases of the compiler.  Each phase of the compiler is capable of producing its own diagnositic messages.  The UNIX hosted front end (lc1) produces messages similar to those produced by most UNIX C compilers. 

RELATED INFORMATION

cc(1), SAS/C Compiler and Library User’s Guide. 

5.50  —  Last change: SAS/C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026