46
47 # Setup the build toolchain
48
49 # When building a buildjdk, it's always only the server variant
50 BUILD_JVM_VARIANT_PATH=server
51
52 FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
53
54 LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
55 LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
56 AC_SUBST(LDFLAGS_TESTLIB)
57 AC_SUBST(LDFLAGS_TESTEXE)
58 ])
59
60 ################################################################################
61
62 # CPU independent LDFLAGS setup, used for both target and build toolchain.
63 AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
64 [
65 # Setup basic LDFLAGS
66 if test "x$TOOLCHAIN_TYPE" = xgcc; then
67 # If this is a --hash-style=gnu system, use --hash-style=both, why?
68 # We have previously set HAS_GNU_HASH if this is the case
69 if test -n "$HAS_GNU_HASH"; then
70 BASIC_LDFLAGS="-Wl,--hash-style=both"
71 LIBJSIG_HASHSTYLE_LDFLAGS="-Wl,--hash-style=both"
72 fi
73
74 # Add -z defs, to forbid undefined symbols in object files.
75 BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
76
77 BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
78
79 BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
80 LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
81
82 elif test "x$TOOLCHAIN_TYPE" = xclang; then
83 BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
84 -fPIC"
85
86 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
87 BASIC_LDFLAGS="-Wl,-z,defs"
88 BASIC_LDFLAGS_ONLYCXX="-norunpath"
89 BASIC_LDFLAGS_ONLYCXX_JDK_ONLY="-xnolib"
90
91 BASIC_LDFLAGS_JDK_ONLY="-ztext"
92 BASIC_LDFLAGS_JVM_ONLY="-library=%none -mt -z noversion"
93
94 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
95 BASIC_LDFLAGS="-b64 -brtl -bnolibpath -bexpall -bernotok -btextpsize:64K \
96 -bdatapsize:64K -bstackpsize:64K"
97 # libjvm.so has gotten too large for normal TOC size; compile with qpic=large and link with bigtoc
98 BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r -bbigtoc"
99
100 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
101 BASIC_LDFLAGS="-nologo -opt:ref"
102 BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
103 BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
104 fi
|
46
47 # Setup the build toolchain
48
49 # When building a buildjdk, it's always only the server variant
50 BUILD_JVM_VARIANT_PATH=server
51
52 FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
53
54 LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
55 LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
56 AC_SUBST(LDFLAGS_TESTLIB)
57 AC_SUBST(LDFLAGS_TESTEXE)
58 ])
59
60 ################################################################################
61
62 # CPU independent LDFLAGS setup, used for both target and build toolchain.
63 AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
64 [
65 # Setup basic LDFLAGS
66 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
67 # If this is a --hash-style=gnu system, use --hash-style=both, why?
68 # We have previously set HAS_GNU_HASH if this is the case
69 if test -n "$HAS_GNU_HASH"; then
70 BASIC_LDFLAGS="-Wl,--hash-style=both"
71 LIBJSIG_HASHSTYLE_LDFLAGS="-Wl,--hash-style=both"
72 fi
73
74 # Add -z defs, to forbid undefined symbols in object files.
75 BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
76
77 BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
78
79 BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
80 LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
81
82 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
83 BASIC_LDFLAGS="-Wl,-z,defs"
84 BASIC_LDFLAGS_ONLYCXX="-norunpath"
85 BASIC_LDFLAGS_ONLYCXX_JDK_ONLY="-xnolib"
86
87 BASIC_LDFLAGS_JDK_ONLY="-ztext"
88 BASIC_LDFLAGS_JVM_ONLY="-library=%none -mt -z noversion"
89
90 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
91 BASIC_LDFLAGS="-b64 -brtl -bnolibpath -bexpall -bernotok -btextpsize:64K \
92 -bdatapsize:64K -bstackpsize:64K"
93 # libjvm.so has gotten too large for normal TOC size; compile with qpic=large and link with bigtoc
94 BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r -bbigtoc"
95
96 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
97 BASIC_LDFLAGS="-nologo -opt:ref"
98 BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
99 BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
100 fi
|