6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
27 # corresponding configure arguments instead
28 AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
29 [
30 if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
31 AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
32 fi
33
34 if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
35 AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
36 fi
37
38 if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
39 AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
40 fi
41
42 AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
43 [extra flags to be used when compiling jdk c-files])])
44
45 AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
289 C_FLAG_REORDER=''
290 CXX_FLAG_REORDER=''
291
292 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
293 # Linking is different on MacOSX
294 PICFLAG=''
295 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
296 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
297 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
298 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
299 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
300
301 if test "x$STATIC_BUILD" = xfalse; then
302 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
303 fi
304 else
305 # Default works for linux, might work on other platforms as well.
306 PICFLAG='-fPIC'
307 SHARED_LIBRARY_FLAGS='-shared'
308 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
309 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
310 SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
311 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
312 fi
313 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
314 if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
315 PICFLAG="-xcode=pic32"
316 else
317 PICFLAG="-KPIC"
318 fi
319 C_FLAG_REORDER='-xF'
320 CXX_FLAG_REORDER='-xF'
321 SHARED_LIBRARY_FLAGS="-G"
322 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
323 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
324 SET_SHARED_LIBRARY_NAME='-h [$]1'
325 SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
326 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
327 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
328 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
329 # will have to patch this single instruction with a call to some out-of-order code which
330 # does the load from the TOC. This is of course slow. But in that case we also would have
331 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
652 AC_SUBST(C_O_FLAG_HIGHEST_JVM)
653 AC_SUBST(C_O_FLAG_HIGHEST)
654 AC_SUBST(C_O_FLAG_HI)
655 AC_SUBST(C_O_FLAG_NORM)
656 AC_SUBST(C_O_FLAG_DEBUG)
657 AC_SUBST(C_O_FLAG_NONE)
658 AC_SUBST(C_O_FLAG_SIZE)
659 AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
660 AC_SUBST(CXX_O_FLAG_HIGHEST)
661 AC_SUBST(CXX_O_FLAG_HI)
662 AC_SUBST(CXX_O_FLAG_NORM)
663 AC_SUBST(CXX_O_FLAG_DEBUG)
664 AC_SUBST(CXX_O_FLAG_NONE)
665 AC_SUBST(CXX_O_FLAG_SIZE)
666 ])
667
668
669 AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
670 [
671
672 FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([TARGET])
673 FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([BUILD], [OPENJDK_BUILD_])
674
675 # Tests are only ever compiled for TARGET
676 # Flags for compiling test libraries
677 CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
678 CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
679
680 # Flags for compiling test executables
681 CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
682 CXXFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
683
684 AC_SUBST(CFLAGS_TESTLIB)
685 AC_SUBST(CFLAGS_TESTEXE)
686 AC_SUBST(CXXFLAGS_TESTLIB)
687 AC_SUBST(CXXFLAGS_TESTEXE)
688
689 LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
690 LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE $JAVA_BASE_LDFLAGS"
691
741
742 # Setup compiler/platform specific flags into
743 # $2CFLAGS_JDK - C Compiler flags
744 # $2CXXFLAGS_JDK - C++ Compiler flags
745 # $2COMMON_CCXXFLAGS_JDK - common to C and C++
746 if test "x$TOOLCHAIN_TYPE" = xgcc; then
747 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
748 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_REENTRANT"
749 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -fcheck-new"
750 if test "x$OPENJDK_$1_CPU" = xx86; then
751 # Force compatibility with i586 on 32 bit intel platforms.
752 $2COMMON_CCXXFLAGS="${$2COMMON_CCXXFLAGS} -march=i586"
753 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -march=i586"
754 fi
755 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
756 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
757 case $OPENJDK_$1_CPU_ARCH in
758 arm )
759 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
760 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
761 ;;
762 ppc )
763 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
764 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
765 ;;
766 s390 )
767 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
768 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
769 ;;
770 * )
771 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
772 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
773 ;;
774 esac
775 TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($2))
776 elif test "x$TOOLCHAIN_TYPE" = xclang; then
777 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
778
779 # Restrict the debug information created by Clang to avoid
780 # too big object files and speed the build up a little bit
|
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. Oracle designates this
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 ################################################################################
27 #
28 # Setup ABI profile (for arm)
29 #
30 AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
31 [
32 AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
33 [specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])])
34
35 if test "x$with_abi_profile" != x; then
36 if test "x$OPENJDK_TARGET_CPU" != xarm && \
37 test "x$OPENJDK_TARGET_CPU" != xaarch64; then
38 AC_MSG_ERROR([--with-abi-profile only available on arm/aarch64])
39 fi
40
41 OPENJDK_TARGET_ABI_PROFILE=$with_abi_profile
42 AC_MSG_CHECKING([for ABI profle])
43 AC_MSG_RESULT([$OPENJDK_TARGET_ABI_PROFILE])
44
45 if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
46 ARM_FLOAT_TYPE=vfp-sflt
47 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
48 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
49 ARM_FLOAT_TYPE=vfp-hflt
50 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
51 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
52 ARM_FLOAT_TYPE=sflt
53 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
54 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
55 ARM_FLOAT_TYPE=vfp-sflt
56 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
57 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
58 ARM_FLOAT_TYPE=vfp-hflt
59 ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
60 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
61 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
62 ARM_FLOAT_TYPE=
63 ARM_ARCH_TYPE_FLAGS=
64 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
65 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
66 ARM_FLOAT_TYPE=
67 ARM_ARCH_TYPE_FLAGS=
68 else
69 AC_MSG_ERROR([Invalid ABI profile: "$OPENJDK_TARGET_ABI_PROFILE"])
70 fi
71
72 if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
73 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
74 elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
75 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
76 elif test "x$ARM_FLOAT_TYPE" = xsflt; then
77 ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
78 fi
79 AC_MSG_CHECKING([for $ARM_FLOAT_TYPE floating point flags])
80 AC_MSG_RESULT([$ARM_FLOAT_TYPE_FLAGS])
81
82 AC_MSG_CHECKING([for arch type flags])
83 AC_MSG_RESULT([$ARM_ARCH_TYPE_FLAGS])
84
85 # Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
86 # autoconf target triplet.
87 [ JDK_ARCH_ABI_PROP_NAME=`$ECHO $OPENJDK_TARGET_AUTOCONF_NAME | $SED -e 's/.*-\([^-]*\)$/\1/'` ]
88 # Sanity check that it is a known ABI.
89 if test "x$JDK_ARCH_ABI_PROP_NAME" != xgnu && \
90 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabi && \
91 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabihf; then
92 AC_MSG_WARN([Unknown autoconf target triplet ABI: "$JDK_ARCH_ABI_PROP_NAME"])
93 fi
94 AC_MSG_CHECKING([for ABI property name])
95 AC_MSG_RESULT([$JDK_ARCH_ABI_PROP_NAME])
96 AC_SUBST(JDK_ARCH_ABI_PROP_NAME)
97
98 # Pass these on to the open part of configure as if they were set using
99 # --with-extra-c[xx]flags.
100 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
101 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
102 # Get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
103 # FIXME: This should not really be set using extra_cflags.
104 if test "x$OPENJDK_TARGET_CPU" = xarm; then
105 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-psabi"
106 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -Wno-psabi"
107 fi
108 # Also add JDK_ARCH_ABI_PROP_NAME define, but only to CFLAGS.
109 EXTRA_CFLAGS="$EXTRA_CFLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
110 # And pass the architecture flags to the linker as well
111 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
112 fi
113
114 # When building with an abi profile, the name of that profile is appended on the
115 # bundle platform, which is used in bundle names.
116 if test "x$OPENJDK_TARGET_ABI_PROFILE" != x; then
117 OPENJDK_TARGET_BUNDLE_PLATFORM="$OPENJDK_TARGET_OS_BUNDLE-$OPENJDK_TARGET_ABI_PROFILE"
118 fi
119 ])
120
121 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
122 # corresponding configure arguments instead
123 AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
124 [
125 if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
126 AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
127 fi
128
129 if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
130 AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
131 fi
132
133 if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
134 AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
135 fi
136
137 AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
138 [extra flags to be used when compiling jdk c-files])])
139
140 AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
384 C_FLAG_REORDER=''
385 CXX_FLAG_REORDER=''
386
387 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
388 # Linking is different on MacOSX
389 PICFLAG=''
390 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
391 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
392 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
393 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
394 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
395
396 if test "x$STATIC_BUILD" = xfalse; then
397 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
398 fi
399 else
400 # Default works for linux, might work on other platforms as well.
401 PICFLAG='-fPIC'
402 SHARED_LIBRARY_FLAGS='-shared'
403 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
404 SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
405 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
406
407 # arm specific settings
408 if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
409 # '-Wl,-z,origin' isn't used on arm.
410 SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
411 else
412 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
413 fi
414
415 fi
416 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
417 if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
418 PICFLAG="-xcode=pic32"
419 else
420 PICFLAG="-KPIC"
421 fi
422 C_FLAG_REORDER='-xF'
423 CXX_FLAG_REORDER='-xF'
424 SHARED_LIBRARY_FLAGS="-G"
425 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
426 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
427 SET_SHARED_LIBRARY_NAME='-h [$]1'
428 SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
429 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
430 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
431 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
432 # will have to patch this single instruction with a call to some out-of-order code which
433 # does the load from the TOC. This is of course slow. But in that case we also would have
434 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
755 AC_SUBST(C_O_FLAG_HIGHEST_JVM)
756 AC_SUBST(C_O_FLAG_HIGHEST)
757 AC_SUBST(C_O_FLAG_HI)
758 AC_SUBST(C_O_FLAG_NORM)
759 AC_SUBST(C_O_FLAG_DEBUG)
760 AC_SUBST(C_O_FLAG_NONE)
761 AC_SUBST(C_O_FLAG_SIZE)
762 AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
763 AC_SUBST(CXX_O_FLAG_HIGHEST)
764 AC_SUBST(CXX_O_FLAG_HI)
765 AC_SUBST(CXX_O_FLAG_NORM)
766 AC_SUBST(CXX_O_FLAG_DEBUG)
767 AC_SUBST(CXX_O_FLAG_NONE)
768 AC_SUBST(CXX_O_FLAG_SIZE)
769 ])
770
771
772 AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
773 [
774
775 FLAGS_SETUP_ABI_PROFILE
776 FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([TARGET])
777 FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([BUILD], [OPENJDK_BUILD_])
778
779 # Tests are only ever compiled for TARGET
780 # Flags for compiling test libraries
781 CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
782 CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
783
784 # Flags for compiling test executables
785 CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
786 CXXFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
787
788 AC_SUBST(CFLAGS_TESTLIB)
789 AC_SUBST(CFLAGS_TESTEXE)
790 AC_SUBST(CXXFLAGS_TESTLIB)
791 AC_SUBST(CXXFLAGS_TESTEXE)
792
793 LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
794 LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE $JAVA_BASE_LDFLAGS"
795
845
846 # Setup compiler/platform specific flags into
847 # $2CFLAGS_JDK - C Compiler flags
848 # $2CXXFLAGS_JDK - C++ Compiler flags
849 # $2COMMON_CCXXFLAGS_JDK - common to C and C++
850 if test "x$TOOLCHAIN_TYPE" = xgcc; then
851 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
852 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_REENTRANT"
853 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -fcheck-new"
854 if test "x$OPENJDK_$1_CPU" = xx86; then
855 # Force compatibility with i586 on 32 bit intel platforms.
856 $2COMMON_CCXXFLAGS="${$2COMMON_CCXXFLAGS} -march=i586"
857 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -march=i586"
858 fi
859 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
860 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
861 case $OPENJDK_$1_CPU_ARCH in
862 arm )
863 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
864 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
865 $2COMMON_CCXXFLAGS_JDK="${$2COMMON_CCXXFLAGS_JDK} -fsigned-char"
866 ;;
867 ppc )
868 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
869 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
870 ;;
871 s390 )
872 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
873 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
874 ;;
875 * )
876 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
877 $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
878 ;;
879 esac
880 TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($2))
881 elif test "x$TOOLCHAIN_TYPE" = xclang; then
882 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
883
884 # Restrict the debug information created by Clang to avoid
885 # too big object files and speed the build up a little bit
|