203 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
204 # silence copyright notice and other headers.
205 COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
206 fi
207 ])
208
209 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
210 [
211 ###############################################################################
212 #
213 # How to compile shared libraries.
214 #
215
216 if test "x$TOOLCHAIN_TYPE" = xgcc; then
217 PICFLAG="-fPIC"
218 C_FLAG_REORDER=''
219 CXX_FLAG_REORDER=''
220
221 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
222 # Linking is different on MacOSX
223 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
224 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
225 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
226 SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
227 SET_SHARED_LIBRARY_MAPFILE=''
228 else
229 # Default works for linux, might work on other platforms as well.
230 SHARED_LIBRARY_FLAGS='-shared'
231 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
232 SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
233 SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
234 SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
235 fi
236 elif test "x$TOOLCHAIN_TYPE" = xclang; then
237 PICFLAG=''
238 C_FLAG_REORDER=''
239 CXX_FLAG_REORDER=''
240
241 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
242 # Linking is different on MacOSX
243 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
678 # Additional macosx handling
679 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
680 # Setting these parameters makes it an error to link to macosx APIs that are
681 # newer than the given OS version and makes the linked binaries compatible
682 # even if built on a newer version of the OS.
683 # The expected format is X.Y.Z
684 MACOSX_VERSION_MIN=10.7.0
685 AC_SUBST(MACOSX_VERSION_MIN)
686
687 # The macro takes the version with no dots, ex: 1070
688 # Let the flags variables get resolved in make for easier override on make
689 # command line.
690 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
691 LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
692 fi
693
694 # Setup some hard coded includes
695 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
696 -I${JDK_TOPDIR}/src/java.base/share/native/include \
697 -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \
698 -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include"
699
700 # The shared libraries are compiled using the picflag.
701 CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
702 CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
703
704 # Executable flags
705 CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
706 CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
707
708 AC_SUBST(CFLAGS_JDKLIB)
709 AC_SUBST(CFLAGS_JDKEXE)
710 AC_SUBST(CXXFLAGS_JDKLIB)
711 AC_SUBST(CXXFLAGS_JDKEXE)
712
713 # Flags for compiling test libraries
714 CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
715 CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
716
717 # Flags for compiling test executables
718 CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|
203 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
204 # silence copyright notice and other headers.
205 COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
206 fi
207 ])
208
209 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
210 [
211 ###############################################################################
212 #
213 # How to compile shared libraries.
214 #
215
216 if test "x$TOOLCHAIN_TYPE" = xgcc; then
217 PICFLAG="-fPIC"
218 C_FLAG_REORDER=''
219 CXX_FLAG_REORDER=''
220
221 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
222 # Linking is different on MacOSX
223 if test "x$BUILD_STATIC" = xtrue; then
224 SHARED_LIBRARY_FLAGS ='-undefined dynamic_lookup'
225 else
226 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
227 fi
228 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
229 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
230 SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
231 SET_SHARED_LIBRARY_MAPFILE=''
232 else
233 # Default works for linux, might work on other platforms as well.
234 SHARED_LIBRARY_FLAGS='-shared'
235 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
236 SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
237 SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
238 SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
239 fi
240 elif test "x$TOOLCHAIN_TYPE" = xclang; then
241 PICFLAG=''
242 C_FLAG_REORDER=''
243 CXX_FLAG_REORDER=''
244
245 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
246 # Linking is different on MacOSX
247 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
682 # Additional macosx handling
683 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
684 # Setting these parameters makes it an error to link to macosx APIs that are
685 # newer than the given OS version and makes the linked binaries compatible
686 # even if built on a newer version of the OS.
687 # The expected format is X.Y.Z
688 MACOSX_VERSION_MIN=10.7.0
689 AC_SUBST(MACOSX_VERSION_MIN)
690
691 # The macro takes the version with no dots, ex: 1070
692 # Let the flags variables get resolved in make for easier override on make
693 # command line.
694 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
695 LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
696 fi
697
698 # Setup some hard coded includes
699 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
700 -I${JDK_TOPDIR}/src/java.base/share/native/include \
701 -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \
702 -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include \
703 -I${JDK_TOPDIR}/src/java.base/share/native/libjava \
704 -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava"
705
706 # The shared libraries are compiled using the picflag.
707 CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
708 CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
709
710 # Executable flags
711 CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
712 CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
713
714 AC_SUBST(CFLAGS_JDKLIB)
715 AC_SUBST(CFLAGS_JDKEXE)
716 AC_SUBST(CXXFLAGS_JDKLIB)
717 AC_SUBST(CXXFLAGS_JDKEXE)
718
719 # Flags for compiling test libraries
720 CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
721 CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
722
723 # Flags for compiling test executables
724 CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|