CMake Platform Dependent Issues: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 70: Line 70:
|-
|-
| icc || -Wall -w2 -Wcheck || -Werror || -wd(#n)
| icc || -Wall -w2 -Wcheck || -Werror || -wd(#n)
|-
| bcc32 || || -g1 || -w-(#n)
|-
|-
| xlC || -qflag=w:w or -qlanglv=ansi ||  ||  
| xlC || -qflag=w:w or -qlanglv=ansi ||  ||  

Revision as of 15:45, 19 August 2005

The Platforms / Compilers Table

Platform System Info Compilers Macros List Dependencies Trace Syscal/Signal Runtime Library Path
Linux uname -a gcc, g++, icc __linux ldd program strace LD_LIBRARY_PATH
HP-UX uname -a cc, aCC __hpux chatr program SHLIB_PATH (32), LD_LIBRARY_PATH (64)
AIX uname -a xlc, xlC _AIX dump -H program LIBPATH
SunOS uname -a cc, CC __sparc ldd program LD_LIBRARY_PATH (32), LD_LIBRARY_PATH_64 (64)
IRIX hinv, uname -a cc, CC __sgi ldd program LD_LIBRARY_PATH (o32), LD_LIBRARYN32_PATH (n32), LD_LIBRARY64_PATH (64)
Max OSX / Darwin system_profiler, uname -a gcc, g++ __APPLE__ otool -L program ktrace -f outfile program; kdump outfile DYLD_LIBRARY_PATH
Cygwin uname -a gcc, g++ __CYGWIN__, _WIN32 depends program.exe PATH
Windows ver Visual Studio 6, cl _WIN32 depends program.exe PATH
Visual Studio 7, cl depends program.exe
Visual Studio 7.1, cl depends program.exe

Architecture Modes

Compiler Command Languages Architecture Flags Macros
GNU gcc C __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__
g++ C++
SGI MIPSpro cc C -o32, -n32, -64 _COMPILER_VERSION, _MIPS_SIM==_ABIO32 (o32), _MIPS_SIM==_ABIN32 (n32), _MIPS_SIM==_ABI64 (64)
CC C++
SunPro cc C -xarch=... __SUNPRO_C #include <sys/isa_defs.h>: _ILP32 (32), _LP64 (64)
CC C++ __SUNPRO_CC
HP cc C +DD64 __LP64__ (64)
aCC C++ __HP_aCC
IBM VisualAge xlc C -q32, -q64
xlC C++

Compiler Options and Flags

Compiler Full warnings Warnings as Errors Disabling a particular warning (#n)
gcc -W -Wall -Werror
MIPS Pro -fullwarn -w2
icc -Wall -w2 -Wcheck -Werror -wd(#n)
bcc32 -g1 -w-(#n)
xlC -qflag=w:w or -qlanglv=ansi
cl /W4 /WX /Wd(#n)
aCC +w +We +Warg1[,arg2,..argn]
  • More platform specific information can be found in ROSETTA STONE platforms table (Mostly for system administrators)

Debugging Tips

The gdbrun Script for UNIX-like Platforms

The following is an extremely useful script that will run any command line in a gdb debugger. Put this text in an executable file called "gdbrun":

#!/bin/sh

extra_text=""
if [ "$1" == "--break-main" ]; then
  extra_text="break main"
  shift
fi

EXEC="$1"

shift

run_text="run"
for a in "$@"; do
  run_text="${run_text} \"$a\""
done

TMPFILE=/tmp/gdbrun.$$.$#.tmp
cat > ${TMPFILE} <<EOF
${extra_text}
${run_text}
EOF

gdb -x ${TMPFILE} "${EXEC}"
rm -f "${TMPFILE}"

Then one may debug a test like this:

gdbrun /path/to/myexe --some-arg --some-other-arg

CAVEAT: Does not support space in the path