1096 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-format-zero-length -Wtype-limits -Wuninitialized" 1097 ] 1098 ) 1099 fi 1100 if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then 1101 # Non-zero builds have stricter warnings 1102 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wreturn-type -Wundef -Wformat=2" 1103 else 1104 if test "x$TOOLCHAIN_TYPE" = xclang; then 1105 # Some versions of llvm do not like -Wundef 1106 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-undef" 1107 fi 1108 fi 1109 elif test "x$OPENJDK_$1_OS" = xmacosx; then 1110 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-deprecated -Wpointer-arith \ 1111 -Wsign-compare -Wundef -Wunused-function -Wformat=2" 1112 fi 1113 1114 # Additional macosx handling 1115 if test "x$OPENJDK_$1_OS" = xmacosx; then 1116 # MACOSX_VERSION_MIN is the c++ and ld is -mmacosx-version-min argument. The expected 1117 # format is X.Y.Z. It's hard-coded to the minimum OSX version on which the 1118 # JDK can be built and makes the linked binaries compatible even if built on 1119 # a newer version of the OS. 1120 MACOSX_VERSION_MIN=10.7.0 1121 AC_SUBST(MACOSX_VERSION_MIN) 1122 1123 # Setting --with-macosx-version-max=<version> makes it an error to build or 1124 # link to macosx APIs that are newer than the given OS version. The expected 1125 # format for <version> is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h. 1126 AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max], 1127 [error on use of newer functionality. @<:@macosx@:>@])], 1128 [ 1129 if echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]]\.[[0-9]]\$"; then 1130 MACOSX_VERSION_MAX=$with_macosx_version_max 1131 elif echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]][[0-9]]\.[[0-9]][[0-9]]\$"; then 1132 MACOSX_VERSION_MAX=$with_macosx_version_max 1133 elif test "x$with_macosx_version_max" = "xno"; then 1134 # Use build system default 1135 MACOSX_VERSION_MAX= 1136 else 1137 AC_MSG_ERROR([osx version format must be nn.n.n or nn.nn.nn]) 1138 fi 1139 ], 1140 [MACOSX_VERSION_MAX=] 1141 ) 1142 AC_SUBST(MACOSX_VERSION_MAX) 1143 1144 # Let the flags variables get resolved in make for easier override on make 1145 # command line. AvailabilityMacros.h versions have no dots, ex: 1070. 1146 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1147 -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \ 1148 -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1149 $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1150 $2JVM_CFLAGS="[$]$2JVM_CFLAGS \ 1151 -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \ 1152 -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1153 1154 if test -n "$MACOSX_VERSION_MAX"; then 1155 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1156 -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))" 1157 $2JVM_CFLAGS="[$]$2JVM_CFLAGS \ 1158 -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))" 1159 fi 1160 fi 1161 1162 # Setup some hard coded includes 1163 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1164 -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \ 1165 -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \ 1166 -I${TOPDIR}/src/java.base/share/native/libjava \ 1167 -I${TOPDIR}/src/java.base/$OPENJDK_$1_OS_TYPE/native/libjava \ 1168 -I${TOPDIR}/src/hotspot/share/include \ 1169 -I${TOPDIR}/src/hotspot/os/${HOTSPOT_$1_OS_TYPE}/include" 1170 1171 # The shared libraries are compiled using the picflag. 1172 $2CFLAGS_JDKLIB="[$]$2COMMON_CCXXFLAGS_JDK \ | 1096 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-format-zero-length -Wtype-limits -Wuninitialized" 1097 ] 1098 ) 1099 fi 1100 if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then 1101 # Non-zero builds have stricter warnings 1102 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wreturn-type -Wundef -Wformat=2" 1103 else 1104 if test "x$TOOLCHAIN_TYPE" = xclang; then 1105 # Some versions of llvm do not like -Wundef 1106 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-undef" 1107 fi 1108 fi 1109 elif test "x$OPENJDK_$1_OS" = xmacosx; then 1110 $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-deprecated -Wpointer-arith \ 1111 -Wsign-compare -Wundef -Wunused-function -Wformat=2" 1112 fi 1113 1114 # Additional macosx handling 1115 if test "x$OPENJDK_$1_OS" = xmacosx; then 1116 # MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built 1117 # binaries should be compatible with, even if compiled on a newer version 1118 # of the OS. It currently has a hard coded value. Setting this also limits 1119 # exposure to API changes in header files. Bumping this is likely to 1120 # require code changes to build. 1121 MACOSX_VERSION_MIN=10.7.0 1122 AC_SUBST(MACOSX_VERSION_MIN) 1123 1124 # Setting --with-macosx-version-max=<version> makes it an error to build or 1125 # link to macosx APIs that are newer than the given OS version. The expected 1126 # format for <version> is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h. 1127 AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max], 1128 [error on use of newer functionality. @<:@macosx@:>@])], 1129 [ 1130 if echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]]\.[[0-9]]\$"; then 1131 MACOSX_VERSION_MAX=$with_macosx_version_max 1132 elif echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]][[0-9]]\.[[0-9]][[0-9]]\$"; then 1133 MACOSX_VERSION_MAX=$with_macosx_version_max 1134 elif test "x$with_macosx_version_max" = "xno"; then 1135 # Use build system default 1136 MACOSX_VERSION_MAX= 1137 else 1138 AC_MSG_ERROR([osx version format must be nn.n.n or nn.nn.nn]) 1139 fi 1140 ], 1141 [MACOSX_VERSION_MAX=] 1142 ) 1143 AC_SUBST(MACOSX_VERSION_MAX) 1144 1145 # Let the flags variables get resolved in make for easier override on make 1146 # command line. AvailabilityMacros.h versions have no dots, ex: 1070. 1147 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1148 -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \ 1149 -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1150 $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1151 $2JVM_CFLAGS="[$]$2JVM_CFLAGS \ 1152 -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \ 1153 -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1154 $2ARFLAGS="$2$ARFLAGS -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 1155 1156 if test -n "$MACOSX_VERSION_MAX"; then 1157 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1158 -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))" 1159 $2JVM_CFLAGS="[$]$2JVM_CFLAGS \ 1160 -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))" 1161 fi 1162 fi 1163 1164 # Setup some hard coded includes 1165 $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \ 1166 -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \ 1167 -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \ 1168 -I${TOPDIR}/src/java.base/share/native/libjava \ 1169 -I${TOPDIR}/src/java.base/$OPENJDK_$1_OS_TYPE/native/libjava \ 1170 -I${TOPDIR}/src/hotspot/share/include \ 1171 -I${TOPDIR}/src/hotspot/os/${HOTSPOT_$1_OS_TYPE}/include" 1172 1173 # The shared libraries are compiled using the picflag. 1174 $2CFLAGS_JDKLIB="[$]$2COMMON_CCXXFLAGS_JDK \ |