3 ?RCS: Copyright (c) 2000, Jarkko Hietaniemi
5 ?RCS: You may redistribute only under the terms of the Artistic Licence,
6 ?RCS: as specified in the README file that comes with the distribution.
7 ?RCS: You may reuse parts of this distribution only within the terms of
8 ?RCS: that same Artistic Licence; a copy of which may be found at the root
9 ?RCS: of the source tree for dist 3.0.
11 ?MAKE:gccversion gccosandvers gccansipedantic: cat cpp rm +cc \
12 Mcc Myread Guess Options Oldconfig Loc osname osvers run
13 ?MAKE: -pick add $@ %<
15 ?S: If GNU cc (gcc) is used, this variable holds '1' or '2' to
16 ?S: indicate whether the compiler is version 1 or 2. This is used in
17 ?S: setting some of the default cflags. It is set to '' if not gcc.
20 ?S: If GNU cc (gcc) is used, this variable holds the operating system
21 ?S: and version used to compile gcc. It is set to '' if not gcc,
22 ?S: or if nothing useful can be parsed as the os version.
25 ?S: If GNU cc (gcc) is used, this variable will enable (if set) the
26 ?S: -ansi and -pedantic ccflags for building core files (through
27 ?S: cflags script). (See Porting/pumpkin.pod for full description).
38 ?LINT:extern locincpth
41 ?LINT:change locincpth
42 ?X: Check if they have gcc in any guise.
43 : Check if we are using GNU gcc and what its version is
45 echo "Checking for GNU cc in disguise and/or its version number..." >&4
49 #if defined(__GNUC__) && !defined(__INTEL_COMPILER)
51 printf("%s\n", __VERSION__);
59 if $cc -o try $ccflags $ldflags try.c; then
60 gccversion=`$run ./try`
62 '') echo "You are not using GNU cc." ;;
63 *) echo "You are using GNU cc $gccversion."
69 echo "*** WHOA THERE!!! ***" >&4
70 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4
71 ?X: using -K will prevent aborting--maybe they're cross compiling?
74 echo " You'd better start hunting for one and let me know about it." >&4
81 1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
84 '') gccosandvers='' ;;
85 *) gccshortvers=`echo "$gccversion"|sed 's/ .*//'`
86 gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"`
88 case "$gccosandvers" in
89 $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr
90 $osname$osvers) ;; # looking good
91 $osname*) cat <<EOM >&4
95 Your gcc has not been compiled for the exact release of
96 your operating system ($gccosandvers versus $osname$osvers).
98 In general it is a good idea to keep gcc synchronized with
99 the operating system because otherwise serious problems
100 may ensue when trying to compile software, like Perl.
102 I'm trying to be optimistic here, though, and will continue.
103 If later during the configuration and build icky compilation
104 problems appear (headerfile conflicts being the most common
105 manifestation), I suggest reinstalling the gcc to match
106 your operating system release.
110 *) gccosandvers='' ;; # failed to parse, better be silent
118 # gcc 3.* complain about adding -Idirectories that they already know about,
119 # so we will take those off from locincpth.
120 case "$gccversion" in
122 echo "main(){}">try.c
123 for incdir in $locincpth; do
124 warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \
125 grep '^c[cp]p*[01]: warning: changing search order '`
126 if test "X$warn" != X; then
127 locincpth=`echo " $locincpth " | sed "s! $incdir ! !"`