42 AC_MSG_ERROR([Sun Studio compiler is required. Try setting --with-tools-dir.]) |
42 AC_MSG_ERROR([Sun Studio compiler is required. Try setting --with-tools-dir.]) |
43 else |
43 else |
44 COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*@<:@ ,\t@:>@$COMPILER_NAME@<:@ ,\t@:>@\(@<:@1-9@:>@\.@<:@0-9@:>@@<:@0-9@:>@*\).*/\1/p"` |
44 COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*@<:@ ,\t@:>@$COMPILER_NAME@<:@ ,\t@:>@\(@<:@1-9@:>@\.@<:@0-9@:>@@<:@0-9@:>@*\).*/\1/p"` |
45 COMPILER_VENDOR="Sun Studio" |
45 COMPILER_VENDOR="Sun Studio" |
46 fi |
46 fi |
|
47 elif test "x$OPENJDK_TARGET_OS" = xaix; then |
|
48 COMPILER_VERSION_TEST=`$COMPILER -qversion 2>&1 | $TAIL -n 1` |
|
49 $ECHO $COMPILER_VERSION_TEST | $GREP "^Version: " > /dev/null |
|
50 if test $? -ne 0; then |
|
51 AC_MSG_ERROR([Failed to detect the compiler version of $COMPILER ....]) |
|
52 else |
|
53 COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n 's/Version: \([0-9][0-9]\.[0-9][0-9]*\).*/\1/p'` |
|
54 COMPILER_VENDOR='IBM' |
|
55 fi |
47 elif test "x$OPENJDK_TARGET_OS" = xwindows; then |
56 elif test "x$OPENJDK_TARGET_OS" = xwindows; then |
48 # First line typically looks something like: |
57 # First line typically looks something like: |
49 # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 |
58 # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 |
50 COMPILER_VERSION_TEST=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'` |
59 COMPILER_VERSION_TEST=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'` |
51 COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*Version \(@<:@1-9@:>@@<:@0-9.@:>@*\) .*/\1/p"` |
60 COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*Version \(@<:@1-9@:>@@<:@0-9.@:>@*\) .*/\1/p"` |
135 if test "x[$]$1" = x; then |
144 if test "x[$]$1" = x; then |
136 HELP_MSG_MISSING_DEPENDENCY([devkit]) |
145 HELP_MSG_MISSING_DEPENDENCY([devkit]) |
137 AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) |
146 AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) |
138 fi |
147 fi |
139 BASIC_FIXUP_EXECUTABLE($1) |
148 BASIC_FIXUP_EXECUTABLE($1) |
140 AC_MSG_CHECKING([resolved symbolic links for $1]) |
|
141 TEST_COMPILER="[$]$1" |
149 TEST_COMPILER="[$]$1" |
142 BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) |
150 # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links |
143 AC_MSG_RESULT([$TEST_COMPILER]) |
151 # to 'xlc' but it is crucial that we invoke the compiler with the right name! |
|
152 if test "x$OPENJDK_BUILD_OS" != xaix; then |
|
153 AC_MSG_CHECKING([resolved symbolic links for $1]) |
|
154 BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) |
|
155 AC_MSG_RESULT([$TEST_COMPILER]) |
|
156 fi |
144 AC_MSG_CHECKING([if $1 is disguised ccache]) |
157 AC_MSG_CHECKING([if $1 is disguised ccache]) |
145 |
158 |
146 COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` |
159 COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` |
147 if test "x$COMPILER_BASENAME" = "xccache"; then |
160 if test "x$COMPILER_BASENAME" = "xccache"; then |
148 AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) |
161 AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) |
248 COMPILER_CHECK_LIST="$CC" |
261 COMPILER_CHECK_LIST="$CC" |
249 elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
262 elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
250 COMPILER_CHECK_LIST="cl" |
263 COMPILER_CHECK_LIST="cl" |
251 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
264 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
252 COMPILER_CHECK_LIST="cc gcc" |
265 COMPILER_CHECK_LIST="cc gcc" |
|
266 elif test "x$OPENJDK_TARGET_OS" = "xaix"; then |
|
267 # Do not probe for cc on AIX. |
|
268 COMPILER_CHECK_LIST="xlc_r" |
253 else |
269 else |
254 COMPILER_CHECK_LIST="gcc cc" |
270 COMPILER_CHECK_LIST="gcc cc" |
255 fi |
271 fi |
256 |
272 |
257 TOOLCHAIN_FIND_COMPILER([CC],[C],[$COMPILER_CHECK_LIST]) |
273 TOOLCHAIN_FIND_COMPILER([CC],[C],[$COMPILER_CHECK_LIST]) |
258 # Now that we have resolved CC ourself, let autoconf have its go at it |
274 # Now that we have resolved CC ourself, let autoconf have its go at it |
259 AC_PROG_CC([$CC]) |
275 AC_PROG_CC([$CC]) |
|
276 |
|
277 # Option used to tell the compiler whether to create 32- or 64-bit executables |
|
278 # Notice that CC contains the full compiler path at this point. |
|
279 case $CC in |
|
280 *xlc_r) COMPILER_TARGET_BITS_FLAG="-q";; |
|
281 *) COMPILER_TARGET_BITS_FLAG="-m";; |
|
282 esac |
|
283 AC_SUBST(COMPILER_TARGET_BITS_FLAG) |
260 |
284 |
261 ### Locate C++ compiler (CXX) |
285 ### Locate C++ compiler (CXX) |
262 |
286 |
263 if test "x$CXX" != x; then |
287 if test "x$CXX" != x; then |
264 COMPILER_CHECK_LIST="$CXX" |
288 COMPILER_CHECK_LIST="$CXX" |
265 elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
289 elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
266 COMPILER_CHECK_LIST="cl" |
290 COMPILER_CHECK_LIST="cl" |
267 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
291 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
268 COMPILER_CHECK_LIST="CC g++" |
292 COMPILER_CHECK_LIST="CC g++" |
|
293 elif test "x$OPENJDK_TARGET_OS" = "xaix"; then |
|
294 # Do not probe for CC on AIX . |
|
295 COMPILER_CHECK_LIST="xlC_r" |
269 else |
296 else |
270 COMPILER_CHECK_LIST="g++ CC" |
297 COMPILER_CHECK_LIST="g++ CC" |
271 fi |
298 fi |
272 |
299 |
273 TOOLCHAIN_FIND_COMPILER([CXX],[C++],[$COMPILER_CHECK_LIST]) |
300 TOOLCHAIN_FIND_COMPILER([CXX],[C++],[$COMPILER_CHECK_LIST]) |
369 AS_IF([test "x$VARIANT" = xOPT], [ |
398 AS_IF([test "x$VARIANT" = xOPT], [ |
370 RC_FLAGS="$RC_FLAGS -d NDEBUG" |
399 RC_FLAGS="$RC_FLAGS -d NDEBUG" |
371 ]) |
400 ]) |
372 |
401 |
373 # The version variables used to create RC_FLAGS may be overridden |
402 # The version variables used to create RC_FLAGS may be overridden |
374 # in a custom configure script, or possibly the command line. |
403 # in a custom configure script, or possibly the command line. |
375 # Let those variables be expanded at make time in spec.gmk. |
404 # Let those variables be expanded at make time in spec.gmk. |
376 # The \$ are escaped to the shell, and the $(...) variables |
405 # The \$ are escaped to the shell, and the $(...) variables |
377 # are evaluated by make. |
406 # are evaluated by make. |
378 RC_FLAGS="$RC_FLAGS \ |
407 RC_FLAGS="$RC_FLAGS \ |
379 -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \ |
408 -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \ |
547 CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" |
576 CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" |
548 CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" |
577 CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" |
549 CFLAGS_JDKLIB_EXTRA='-xstrconst' |
578 CFLAGS_JDKLIB_EXTRA='-xstrconst' |
550 POST_STRIP_CMD="$STRIP -x" |
579 POST_STRIP_CMD="$STRIP -x" |
551 POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" |
580 POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" |
|
581 fi |
|
582 if test "x$OPENJDK_TARGET_OS" = xaix; then |
|
583 COMPILER_NAME=xlc |
|
584 PICFLAG="-qpic=large" |
|
585 LIBRARY_PREFIX=lib |
|
586 SHARED_LIBRARY='lib[$]1.so' |
|
587 STATIC_LIBRARY='lib[$]1.a' |
|
588 SHARED_LIBRARY_FLAGS="-qmkshrobj" |
|
589 SHARED_LIBRARY_SUFFIX='.so' |
|
590 STATIC_LIBRARY_SUFFIX='.a' |
|
591 OBJ_SUFFIX='.o' |
|
592 EXE_SUFFIX='' |
|
593 SET_SHARED_LIBRARY_NAME='' |
|
594 SET_SHARED_LIBRARY_MAPFILE='' |
|
595 C_FLAG_REORDER='' |
|
596 CXX_FLAG_REORDER='' |
|
597 SET_SHARED_LIBRARY_ORIGIN='' |
|
598 SET_EXECUTABLE_ORIGIN="" |
|
599 CFLAGS_JDK="" |
|
600 CXXFLAGS_JDK="" |
|
601 CFLAGS_JDKLIB_EXTRA='' |
|
602 POST_STRIP_CMD="$STRIP -X32_64" |
|
603 POST_MCS_CMD="" |
552 fi |
604 fi |
553 if test "x$OPENJDK_TARGET_OS" = xwindows; then |
605 if test "x$OPENJDK_TARGET_OS" = xwindows; then |
554 # If it is not gcc, then assume it is the MS Visual Studio compiler |
606 # If it is not gcc, then assume it is the MS Visual Studio compiler |
555 COMPILER_NAME=cl |
607 COMPILER_NAME=cl |
556 PICFLAG="" |
608 PICFLAG="" |
721 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
773 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
722 CXX_O_FLAG_NONE="" |
774 CXX_O_FLAG_NONE="" |
723 ;; |
775 ;; |
724 esac |
776 esac |
725 |
777 |
726 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
778 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
727 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
779 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
|
780 ;; |
|
781 xlc ) |
|
782 C_FLAG_DEPS="-qmakedep=gcc -MF" |
|
783 CXX_FLAG_DEPS="-qmakedep=gcc -MF" |
|
784 C_O_FLAG_HIGHEST="-O3" |
|
785 C_O_FLAG_HI="-O3 -qstrict" |
|
786 C_O_FLAG_NORM="-O2" |
|
787 C_O_FLAG_NONE="" |
|
788 CXX_O_FLAG_HIGHEST="-O3" |
|
789 CXX_O_FLAG_HI="-O3 -qstrict" |
|
790 CXX_O_FLAG_NORM="-O2" |
|
791 CXX_O_FLAG_NONE="" |
|
792 CFLAGS_DEBUG_SYMBOLS="-g" |
|
793 CXXFLAGS_DEBUG_SYMBOLS="-g" |
|
794 LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" |
|
795 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" |
|
796 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" |
|
797 ;; |
728 esac |
798 esac |
729 ;; |
799 ;; |
730 CL ) |
800 CL ) |
731 C_O_FLAG_HIGHEST="-O2" |
801 C_O_FLAG_HIGHEST="-O2" |
732 C_O_FLAG_HI="-O1" |
802 C_O_FLAG_HI="-O1" |
833 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
903 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
834 |
904 |
835 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
905 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
836 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
906 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
837 ;; |
907 ;; |
|
908 xlc ) |
|
909 CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
|
910 CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
|
911 |
|
912 LDFLAGS_JDK="$LDFLAGS_JDK" |
|
913 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" |
|
914 ;; |
838 cl ) |
915 cl ) |
839 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
916 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
840 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
917 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
841 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
918 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
842 -DWIN32 -DIAL" |
919 -DWIN32 -DIAL" |
902 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" |
979 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" |
903 fi |
980 fi |
904 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
981 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
905 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" |
982 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" |
906 fi |
983 fi |
|
984 if test "x$OPENJDK_TARGET_OS" = xaix; then |
|
985 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" |
|
986 fi |
907 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
987 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
908 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
988 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
909 # Setting these parameters makes it an error to link to macosx APIs that are |
989 # Setting these parameters makes it an error to link to macosx APIs that are |
910 # newer than the given OS version and makes the linked binaries compatible even |
990 # newer than the given OS version and makes the linked binaries compatible even |
911 # if built on a newer version of the OS. |
991 # if built on a newer version of the OS. |
1071 [ |
1151 [ |
1072 # Some Zero and Shark settings. |
1152 # Some Zero and Shark settings. |
1073 # ZERO_ARCHFLAG tells the compiler which mode to build for |
1153 # ZERO_ARCHFLAG tells the compiler which mode to build for |
1074 case "${OPENJDK_TARGET_CPU}" in |
1154 case "${OPENJDK_TARGET_CPU}" in |
1075 s390) |
1155 s390) |
1076 ZERO_ARCHFLAG="-m31" |
1156 ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" |
1077 ;; |
1157 ;; |
1078 *) |
1158 *) |
1079 ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}" |
1159 ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" |
1080 esac |
1160 esac |
1081 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) |
1161 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) |
1082 AC_SUBST(ZERO_ARCHFLAG) |
1162 AC_SUBST(ZERO_ARCHFLAG) |
1083 |
1163 |
1084 # Check that the compiler supports -mX flags |
1164 # Check that the compiler supports -mX (or -qX on AIX) flags |
1085 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does |
1165 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does |
1086 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}], |
1166 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}], |
1087 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], |
1167 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], |
1088 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) |
1168 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) |
1089 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) |
1169 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) |
1090 |
1170 |
1091 |
1171 |