This shows you the differences between two versions of the page.

Link to this comparison view

dsi32-copt [2018/02/16 13:15] (current)
Line 1: Line 1:
 +<​html><​h1>​Definicon DSI-32 C compiler options</​h1></​html>​
 +^ Option ^ Function ^
 +| -g | Generate ​ debug  information and a  frame  pointer ​ for  stack traces. ​ The amount and form of debug information varies with the capabilities of the target system. |
 +| -ga | Generate a frame pointer for stack traces. |
 +| -w | Suppress warning diagnostics. |
 +| -p | Generate ​ calls  for  execution ​ profiling. Currently supported only on UNIX. |
 +| -O1 | Optimize ​ the program to be as fast as possible even if          it is necessary to make the program bigger. ​  This flag often causes confusion among people familiar with  PCC.          Under  PCC,  -O  means  make the  program ​ smaller ​ and          faster. ​  One wonders why this is not the default since          the  -O compile time option only slows down compilation ​         by 10%.   Under Definicon Systems Pascal the default is          to  perform all of the optimizations performed by  PCC.          The -O option will perform further optimizations ​ which          may make the program faster but larger. ​  It is counter ​         productive ​ to  specify ​ -O  on code  which  is  rarely ​         executed ​ as it will make the whole program larger ​ but          no faster. ​ Therefore, when converting to the Definicon ​         Systems ​ compiler remove the -O option ​ from  makefiles ​         and command files! ​  After experimenting with a program ​         it is possible to discover which modules benefit from -O and which do not. |
 +| -O2 | Allow  the optimizer to assume that memory locations do          not  change except by explicit stores. ​  ​That ​ is,  the          optimizer ​ is guaranteed that no memory ​ locations ​ are          I/O  device ​ registers that can be changed by  external ​         ardware and no memory locations are being shared ​ with          other  processes ​ which can change them  asynchronously ​         with respect to the current process. ​ This compile time          option ​ must  be used with extreme caution (or  not  at          all)  in  device ​ drivers, ​ operating ​ systems, ​ shared ​         memory ​ environments, ​ and  when  interrupts ​ (or  UNIX          signals) are present.|
 +| -R | In  the Motorola assembly code version of  the  MC68000 ​         compiler, ​  ​place ​ explicitly ​ initialized ​ data  in  a          separate ​ section so that it can be placed in ROM.   ​In ​         the VAX and NS32000 compilers this compile time  option ​         is  passed ​ on to the assembler and it places all  data          into the text section. |
 +| -Istring | Include file names which do not start with "/"​ are          searched ​ for  in  the  directory ​ "​string" ​ before ​  ​a ​          ​standard list of directories. ​  ​Multiple -I options can          be  specified. ​  ​They ​ will  be searched in  the  order encountered. |
 +| -E | Do not compile the program, instead place the output of the preprocessor on the standard output file. This is useful ​    ​for ​ debugging preprocessor macros. The integrated preprocessor ​ cannot ​ generate ​ output as fast as  the  UNIX     "​cpp"​ program, so use "​cpp"​ for big jobs. |
 +| -C | If  this option is given, comments are output in the preprocessor output. The default is to strip comments from     the output. |
 +| -Dname | Define ​ "​name"​ to the preprocessor with the  value  1. This is equivalent to putting "#​define name 1" at the top of     the source file. |
 +| -Dname=string | Define "​name"​ to the preprocessor with the  value  "​string"​. ​  ​This ​ is  equivalent to  putting ​ "#​define ​ name     ​string"​ at the top of the source file. |
 +| -Uname | Undefine ​ the predefined preprocessor ​ symbol ​ "​name"​. ​    ​This ​ is  equivalent to putting "#​undef name" at the top  of      the source file. |
 +| -Xn | Where n is an integer constant. ​  Turn on option number n.  The options for Pascal are listed below. ​ There are also  additional options available for  various ​ target and host systems. ​ Descriptions of these options can be found in the associated documentation. |
 +| -Zn | Turn off option number n.  This is the reverse of the X option. ​  ​This ​ option ​ is useful if a version ​ of  the compiler has some options turned on by default. |
 +| -ge  | DSI-32 ​  ​Target ​ environment. Default is Avalon. Equivalent to -X50 -X51 -X52 |
 +| -X6 | Allocate each enum type as the smallest size predefined type     ​which ​ allows representation of all listed values (that  is,      from the list:  "​char", ​ "​short", ​ "​int", ​ "​unsigned ​ char", ​    "​unsigned ​ short", ​  ​or ​ "​unsigned"​). ​  ​The ​ default ​ is  to      allocate as an "​int"​. |
 +| -X50 | Push the first two arguments on the stack. Default is to  pass  the  first  two  arguments ​ in  registers ​ as explained in the Avalon calling convention. |
 +| -X51 | Generate ​ the  Genix  pseudo-ops. The default is to generate Avalon pseudo-ops, which are compatible with UNIX. |
 +| -X52 | Generate modular software calls: cxp,​cxpd,​lxpd,​... ​ The default is relocatable calls: bsr,​jsr,​addr. |
 +| -X55 | Make  fields of type int,  short, ​ and char be signed. ​  ​The ​    ​default is for all fields to be unsigned. |
 +| -X56 | Allocate each enum type as the smallest size which allows representation of all listed values (i.e. from the list "​char",​ "​short",​ "​int",​ "​unsigned char", "​unsigned short" or "​unsigned"​). The default is to allocate "​int"​|
 +| -X58 | Do  not put an underscore in front of the names of all global ​ variables and procedures. ​ This is  compatible with  the  NSX package from National. ​  The default is for DSI-32 and Avalon. |
 +| -X60 | Before each multiply to memory instruction add a memory read  instruction for the second operand. ​  This avoids having a page fault on the second operand, ​ which  will lock up NS32000 processors made before revision N. |
 +| -X64 | Defines ​  ​the ​  ​preprocessor ​ symbols "​ns16000"​ and "​ns32000"​ to be 1.   If this flag is not set, "​MC68000"​ is defined to be 1 |
 +| -X67 | Modifies the generation of common variables. ​  ​Intended for cross software support only. |
 +| -X72 | Generates OPUS style pseudo-ops. |
 +| -X74 | Generates System V stabs. |