Commit Graph

14 Commits

Author SHA1 Message Date
Brad King db05da35d2 Recognize SCO UnixWare C/C++ compilers (#11700)
These compilers define __SCO_VERSION__ as VvvYYYYMML:

     V = major version
    vv = minor version
  YYYY = release year
    MM = release month

http://osr600doc.sco.com/en/manCP/cc.CP.html
http://osr600doc.sco.com/en/manCP/CC.CP.html
2011-01-17 09:52:33 -05:00
Brad King 79f5a7c098 Merge topic 'compiler-id-literal-const'
dbc79bd Fix constness in compiler id detection
2011-01-04 15:44:56 -05:00
Brad King dbc79bd8c8 Fix constness in compiler id detection
Since commit 70c2dc8a (Make compiler id detection more robust,
2008-03-10) we store compiler identification strings in test binaries
using the form

  char* info = "info";

Use the const-correct

  char const* info = "info";

form instead.  This allows the C++ compiler identification to work with
"-Werror -Wall" or equivalent flags if the compiler would warn about
const-to-non-const conversion.
2010-12-29 15:35:15 -05:00
Wojciech Migda f1392dc90b Recognize the Texas Instruments DSP compiler (#11645)
The TI DSP compiler predefines "__TI_COMPILER_VERSION__".  Use this to
identify the C and C++ compilers.  For assembler language the C compiler
executable is used:

  $ cl6x -h
  TMS320C6x C/C++ Compiler v6.1.11
  Tools Copyright (c) 1996-2009 Texas Instruments Incorporated

Use this command-line option and output to recognize the assembler.
2010-12-28 12:22:38 -05:00
Brad King 53e76c8f12 Teach CMake about Cray C, C++, and Fortran compilers
The Cray Fortran compiler needs "-em" to enable module output and also
"-J." to place the .mod files in the current working directory (instead
of next to the .o file).
2010-11-12 09:12:08 -05:00
Brad King 571dc74891 Recognize Clang C and C++ compilers (see #10693)
Map to the platform and compiler information for GNU because the
compilers are command-line compatible for common operations.  Later we
can add Clang-specific features as necessary.  We honor the preferred
capitalization is "Clang", not the common mis-spelling "CLang".
2010-05-17 14:11:20 -04:00
Brad King 1e9f58e605 Recognize the PathScale C/C++/Fortran compilers 2010-01-13 12:12:39 -05:00
Bill Hoffman 4430bccc70 Change the way 32/64 bit compiles are detected with MSVC and intel makefile builds. Use the platform ID preprocessor approach. 2009-11-19 21:58:42 -05:00
Brad King 115ecc5750 Teach compiler id about VisualAge -> XL rebranding
IBM rebranded its VisualAge compiler to XL starting at version 8.0.  We
use the compiler id "XL" for newer versions and "VisualAge" for older
versions.  We now also recognize the "z/OS" compiler, which is distinct
from XL.
2009-08-07 10:13:07 -04:00
Brad King 69e366f49b ENH: Check _SGI_COMPILER_VERSION for compiler id
Some SGI compilers define _SGI_COMPILER_VERSION in addition to the old
_COMPILER_VERSION preprocessor symbol.  It is more distinctive, so we
should check it in case the old one is ever removed.
2009-07-14 15:17:21 -04:00
Brad King b8fc8b324d ENH: Improve robustness of compiler INFO strings
Compiler INFO strings built at preprocessing time encode information
that must appear as a string literal in the resulting binary.  We must
make sure the strings appear in the final binary no matter what compiler
and flags are used.  The previous implementation worked in most places
but failed with the GNU linker's --gc-sections option which managed to
discard the string.  Instead we make the program return value depend on
an element of the string indexed by a runtime program parameter, which
absolutely requires the string to be present.
2008-08-07 09:09:45 -04:00
Brad King 70c2dc8a64 ENH: Make compiler id detection more robust
- Split INFO strings in source into multiple pieces
    to make sure assembly or other listings produced
    by the compiler are never matched by the regex
  - Store INFO strings via pointer instead of array
    to convince some compilers to store the string
    literally in the binary
  - This should help make it work for sdcc 2.8.0 RC1
2008-03-10 09:32:25 -04:00
Brad King 83c5f1b3f0 ENH: Add support to C compiler identification for void return type from main. Cross-compilers for embedded platforms may require it. 2008-02-25 18:47:19 -05:00
Brad King 9211b0d234 ENH: Improvied compiler identification robustness
- Write a single source file into the compiler id directory
  - This avoid requiring the compiler to behave correctly with
    respect to include rules and the current working directory
  - Helps to identify cross-compiling toolchains with unusual
    default behavior
2008-02-25 09:23:14 -05:00