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.40219.01 for 80x86 |
58 # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.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"` |
159 fi |
168 fi |
160 fi |
169 fi |
161 |
170 |
162 # Now we have a compiler binary in $1. Make sure it's okay. |
171 # Now we have a compiler binary in $1. Make sure it's okay. |
163 BASIC_FIXUP_EXECUTABLE($1) |
172 BASIC_FIXUP_EXECUTABLE($1) |
164 AC_MSG_CHECKING([resolved symbolic links for $1]) |
|
165 TEST_COMPILER="[$]$1" |
173 TEST_COMPILER="[$]$1" |
166 BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) |
174 # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links |
167 AC_MSG_RESULT([$TEST_COMPILER]) |
175 # to 'xlc' but it is crucial that we invoke the compiler with the right name! |
|
176 if test "x$OPENJDK_BUILD_OS" != xaix; then |
|
177 AC_MSG_CHECKING([resolved symbolic links for $1]) |
|
178 BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) |
|
179 AC_MSG_RESULT([$TEST_COMPILER]) |
|
180 fi |
168 AC_MSG_CHECKING([if $1 is disguised ccache]) |
181 AC_MSG_CHECKING([if $1 is disguised ccache]) |
169 |
182 |
170 COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` |
183 COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` |
171 if test "x$COMPILER_BASENAME" = "xccache"; then |
184 if test "x$COMPILER_BASENAME" = "xccache"; then |
172 AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) |
185 AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) |
274 |
287 |
275 if test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
288 if test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
276 COMPILER_CHECK_LIST="cl" |
289 COMPILER_CHECK_LIST="cl" |
277 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
290 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
278 COMPILER_CHECK_LIST="cc gcc" |
291 COMPILER_CHECK_LIST="cc gcc" |
|
292 elif test "x$OPENJDK_TARGET_OS" = "xaix"; then |
|
293 # Do not probe for cc on AIX. |
|
294 COMPILER_CHECK_LIST="xlc_r" |
279 else |
295 else |
280 COMPILER_CHECK_LIST="gcc cc" |
296 COMPILER_CHECK_LIST="gcc cc" |
281 fi |
297 fi |
282 |
298 |
283 TOOLCHAIN_FIND_COMPILER([CC],[C],[$COMPILER_CHECK_LIST]) |
299 TOOLCHAIN_FIND_COMPILER([CC],[C],[$COMPILER_CHECK_LIST]) |
284 # Now that we have resolved CC ourself, let autoconf have its go at it |
300 # Now that we have resolved CC ourself, let autoconf have its go at it |
285 AC_PROG_CC([$CC]) |
301 AC_PROG_CC([$CC]) |
|
302 |
|
303 # Option used to tell the compiler whether to create 32- or 64-bit executables |
|
304 # Notice that CC contains the full compiler path at this point. |
|
305 case $CC in |
|
306 *xlc_r) COMPILER_TARGET_BITS_FLAG="-q";; |
|
307 *) COMPILER_TARGET_BITS_FLAG="-m";; |
|
308 esac |
|
309 AC_SUBST(COMPILER_TARGET_BITS_FLAG) |
286 |
310 |
287 ### Locate C++ compiler (CXX) |
311 ### Locate C++ compiler (CXX) |
288 |
312 |
289 if test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
313 if test "x$OPENJDK_TARGET_OS" = "xwindows"; then |
290 COMPILER_CHECK_LIST="cl" |
314 COMPILER_CHECK_LIST="cl" |
291 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
315 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then |
292 COMPILER_CHECK_LIST="CC g++" |
316 COMPILER_CHECK_LIST="CC g++" |
|
317 elif test "x$OPENJDK_TARGET_OS" = "xaix"; then |
|
318 # Do not probe for CC on AIX . |
|
319 COMPILER_CHECK_LIST="xlC_r" |
293 else |
320 else |
294 COMPILER_CHECK_LIST="g++ CC" |
321 COMPILER_CHECK_LIST="g++ CC" |
295 fi |
322 fi |
296 |
323 |
297 TOOLCHAIN_FIND_COMPILER([CXX],[C++],[$COMPILER_CHECK_LIST]) |
324 TOOLCHAIN_FIND_COMPILER([CXX],[C++],[$COMPILER_CHECK_LIST]) |
571 CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" |
600 CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" |
572 CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" |
601 CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" |
573 CFLAGS_JDKLIB_EXTRA='-xstrconst' |
602 CFLAGS_JDKLIB_EXTRA='-xstrconst' |
574 POST_STRIP_CMD="$STRIP -x" |
603 POST_STRIP_CMD="$STRIP -x" |
575 POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" |
604 POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" |
|
605 fi |
|
606 if test "x$OPENJDK_TARGET_OS" = xaix; then |
|
607 COMPILER_NAME=xlc |
|
608 PICFLAG="-qpic=large" |
|
609 LIBRARY_PREFIX=lib |
|
610 SHARED_LIBRARY='lib[$]1.so' |
|
611 STATIC_LIBRARY='lib[$]1.a' |
|
612 SHARED_LIBRARY_FLAGS="-qmkshrobj" |
|
613 SHARED_LIBRARY_SUFFIX='.so' |
|
614 STATIC_LIBRARY_SUFFIX='.a' |
|
615 OBJ_SUFFIX='.o' |
|
616 EXE_SUFFIX='' |
|
617 SET_SHARED_LIBRARY_NAME='' |
|
618 SET_SHARED_LIBRARY_MAPFILE='' |
|
619 C_FLAG_REORDER='' |
|
620 CXX_FLAG_REORDER='' |
|
621 SET_SHARED_LIBRARY_ORIGIN='' |
|
622 SET_EXECUTABLE_ORIGIN="" |
|
623 CFLAGS_JDK="" |
|
624 CXXFLAGS_JDK="" |
|
625 CFLAGS_JDKLIB_EXTRA='' |
|
626 POST_STRIP_CMD="$STRIP -X32_64" |
|
627 POST_MCS_CMD="" |
576 fi |
628 fi |
577 if test "x$OPENJDK_TARGET_OS" = xwindows; then |
629 if test "x$OPENJDK_TARGET_OS" = xwindows; then |
578 # If it is not gcc, then assume it is the MS Visual Studio compiler |
630 # If it is not gcc, then assume it is the MS Visual Studio compiler |
579 COMPILER_NAME=cl |
631 COMPILER_NAME=cl |
580 PICFLAG="" |
632 PICFLAG="" |
748 ;; |
800 ;; |
749 esac |
801 esac |
750 |
802 |
751 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
803 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
752 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
804 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
|
805 ;; |
|
806 xlc ) |
|
807 C_FLAG_DEPS="-qmakedep=gcc -MF" |
|
808 CXX_FLAG_DEPS="-qmakedep=gcc -MF" |
|
809 C_O_FLAG_HIGHEST="-O3" |
|
810 C_O_FLAG_HI="-O3 -qstrict" |
|
811 C_O_FLAG_NORM="-O2" |
|
812 C_O_FLAG_NONE="" |
|
813 CXX_O_FLAG_HIGHEST="-O3" |
|
814 CXX_O_FLAG_HI="-O3 -qstrict" |
|
815 CXX_O_FLAG_NORM="-O2" |
|
816 CXX_O_FLAG_NONE="" |
|
817 CFLAGS_DEBUG_SYMBOLS="-g" |
|
818 CXXFLAGS_DEBUG_SYMBOLS="-g" |
|
819 LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" |
|
820 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" |
|
821 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" |
|
822 ;; |
753 esac |
823 esac |
754 ;; |
824 ;; |
755 CL ) |
825 CL ) |
756 C_O_FLAG_HIGHEST="-O2" |
826 C_O_FLAG_HIGHEST="-O2" |
757 C_O_FLAG_HI="-O1" |
827 C_O_FLAG_HI="-O1" |
858 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
928 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
859 |
929 |
860 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
930 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
861 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
931 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
862 ;; |
932 ;; |
|
933 xlc ) |
|
934 CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
|
935 CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
|
936 |
|
937 LDFLAGS_JDK="$LDFLAGS_JDK" |
|
938 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" |
|
939 ;; |
863 cl ) |
940 cl ) |
864 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
941 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
865 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
942 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
866 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
943 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
867 -DWIN32 -DIAL" |
944 -DWIN32 -DIAL" |
927 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" |
1004 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" |
928 fi |
1005 fi |
929 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
1006 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
930 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" |
1007 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" |
931 fi |
1008 fi |
|
1009 if test "x$OPENJDK_TARGET_OS" = xaix; then |
|
1010 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" |
|
1011 fi |
932 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
1012 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
933 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
1013 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
934 # Setting these parameters makes it an error to link to macosx APIs that are |
1014 # Setting these parameters makes it an error to link to macosx APIs that are |
935 # newer than the given OS version and makes the linked binaries compatible even |
1015 # newer than the given OS version and makes the linked binaries compatible even |
936 # if built on a newer version of the OS. |
1016 # if built on a newer version of the OS. |
1094 [ |
1174 [ |
1095 # Some Zero and Shark settings. |
1175 # Some Zero and Shark settings. |
1096 # ZERO_ARCHFLAG tells the compiler which mode to build for |
1176 # ZERO_ARCHFLAG tells the compiler which mode to build for |
1097 case "${OPENJDK_TARGET_CPU}" in |
1177 case "${OPENJDK_TARGET_CPU}" in |
1098 s390) |
1178 s390) |
1099 ZERO_ARCHFLAG="-m31" |
1179 ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" |
1100 ;; |
1180 ;; |
1101 *) |
1181 *) |
1102 ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}" |
1182 ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" |
1103 esac |
1183 esac |
1104 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) |
1184 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) |
1105 AC_SUBST(ZERO_ARCHFLAG) |
1185 AC_SUBST(ZERO_ARCHFLAG) |
1106 |
1186 |
1107 # Check that the compiler supports -mX flags |
1187 # Check that the compiler supports -mX (or -qX on AIX) flags |
1108 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does |
1188 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does |
1109 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}], |
1189 TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}], |
1110 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], |
1190 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], |
1111 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) |
1191 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) |
1112 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) |
1192 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) |
|
1193 |
|
1194 |
|
1195 # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed in executable.' |
|
1196 USING_BROKEN_SUSE_LD=no |
|
1197 if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$GCC" = xyes; then |
|
1198 AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables]) |
|
1199 echo "SUNWprivate_1.1 { local: *; };" > version-script.map |
|
1200 echo "int main() { }" > main.c |
|
1201 if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then |
|
1202 AC_MSG_RESULT(no) |
|
1203 USING_BROKEN_SUSE_LD=no |
|
1204 else |
|
1205 AC_MSG_RESULT(yes) |
|
1206 USING_BROKEN_SUSE_LD=yes |
|
1207 fi |
|
1208 rm -rf version-script.map main.c |
|
1209 fi |
|
1210 AC_SUBST(USING_BROKEN_SUSE_LD) |
1113 ]) |
1211 ]) |
1114 |
1212 |
1115 # Setup the JTREG paths |
1213 # Setup the JTREG paths |
1116 AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], |
1214 AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], |
1117 [ |
1215 [ |