Man Linux: Main Page and Category List

NAME

       tcc - User interface to the TDF system

SYNOPSIS

       tcc [ options ] files

DESCRIPTION

       tcc  is  the  user  interface  to  the  TDF  system.   It is more fully
       documented in the tcc Users Guide.

       tcc accepts several types of arguments as files:

       -      Arguments whose names end in .c are understood to  be  C  source
              files.

       -      Arguments   whose   names   end  in  .i  are  understood  to  be
              preprocessed C source files.

       -      Arguments whose names end in .C are understood to be C++  source
              files (only if -Yc++ is specified).

       -      Arguments   whose   names   end  in  .I  are  understood  to  be
              preprocessed C++ source files (only if -Yc++ is specified).

       -      Arguments whose names end in .j  are  understood  to  be  target
              independent TDF capsules.

       -      Arguments  whose  names end in .ta are understood to be archives
              of target independent TDF capsules.

       -      Arguments whose names end in .t  are  understood  to  be  target
              dependent TDF capsules.

       -      Arguments  whose  names  end in .s are understood to be assembly
              source files.

       -      Arguments whose names end in .d are understood to be TenDRA dump
              files.

       -      Arguments  whose  names  end in .K are understood to be C++ spec
              files (only if -Yc++ is specified).

       -      Arguments whose names  end  in  .p  are  understood  to  be  TDF
              notation source files (only if -Ytnc is specified).

       -      Arguments  whose  names  end  in .pl are understood to be PL_TDF
              source files (only if -Ypl_tdf is specified).

       -      All other arguments (but particularly those whose names  end  in
              .o and .a) are understood to be binary object files.

       The compilation process is as follows.  Depending on the options given,
       it may halt at any stage:

       1.     TDF archives are split into their constituent target independent
              capsules.

       2.     C  source  files  (including  preprocessed  C) are compiled into
              target independent TDF capsules using tdfc(1).  (tcpplus(1) does
              the same for C++ source files when -Yc++ is specified.)

       3.     Target  independent  TDF capsules are linked, using tld(1), with
              the TDF libraries to produce target dependent TDF capsules.

       4.     Target dependent  TDF  capsules  are  translated  into  assembly
              source  files  using  one of mipstrans(1) (q.v. - things are not
              quite so simple in this case), trans386(1) etc.

       5.     Assembly source files are  compiled  into  binary  object  files
              using as(1).

       6.     Binary  object  files are linked with the precompiled libraries,
              using ld(1), to produce a final executable.

       With the exception of binary object files, intermediate files  are  not
       preserved unless explicitly instructed.

       The  standard  file  suffixes  c,  i,  C,  I,  j, t, s, o, d, k, and K,
       together with p (pretty-printed TDF  capsule)  and  pl  (PL_TDF  source
       file),  are  used  to  indicate  file  types in some options.  Also the
       various compilation phases are identified by letters in  some  options.
       These are:

       c      C to TDF producer

       p      C preprocessor

       x      C++ to TDF producer (only if -Yc++ is specified)

       g      C++ preprocessor (only if -Yc++ is specified)

       L      TDF linker (or builder)

       t      TDF translator

       a      System assembler

       l      System linker

       S      C++ spec linker

       e      Compact-output error reporter (only if -Ycompact is specified)

       u      TenDRA dump file linker

       d      TDF pretty-printer

OPTIONS

       The  following  options  are supported by tcc.  All options are scanned
       before input files are dealt with.  The system variable TCCOPTS may  be
       used  to specify a list of options which are processed before the first
       command-line option.

       -Astring
              Asserts the predicate string.

       -Bstring
              Passed to the system linker.  The valid  values  of  string  are
              target dependent.

       -C     Not  implemented  and provided for cc(1) compatibility only.  It
              is meant to preserve comments when preprocessing.

       -Dstring
              Where string is of the form macro or macro=defn,  is  equivalent
              to  inserting  the  preprocessor directives "#define macro 1" or
              "#define macro defn" at the start of each C source  file.   This
              is  implemented  by  tcc  writing this directive into a start-up
              file.

       -E     Invokes the C preprocessor only, putting the result into a  file
              with  a  .i suffix if other options indicate that preprocessed C
              files  are  to  be  preserved,  or  onto  the  standard   output
              otherwise.  Similarly, C++ source files are preprocessed and put
              into files with .I suffixes.

       -Eletter:file
              Causes file to be invoked as the executable for the  compilation
              stage given by letter.

       -Fletter
              Tells tcc to stop after producing the files indicated by letter,
              and to preserve  these  files.  letter  is  a  single  character
              corresponding to the suffix of the files to be preserved.

       -G     Provided for cc compatibility.

       -H     Causes  the names of files included by a ’#include’ directive to
              be printed.

       -Istring
              Tells the producers and preprocessors to  search  the  directory
              string  for included files.  The directories are searched in the
              order given, followed by the system default directories.

       -Jstring
              Tells the TDF linker to search  the  directory  string  for  TDF
              libraries.   The  linker  searches  the directories in the order
              given, followed by the system default directories.

       -Kstring,...
              Provided for  cc  compatibility.   Specifies  various  installer
              options.

       -Lstring
              Tells  the  system  linker  to  search  the directory string for
              libraries.  It searches the  directories  in  the  order  given,
              followed by the system default directories.

       -M     Specifies  that  the TDF linker should link all the given target
              independent TDF capsules into one.  This is done between  stages
              2  and  3  above.   The default name for the produced capsule is
              a.j.

       -MA    Specifies that the TDF linker should link all the  given  target
              independent  TDF capsules into one and also hide all the defined
              tag and token names from  the  resultant  TDF  (except  the  tag
              "main").  This should only be used to compile complete programs.
              The default name for the resulting capsule is a.j.

       -Nidentifier:string
              As -Istring except that the identifier identifier is  associated
              with the directory string in the producer.

       -Ostring
              This  flag  has  no  effect  other  than  to cancel any previous
              diagnostics flag and is included  only  for  compatibility  with
              other  compilers.  All TDF optimisations are on by default.  All
              optimisations are believed to be correct, any bug  which  occurs
              in the fully-optimised state is a genuine bug.

       -P     Invokes  the C preprocessor only, putting the result into a file
              with a .i suffix.  The C++ preprocessor is similarly invoked for
              C++  source  files,  putting  the  result  into a file with a .I
              suffix.

       -Pletter...
              Tells tcc to preserve those files  indicated  by  letter.   Each
              letter  is a single character corresponding to the suffix of the
              files to be preserved.  The tcc startup-file can be preserved as
              tcc_startup.h   using   -Ph.   All  intermediate  files  can  be
              preserved using -Pa.

       -S     Tells tcc to stop after producing an assembly source file.  This
              is equivalent to -Fs.

       -Sletter,string,...
              The  specifies that the list of input files string all have type
              letter, where letter is a single  character  giving  the  normal
              suffix  of  the  file type.  This gives an alternative method of
              passing input files to tcc, one which  does  not  depend  on  it
              having to recognise suffixes to find the type of a file.

       -Sletter:string
              Similar  to the option above, but specifies a single input file,
              string (which may contain a comma).

       -Ustring
              Is equivalent to inserting  the preprocessor  directive  "#undef
              string" at the start of each C source file.  This is implemented
              by tcc writing this directive into a start-up  file.   The  only
              macros  built into the C to TDF producer are __LINE__ , __FILE__
              , __DATE__ , __TIME__ , __STDC__ , __ANDF__ and __TenDRA__ .

       -V     Causes all tools invoked by tcc to print their version  numbers.

       -Wletter,string,...
              This  passes the list of options string to the compilation phase
              indicated by letter.

       -Wletter:string
              Similar to the option  above,  but  specifies  a  single  option
              string (which may contain a comma).

       -Xstring
              Specifies  a  compilation  mode.   string  can be a for "lenient
              ANSI", c for "strict ANSI" (this is default), p for "strict ANSI
              with  some  extra  checks",  s  for "strict ANSI with many extra
              checks" or t for "traditional".

       -X:string
              Specifies an individual compilation option.  See the tcc  Users
              Guide for details.

       -Yfile Specifies  the  environment  to  use.   An environment is a file
              telling tcc to modify its defaults.  If the full pathname of env
              is   not   given,  the  file  is  searched  for  along  the  tcc
              environments path which is a list of  directories  separated  by
              colons.  This search path can be printed using -show_env.  There
              are  certain   standard   environments,   for   example,   ansi,
              representing the ANSI API (this is the default API environment),
              posix represents the POSIX API, xpg3 the XPG3 API,  and  so  on.
              The  system  environment  allows tcc to behave like cc(1), using
              the system header files etc.   See  the  tcc  Users  Guide  and
              tccenv(5) manual page for more details about environments.

       -Zstring
              Provided  for  cc(1) compatibility.  Specifies various installer
              options.

       -api_check
              Causes tchk to create an API usage analysis file,  with  default
              name a.api.

       -api_check_out string
              If an API usage analysis file is produced, call it string.

       -b     Stops the library libc.a being used by the linker by default.

       -c     Tells tcc to stop after producing the binary object files.  This
              is equivalent to -Fo.

       -cc    Causes tcc to invoke cc(1) for its code production, using the  C
              to  TDF producer as a checking front-end to cc.  This allows the
              checking capabilities of the front-end of the TDF compiler to be
              exploited on machines where no TDF back-end is available.

       -cc_only
              Causes tcc to invoke cc(1) only.

       -ch    Causes  tcc  to emulate the stand-alone static checker, tchk(1).
              Intermodular checks are enabled in this mode.

       -d     Halts the compilation after the  creation  of  the  dump  files.
              This is equivalent to -Fd.

       -disp  Runs  the  TDF  pretty-printer  on all files at stage 2 or 3 and
              then terminates.   The  results  are  put  into  files  with  .p
              suffixes.

       -disp_t
              Runs  the  pretty-printer  on  all  files  at  stage  3 and then
              terminates.  This differs from the previous option  in  that  it
              displays  the  TDF  after  linking with the target-dependent TDF
              libraries rather than before.  The output is  put  into  a  file
              with a .p suffix.

       -dn or -dy
              Passed to the system linker.

       -doletter string
              Sets  the  name  of  the  default  output file of type letter to
              string.  For example, -doh can be used to set the  name  of  the
              preserved start-up file.

       -dry   Makes  tcc  print  information  on what system commands it would
              execute with the given files and options (as  in  verbose  mode)
              but not actually perform them.

       -dump  Causes tcc to dump its current status.  This option is only used
              during the actual compilation of tcc.

       -estring
              Is equivalent to inserting the preprocessor directive  "#include
              "string"" at the end of each C source file.

       -fstring
              Is  equivalent to inserting the preprocessor directive "#include
              "string"" at the start of each C source file.

       -g     Tells tcc to produce diagnostic information compatible with  the
              system debugger.

       -hstring
              Passed to the system linker.

       -i     Tells  tcc  to  stop  after producing the target independent TDF
              capsules.  This is equivalent to -Fj.

       -im    Enables intermodular checks.

       -im0   Disables intermodular checks.

       -info  Causes tcc to print information on the current API.

       -jstring
              Tells the TDF linker to use the TDF library string.tl.

       -k     In intermodular checking mode, halts the compilation  after  the
              creation of the C++ spec files.  This is equivalent to -FK.

       -keep_errors
              By  default, if an error occurs during the production of a file,
              tcc will remove it.  This option will preserve such files.

       -lstring
              Tells the system linker to use the library libstring.a.

       -make_up_names
              Causes tcc to make up names for all  intermediate  files  rather
              than forming them from the basenames of the input files.

       -message string
              Causes tcc to print the message string.

       -nepc  Tells  the  C  to  TDF  producer  to  allow certain non-portable
              constructs through.

       -not_ansi
              Tells the C to TDF producer to allow certain  non-ANSI  features
              through.

       -no_startup_options
              Ensures  that  no start-up or end-up options are passed to the C
              to TDF producer (unlikely to be useful).

       -o string
              If a final executable is produced, call it string  (the  default
              is  a.out).   Otherwise,  if only one file is preserved, call it
              string.

       -p     Produces profiling data for use with prof(1) on  those  machines
              for which this command is available.

       -prod  Specifies  that  tcc  should  stop  after  producing  the target
              independent TDF capsules and combine them into  a  TDF  archive.
              The default archive name is a.ta.

       -q or -quiet
              Specifies that tcc should work silently.  This is the default.

       -query Causes  tcc  to  print  a list of all the options it recognises,
              together with a brief description of each.  Since this  list  is
              automatically  generated  it  is likely to be more accurate than
              this manual page.

       -s     Passed to the system linker.

       -sletter:suffix
              Specifies that files  with  suffix  suffix  are  interpreted  as
              having type indicated by letter.

       -show_env
              Prints the tcc environments path.  This is a list of directories
              separated by colons.  The first element of the  list  is  always
              the  system  default environments directory and the last element
              is always the current working directory.  The other elements may
              be specified by the user by means of the TCCENV system variable.

       -show_errors
              Makes tcc report on the command it was executing when  an  error
              occurred.

       -special string
              Allows various internal options to be specified.

       -startup string
              Causes string to be printed to the tcc built-in start-up file.

       -sym   Enables dump-linking.

       -sym: string
              Enables dump-linking (with mode specified by options in string).

       -target string
              No  effect  (allowed  for  compatibility  with  cc(1)  on   some
              systems).

       -temp dir
              Specifies that tcc should use dir as its temporary directory.

       -tidy  Causes  tcc  to  remove  its intermediate files when they are no
              longer  required  rather  than  waiting  to  the  end   of   the
              compilation.

       -time  Makes  tcc  print  information  on  what  system  commands it is
              executing (as with verbose mode) followed by the time taken  for
              each.

       -ustring
              Passed to the system linker.

       -v or -verbose
              Specifies   that  tcc  should  work  in  verbose  mode,  sending
              information on what system  commands  it  is  executing  to  the
              standard output.

       -vb    Causes  the  name  of  each  input  file  to be printed as it is
              processed.

       -version
              Makes tcc report its version number.

       -w     Suppresses all tcc warning messages.

       -work string
              Specifies that all preserved intermediate files  are  placed  in
              the  directory  string  rather  than  where  they  are placed by
              default, in the current working directory.

       -wsl   Tells the TDF translator to make all string literals writable.

       -zstring
              Passed to the system linker.

FILES

       file.c C source file

       file.i Preprocessed C source file

       file.C C++ source file (only if -Yc++ is specified)

       file.I Preprocessed C++ source file (only if -Yc++ is specified)

       file.j Target independent TDF capsule

       file.t Target dependent TDF capsule

       file.s Assembly source file

       file.o Binary object file

       file.d TenDRA dump file

       file.K C++ spec file (only if -Yc++ is specified)

       file.p Pretty-printed TDF capsule

       file.pl
              PL_TDF source file (only if -Ypl_tdf is specified)

       file.ta
              TDF archive

       file.G Binasm source file (Mips and Alpha only)

       file.T Assembler symbol table (Mips and Alpha only)

       a.out  Default executable name

       a.ta   Default TDF archive name

       a.d    Default dump file name

       a.api  Default API usage analysis file name

       a.j    Default output file for merge-TDF-capsules option

       tcc_startup.h
              Name of preserved tcc start-up file

       /tmp/tcc*
              Temporary directory (this may be changed using the TMPDIR system
              variable, see tempnam(3)).

SEE ALSO

       as(1),  cc(1),  disp(1),  ld(1), prof(1), tchk(1), tdfc(1), tcpplus(1),
       tot_o(1),    tld(1),    trans386(1),    alphatrans(1),    hppatrans(1),
       mipstrans(1), sparctrans(1), tccenv(5).

                                                                        tcc(1)