Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/scripts/gcc-plugin.sh

  1 #!/bin/sh
  2 srctree=$(dirname "$0")
  3 
  4 SHOW_ERROR=
  5 if [ "$1" = "--show-error" ] ; then
  6         SHOW_ERROR=1
  7         shift || true
  8 fi
  9 
 10 gccplugins_dir=$($3 -print-file-name=plugin)
 11 plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <<EOF
 12 #include "gcc-common.h"
 13 #if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)
 14 #warning $2 CXX
 15 #else
 16 #warning $1 CC
 17 #endif
 18 EOF
 19 )
 20 
 21 if [ $? -ne 0 ]
 22 then
 23         if [ -n "$SHOW_ERROR" ] ; then
 24                 echo "${plugincc}" >&2
 25         fi
 26         exit 1
 27 fi
 28 
 29 case "$plugincc" in
 30         *"$1 CC"*)
 31                 echo "$1"
 32                 exit 0
 33                 ;;
 34 
 35         *"$2 CXX"*)
 36                 # the c++ compiler needs another test, see below
 37                 ;;
 38 
 39         *)
 40                 exit 1
 41                 ;;
 42 esac
 43 
 44 # we need a c++ compiler that supports the designated initializer GNU extension
 45 plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <<EOF
 46 #include "gcc-common.h"
 47 class test {
 48 public:
 49         int test;
 50 } test = {
 51         .test = 1
 52 };
 53 EOF
 54 )
 55 
 56 if [ $? -eq 0 ]
 57 then
 58         echo "$2"
 59         exit 0
 60 fi
 61 
 62 if [ -n "$SHOW_ERROR" ] ; then
 63         echo "${plugincc}" >&2
 64 fi
 65 exit 1

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us