633 fi
634
635 # setup CPU bit size
636 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
637 -D$FLAGS_CPU_LEGACY"
638
639 if test "x$FLAGS_CPU_BITS" = x64; then
640 # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
641 # unpack200.exe.
642 if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
643 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
644 fi
645 if test "x$FLAGS_OS" != xaix; then
646 # xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
647 $1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
648 fi
649 fi
650
651 # toolchain dependend, per-cpu
652 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
653 if test "x$FLAGS_CPU" = xx86_64; then
654 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
655 else
656 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
657 fi
658 fi
659
660 # CFLAGS PER CPU
661 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
662 # COMMON to gcc and clang
663 if test "x$FLAGS_CPU" = xx86; then
664 # Force compatibility with i586 on 32 bit intel platforms.
665 $1_CFLAGS_CPU="-march=i586"
666 fi
667 fi
668
669 if test "x$TOOLCHAIN_TYPE" = xgcc; then
670 if test "x$FLAGS_CPU" = xaarch64; then
671 # -Wno-psabi to get rid of annoying "note: parameter passing for argument of type '<type> changed in GCC 9.1"
672 $1_CFLAGS_CPU="-Wno-psabi"
673 elif test "x$FLAGS_CPU" = xarm; then
707 if test "x$FLAGS_CPU_ARCH" != xarm && test "x$FLAGS_CPU_ARCH" != xppc; then
708 # for all archs except arm and ppc, prevent gcc to omit frame pointer
709 $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
710 fi
711 fi
712
713 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
714 if test "x$FLAGS_CPU" = xppc64; then
715 $1_CFLAGS_CPU_JVM="-qarch=ppc64"
716 fi
717
718 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
719 if test "x$FLAGS_CPU" = xx86; then
720 $1_CFLAGS_CPU_JVM="-arch:IA32"
721 elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
722 if test "x$DEBUG_LEVEL" != xrelease; then
723 # NOTE: This is probably redundant; -homeparams is default on
724 # non-release builds.
725 $1_CFLAGS_CPU_JVM="-homeparams"
726 fi
727 fi
728 fi
729
730 if test "x$TOOLCHAIN_TYPE" = xgcc; then
731 FLAGS_SETUP_GCC6_COMPILER_FLAGS($1, $3)
732 $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
733
734 $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
735 fi
736
737 # Prevent the __FILE__ macro from generating absolute paths into the built
738 # binaries. Depending on toolchain, different mitigations are possible.
739 # * GCC and Clang of new enough versions have -fmacro-prefix-map.
740 # * For most other toolchains, supplying all source files and -I flags as
741 # relative paths fixes the issue.
742 FILE_MACRO_CFLAGS=
743 if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
744 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
745 # Check if compiler supports -fmacro-prefix-map. If so, use that to make
746 # the __FILE__ macro resolve to paths relative to the workspace root.
|
633 fi
634
635 # setup CPU bit size
636 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
637 -D$FLAGS_CPU_LEGACY"
638
639 if test "x$FLAGS_CPU_BITS" = x64; then
640 # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
641 # unpack200.exe.
642 if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
643 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
644 fi
645 if test "x$FLAGS_OS" != xaix; then
646 # xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
647 $1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
648 fi
649 fi
650
651 # toolchain dependend, per-cpu
652 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
653 if test "x$FLAGS_CPU" = xaarch64; then
654 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_ARM64_ -Darm64"
655 elif test "x$FLAGS_CPU" = xx86_64; then
656 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
657 else
658 $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
659 fi
660 fi
661
662 # CFLAGS PER CPU
663 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
664 # COMMON to gcc and clang
665 if test "x$FLAGS_CPU" = xx86; then
666 # Force compatibility with i586 on 32 bit intel platforms.
667 $1_CFLAGS_CPU="-march=i586"
668 fi
669 fi
670
671 if test "x$TOOLCHAIN_TYPE" = xgcc; then
672 if test "x$FLAGS_CPU" = xaarch64; then
673 # -Wno-psabi to get rid of annoying "note: parameter passing for argument of type '<type> changed in GCC 9.1"
674 $1_CFLAGS_CPU="-Wno-psabi"
675 elif test "x$FLAGS_CPU" = xarm; then
709 if test "x$FLAGS_CPU_ARCH" != xarm && test "x$FLAGS_CPU_ARCH" != xppc; then
710 # for all archs except arm and ppc, prevent gcc to omit frame pointer
711 $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
712 fi
713 fi
714
715 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
716 if test "x$FLAGS_CPU" = xppc64; then
717 $1_CFLAGS_CPU_JVM="-qarch=ppc64"
718 fi
719
720 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
721 if test "x$FLAGS_CPU" = xx86; then
722 $1_CFLAGS_CPU_JVM="-arch:IA32"
723 elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
724 if test "x$DEBUG_LEVEL" != xrelease; then
725 # NOTE: This is probably redundant; -homeparams is default on
726 # non-release builds.
727 $1_CFLAGS_CPU_JVM="-homeparams"
728 fi
729 elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
730 $1_CFLAGS_CPU_JVM=""
731 fi
732 fi
733
734 if test "x$TOOLCHAIN_TYPE" = xgcc; then
735 FLAGS_SETUP_GCC6_COMPILER_FLAGS($1, $3)
736 $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
737
738 $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
739 fi
740
741 # Prevent the __FILE__ macro from generating absolute paths into the built
742 # binaries. Depending on toolchain, different mitigations are possible.
743 # * GCC and Clang of new enough versions have -fmacro-prefix-map.
744 # * For most other toolchains, supplying all source files and -I flags as
745 # relative paths fixes the issue.
746 FILE_MACRO_CFLAGS=
747 if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
748 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
749 # Check if compiler supports -fmacro-prefix-map. If so, use that to make
750 # the __FILE__ macro resolve to paths relative to the workspace root.
|