--- a/make/autoconf/flags-ldflags.m4 Mon Apr 13 13:55:05 2020 +++ b/make/autoconf/flags-ldflags.m4 Mon Apr 13 14:10:29 2020 @@ -47,11 +47,15 @@ # Setup basic LDFLAGS if test "x$TOOLCHAIN_TYPE" = xgcc; then # Add -z,defs, to forbid undefined symbols in object files. - # add -z,relro (mark relocations read only) for all libs - # add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only) - # add --no-as-needed to disable default --as-needed link flag on some GCC toolchains - # add --icf=all (Identical Code Folding — merges identical functions) - BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,--no-as-needed -Wl,--exclude-libs,ALL" + if test "x$OPENJDK_TARGET_OS" = xsolaris; then + BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs" + else + # add -z,relro (mark relocations read only) for all libs + # add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only) + # add --no-as-needed to disable default --as-needed link flag on some GCC toolchains + # add --icf=all (Identical Code Folding — merges identical functions) + BASIC_LDFLAGS="-Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,--no-as-needed -Wl,--exclude-libs,ALL" + fi BASIC_LDFLAGS_JVM_ONLY="" # Linux : remove unused code+data in link step @@ -62,7 +66,9 @@ BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,--gc-sections" fi - LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS" + if test "x$OPENJDK_TARGET_OS" != xsolaris; then + LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS" + fi LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r" @@ -70,7 +76,9 @@ BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ -fPIC" - LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS" + if test "x$OPENJDK_TARGET_OS" != xsolaris; then + LDFLAGS_LTO="-flto=auto -fuse-linker-plugin -fno-strict-aliasing $DEBUG_PREFIX_CFLAGS" + fi LDFLAGS_CXX_PARTIAL_LINKING="$MACHINE_FLAG -r" if test "x$OPENJDK_TARGET_OS" = xlinux; then @@ -133,10 +141,12 @@ # Setup LDFLAGS for linking executables if test "x$TOOLCHAIN_TYPE" = xgcc; then - # Enabling pie on 32 bit builds prevents the JVM from allocating a continuous - # java heap. - if test "x$OPENJDK_TARGET_CPU_BITS" != "x32"; then - EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -pie" + if test "x$OPENJDK_TARGET_OS" != xsolaris; then + # Enabling pie on 32 bit builds prevents the JVM from allocating a continuous + # java heap. + if test "x$OPENJDK_TARGET_CPU_BITS" != "x32"; then + EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -pie" + fi fi fi @@ -188,7 +198,9 @@ test "x${OPENJDK_$1_CPU}" = xmips64el; then $1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=sysv" else - $1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=gnu" + if test "x$OPENJDK_TARGET_OS" != xsolaris; then + $1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=gnu" + fi fi elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then