From ba899b42ce2b4b11cd45f8e7795479331d59a1be Mon Sep 17 00:00:00 2001 From: Magnus Ihse Bursie Date: Wed, 18 Jan 2023 20:09:34 +0000 Subject: [PATCH] 8300550: BASIC_JVM_LIBS is set for buildjdk even if this is incorrect Reviewed-by: erikj --- make/autoconf/libraries.m4 | 57 ++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/make/autoconf/libraries.m4 b/make/autoconf/libraries.m4 index 7a1d8d80bb2..e057626b676 100644 --- a/make/autoconf/libraries.m4 +++ b/make/autoconf/libraries.m4 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -89,6 +89,33 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES], fi ]) +################################################################################ +# Setup BASIC_JVM_LIBS that can be different depending on build/target platform +################################################################################ +AC_DEFUN([LIB_SETUP_JVM_LIBS], +[ + # Atomic library + # 32-bit platforms needs fallback library for 8-byte atomic ops on Zero + if HOTSPOT_CHECK_JVM_VARIANT(zero); then + if test "x$OPENJDK_$1_OS" = xlinux && + (test "x$OPENJDK_$1_CPU" = xarm || + test "x$OPENJDK_$1_CPU" = xm68k || + test "x$OPENJDK_$1_CPU" = xmips || + test "x$OPENJDK_$1_CPU" = xmipsel || + test "x$OPENJDK_$1_CPU" = xppc || + test "x$OPENJDK_$1_CPU" = xsh || + test "x$OPENJDK_$1_CPU" = xriscv32); then + BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic" + fi + fi + + # Because RISC-V only has word-sized atomics, it requires libatomic where + # other common architectures do not, so link libatomic by default. + if test "x$OPENJDK_$1_OS" = xlinux && test "x$OPENJDK_$1_CPU" = xriscv64; then + BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic" + fi +]) + ################################################################################ # Parse library options, and setup needed libraries ################################################################################ @@ -109,6 +136,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES], LIB_TESTS_SETUP_GTEST BASIC_JDKLIB_LIBS="" + BASIC_JDKLIB_LIBS_TARGET="" if test "x$TOOLCHAIN_TYPE" != xmicrosoft; then BASIC_JDKLIB_LIBS="-ljava -ljvm" fi @@ -135,27 +163,6 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES], BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lrt" fi - # Atomic library - # 32-bit platforms needs fallback library for 8-byte atomic ops on Zero - if HOTSPOT_CHECK_JVM_VARIANT(zero); then - if test "x$OPENJDK_TARGET_OS" = xlinux && - (test "x$OPENJDK_TARGET_CPU" = xarm || - test "x$OPENJDK_TARGET_CPU" = xm68k || - test "x$OPENJDK_TARGET_CPU" = xmips || - test "x$OPENJDK_TARGET_CPU" = xmipsel || - test "x$OPENJDK_TARGET_CPU" = xppc || - test "x$OPENJDK_TARGET_CPU" = xsh || - test "x$OPENJDK_TARGET_CPU" = xriscv32); then - BASIC_JVM_LIBS="$BASIC_JVM_LIBS -latomic" - fi - fi - - # Because RISC-V only has word-sized atomics, it requires libatomic where - # other common architectures do not. So link libatomic by default. - if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$OPENJDK_TARGET_CPU" = xriscv64; then - BASIC_JVM_LIBS="$BASIC_JVM_LIBS -latomic" - fi - # perfstat lib if test "x$OPENJDK_TARGET_OS" = xaix; then BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lperfstat" @@ -166,12 +173,14 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES], comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \ wsock32.lib winmm.lib version.lib psapi.lib" fi + LIB_SETUP_JVM_LIBS(BUILD) + LIB_SETUP_JVM_LIBS(TARGET) JDKLIB_LIBS="$BASIC_JDKLIB_LIBS" JDKEXE_LIBS="" - JVM_LIBS="$BASIC_JVM_LIBS" + JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_TARGET" OPENJDK_BUILD_JDKLIB_LIBS="$BASIC_JDKLIB_LIBS" - OPENJDK_BUILD_JVM_LIBS="$BASIC_JVM_LIBS" + OPENJDK_BUILD_JVM_LIBS="$BASIC_JVM_LIBS $BASIC_JVM_LIBS_BUILD" AC_SUBST(JDKLIB_LIBS) AC_SUBST(JDKEXE_LIBS)