@@ -223,30 +223,6 @@ opt() {
223
223
fi
224
224
}
225
225
226
- envopt () {
227
- local NAME=$1
228
- local V=" CFG_${NAME} "
229
- eval VV=\$ $V
230
-
231
- # If configure didn't set a value already, then check environment.
232
- #
233
- # (It is recommended that the configure script always check the
234
- # environment before setting any values to envopt variables; see
235
- # e.g. how CFG_CC is handled, where it first checks `-z "$CC"`,
236
- # and issues msg if it ends up employing that provided value.)
237
- if [ -z " $VV " ]
238
- then
239
- eval $V =\$ $NAME
240
- eval VV=\$ $V
241
- fi
242
-
243
- # If script or environment provided a value, save it.
244
- if [ ! -z " $VV " ]
245
- then
246
- putvar $V
247
- fi
248
- }
249
-
250
226
msg " looking for configure programs"
251
227
need_cmd cmp
252
228
need_cmd mkdir
645
621
if ! (( chk_cc gcc clang && chk_cc g++ clang) ||
646
622
(chk_cc gcc gcc &&( chk_cc g++ g++ || chk g++ gcc)) ) then
647
623
err " the gcc and g++ in your path point to different compilers.
648
- Check which versions are in your path with gcc --version and g++ --version.
624
+ Check which versions are in your path with cc --version and g++ --version.
649
625
To resolve this problem, either fix your PATH or run configure with --enable-clang"
650
626
fi
651
627
@@ -670,101 +646,41 @@ then
670
646
esac
671
647
fi
672
648
673
- # Even when the user overrides the choice of CC, still try to detect
674
- # clang to disable some clang-specific warnings. We here draw a
675
- # distinction between:
676
- #
677
- # CFG_ENABLE_CLANG : passed --enable-clang, or host "requires" clang,
678
- # CFG_USING_CLANG : compiler (clang / gcc / $CC) looks like clang.
679
- #
680
- # This distinction is important because there are some safeguards we
681
- # would prefer to skip when merely CFG_USING_CLANG is set; but when
682
- # CFG_ENABLE_CLANG is set, that indicates that we are opting into
683
- # running such safeguards.
684
-
685
- if [ ! -z " $CC " ]
686
- then
687
- msg " skipping compiler inference steps; using provided CC=$CC "
688
- CFG_CC=" $CC "
689
-
690
- CFG_OSX_CC_VERSION=$( " $CFG_CC " --version 2>&1 | grep " clang" )
691
- if [ $? -eq 0 ]
692
- then
693
- step_msg " note, user-provided CC looks like clang; CC=$CC ."
694
- CFG_USING_CLANG=1
695
- putvar CFG_USING_CLANG
696
- fi
697
- else
698
- if [ ! -z " $CFG_ENABLE_CLANG " ]
699
- then
700
- if [ -z " $CFG_CLANG " ]
701
- then
702
- err " clang requested but not found"
703
- fi
704
- CFG_CC=" $CFG_CLANG "
705
- CFG_USING_CLANG=1
706
- putvar CFG_USING_CLANG
707
- else
708
- CFG_CC=" gcc"
709
- fi
710
- fi
711
-
712
649
if [ ! -z " $CFG_ENABLE_CLANG " ]
713
650
then
714
- if [ -z " $CC " ] || [[ $CC == * clang ] ]
651
+ if [ -z " $CFG_CLANG " ]
715
652
then
716
- CFG_CLANG_VERSION=$( $CFG_CC \
717
- --version \
718
- | grep version \
719
- | sed ' s/.*\(version .*\)/\1/; s/.*based on \(LLVM .*\))/\1/' \
720
- | cut -d ' ' -f 2)
721
-
722
- case $CFG_CLANG_VERSION in
723
- (3.0svn | 3.0 | 3.1* | 3.2* | 3.3* | 3.4* | 3.5* )
724
- step_msg " found ok version of CLANG: $CFG_CLANG_VERSION "
725
- if [ -z " $CC " ]
726
- then
727
- CFG_CC=" clang"
728
- fi
729
- ;;
730
- (* )
731
- err " bad CLANG version: $CFG_CLANG_VERSION , need >=3.0svn"
732
- ;;
733
- esac
734
- else
735
- msg " skipping CFG_ENABLE_CLANG version check; provided CC=$CC "
653
+ err " clang requested but not found"
736
654
fi
655
+ CFG_CLANG_VERSION=$( " $CFG_CLANG " \
656
+ --version \
657
+ | grep version \
658
+ | sed ' s/.*\(version .*\)/\1/; s/.*based on \(LLVM .*\))/\1/' \
659
+ | cut -d ' ' -f 2)
660
+
661
+ case $CFG_CLANG_VERSION in
662
+ (3.0svn | 3.0 | 3.1* | 3.2* | 3.3* | 3.4* | 3.5* )
663
+ step_msg " found ok version of CLANG: $CFG_CLANG_VERSION "
664
+ CFG_C_COMPILER=" clang"
665
+ ;;
666
+ (* )
667
+ err " bad CLANG version: $CFG_CLANG_VERSION , need >=3.0svn"
668
+ ;;
669
+ esac
670
+ else
671
+ CFG_C_COMPILER=" gcc"
737
672
fi
738
673
739
674
if [ ! -z " $CFG_ENABLE_CCACHE " ]
740
675
then
741
- if [ -z " $CC " ]
676
+ if [ -z " $CFG_CCACHE " ]
742
677
then
743
- if [ -z " $CFG_CCACHE " ]
744
- then
745
- err " ccache requested but not found"
746
- fi
747
-
748
- CFG_CC=" ccache $CFG_CC "
678
+ err " ccache requested but not found"
749
679
fi
750
- fi
751
680
752
- if [ -z " $CC " -a -z " $CFG_ENABLE_CLANG " -a -z " $CFG_GCC " ]
753
- then
754
- err " either clang or gcc is required"
681
+ CFG_C_COMPILER=" ccache $CFG_C_COMPILER "
755
682
fi
756
683
757
- # All safeguards based on $CFG_ENABLE_CLANG should occur before this
758
- # point in the script; after this point, script logic should inspect
759
- # $CFG_USING_CLANG rather than $CFG_ENABLE_CLANG.
760
-
761
- # Set CFG_{CC,CXX,CPP,CFLAGS,CXXFLAGS}
762
- envopt CC
763
- envopt CXX
764
- envopt CPP
765
- envopt CFLAGS
766
- envopt CXXFLAGS
767
-
768
684
# a little post-processing of various config values
769
685
CFG_PREFIX=${CFG_PREFIX%/ }
770
686
CFG_MANDIR=${CFG_MANDIR%/ }
826
742
esac
827
743
done
828
744
745
+ if [ -z " $CFG_ENABLE_CLANG " -a -z " $CFG_GCC " ]
746
+ then
747
+ err " either clang or gcc is required"
748
+ fi
749
+
829
750
if [ ! -z " $CFG_PERF " ]
830
751
then
831
752
HAVE_PERF_LOGFD=` $CFG_PERF stat --log-fd 2>&1 | grep ' unknown option' `
1040
961
;;
1041
962
esac
1042
963
1043
- case " $CFG_CC " in
964
+ case " $CFG_C_COMPILER " in
1044
965
(" ccache clang" )
1045
966
LLVM_CXX_32=" ccache clang++ -m32 -Qunused-arguments"
1046
967
LLVM_CC_32=" ccache clang -m32 -Qunused-arguments"
1070
991
1071
992
LLVM_CXX_64=" g++"
1072
993
LLVM_CC_64=" gcc"
1073
- ;;
1074
-
1075
- (* )
1076
- msg " inferring LLVM_CXX/CC from CXX/CC = $CXX /$CC "
1077
- LLVM_CXX_32=" $CXX -m32"
1078
- LLVM_CC_32=" $CC -m32"
1079
-
1080
- LLVM_CXX_64=" $CXX "
1081
- LLVM_CC_64=" $CC "
1082
- ;;
1083
994
esac
1084
995
1085
996
LLVM_CFLAGS_32=" -m32"
@@ -1162,6 +1073,7 @@ putvar CFG_PREFIX
1162
1073
putvar CFG_BUILD
1163
1074
putvar CFG_HOST
1164
1075
putvar CFG_TARGET
1076
+ putvar CFG_C_COMPILER
1165
1077
putvar CFG_LIBDIR
1166
1078
putvar CFG_LIBDIR_RELATIVE
1167
1079
putvar CFG_DISABLE_MANAGE_SUBMODULES
@@ -1172,7 +1084,7 @@ putvar CFG_DISABLE_INJECT_STD_VERSION
1172
1084
1173
1085
# Avoid spurious warnings from clang by feeding it original source on
1174
1086
# ccache-miss rather than preprocessed input.
1175
- if [ ! -z " $CFG_ENABLE_CCACHE " ] && [ ! -z " $CFG_USING_CLANG " ]
1087
+ if [ ! -z " $CFG_ENABLE_CCACHE " ] && [ ! -z " $CFG_ENABLE_CLANG " ]
1176
1088
then
1177
1089
CFG_CCACHE_CPP2=1
1178
1090
putvar CFG_CCACHE_CPP2
0 commit comments