|
1 | 1 | # |
2 | | -# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. |
| 2 | +# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | # |
5 | 5 | # This code is free software; you can redistribute it and/or modify it |
@@ -40,7 +40,7 @@ VALID_TOOLCHAINS_all="gcc clang xlc microsoft" |
40 | 40 | # These toolchains are valid on different platforms |
41 | 41 | VALID_TOOLCHAINS_linux="gcc clang" |
42 | 42 | VALID_TOOLCHAINS_macosx="clang" |
43 | | -VALID_TOOLCHAINS_aix="xlc" |
| 43 | +VALID_TOOLCHAINS_aix="xlc clang" |
44 | 44 | VALID_TOOLCHAINS_windows="microsoft" |
45 | 45 |
|
46 | 46 | # Toolchain descriptions |
@@ -234,6 +234,25 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE], |
234 | 234 | # First toolchain type in the list is the default |
235 | 235 | DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *} |
236 | 236 |
|
| 237 | + # On AIX the default toolchain depends on the installed (found) compiler |
| 238 | + # xlclang++ -> xlc toolchain |
| 239 | + # ibm-clang++_r -> clang toolchain |
| 240 | + # The compiler is searched on the PATH and TOOLCHAIN_PATH |
| 241 | + # xlclang++ has precedence over ibm-clang++_r if both are installed |
| 242 | + if test "x$OPENJDK_TARGET_OS" = xaix; then |
| 243 | + DEFAULT_TOOLCHAIN="clang" |
| 244 | + if test "x$TOOLCHAIN_PATH" != x; then |
| 245 | + if test -e ${TOOLCHAIN_PATH}/xlclang++; then |
| 246 | + DEFAULT_TOOLCHAIN="xlc" |
| 247 | + fi |
| 248 | + else |
| 249 | + UTIL_LOOKUP_PROGS(XLCLANG_TEST_PATH, xlclang++) |
| 250 | + if test "x$XLCLANG_TEST_PATH" != x; then |
| 251 | + DEFAULT_TOOLCHAIN="xlc" |
| 252 | + fi |
| 253 | + fi |
| 254 | + fi |
| 255 | +
|
237 | 256 | if test "x$with_toolchain_type" = xlist; then |
238 | 257 | # List all toolchains |
239 | 258 | AC_MSG_NOTICE([The following toolchains are valid on this platform:]) |
@@ -263,22 +282,40 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE], |
263 | 282 | if test "x$TOOLCHAIN_PATH" != x; then |
264 | 283 | XLC_TEST_PATH=${TOOLCHAIN_PATH}/ |
265 | 284 | fi |
266 | | -
|
267 | | - XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1` |
268 | | - $ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null |
269 | | - if test $? -eq 0; then |
270 | | - AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT]) |
| 285 | + if test "x$TOOLCHAIN_TYPE" = xclang; then |
| 286 | + TOOLCHAIN_DESCRIPTION_clang="IBM Open XL C/C++" |
| 287 | + XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}ibm-clang++_r --version 2>&1 | $HEAD -n 1` |
| 288 | + $ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM Open XL C/C++ for AIX" > /dev/null |
| 289 | + if test $? -eq 0; then |
| 290 | + AC_MSG_NOTICE([ibm-clang++_r output: $XLCLANG_VERSION_OUTPUT]) |
| 291 | + else |
| 292 | + AC_MSG_ERROR([ibm-clang++_r version output check failed, output: $XLCLANG_VERSION_OUTPUT]) |
| 293 | + fi |
271 | 294 | else |
272 | | - AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT]) |
| 295 | + XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1` |
| 296 | + $ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null |
| 297 | + if test $? -eq 0; then |
| 298 | + AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT]) |
| 299 | + else |
| 300 | + AC_MSG_ERROR([xlclang++ version output check failed, output: $XLCLANG_VERSION_OUTPUT]) |
| 301 | + fi |
273 | 302 | fi |
274 | 303 | fi |
275 | 304 |
|
276 | | - TOOLCHAIN_CC_BINARY_clang="clang" |
| 305 | + if test "x$OPENJDK_TARGET_OS" = xaix; then |
| 306 | + TOOLCHAIN_CC_BINARY_clang="ibm-clang_r" |
| 307 | + else |
| 308 | + TOOLCHAIN_CC_BINARY_clang="clang" |
| 309 | + fi |
277 | 310 | TOOLCHAIN_CC_BINARY_gcc="gcc" |
278 | 311 | TOOLCHAIN_CC_BINARY_microsoft="cl" |
279 | 312 | TOOLCHAIN_CC_BINARY_xlc="xlclang" |
280 | 313 |
|
281 | | - TOOLCHAIN_CXX_BINARY_clang="clang++" |
| 314 | + if test "x$OPENJDK_TARGET_OS" = xaix; then |
| 315 | + TOOLCHAIN_CXX_BINARY_clang="ibm-clang++_r" |
| 316 | + else |
| 317 | + TOOLCHAIN_CXX_BINARY_clang="clang++" |
| 318 | + fi |
282 | 319 | TOOLCHAIN_CXX_BINARY_gcc="g++" |
283 | 320 | TOOLCHAIN_CXX_BINARY_microsoft="cl" |
284 | 321 | TOOLCHAIN_CXX_BINARY_xlc="xlclang++" |
@@ -966,7 +1003,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS], |
966 | 1003 | # Setup hotspot lecagy names for toolchains |
967 | 1004 | HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE |
968 | 1005 | if test "x$TOOLCHAIN_TYPE" = xclang; then |
969 | | - HOTSPOT_TOOLCHAIN_TYPE=gcc |
| 1006 | + if test "x$OPENJDK_TARGET_OS" = xaix; then |
| 1007 | + HOTSPOT_TOOLCHAIN_TYPE=xlc |
| 1008 | + else |
| 1009 | + HOTSPOT_TOOLCHAIN_TYPE=gcc |
| 1010 | + fi |
970 | 1011 | elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
971 | 1012 | HOTSPOT_TOOLCHAIN_TYPE=visCPP |
972 | 1013 | fi |
|
0 commit comments