< prev index next >

common/autoconf/generated-configure.sh

Print this page
rev 1673 : 8136556: Add the ability to perform static builds of MacOSX x64 binaries
Reviewed-by: ihse, bdelsart, gadams, lfoltan, rriggs, hseigel, twisti

*** 801,810 **** --- 801,811 ---- SHARED_LIBRARY STATIC_LIBRARY_SUFFIX SHARED_LIBRARY_SUFFIX LIBRARY_PREFIX TOOLCHAIN_TYPE + STATIC_BUILD BUILD_HOTSPOT HOTSPOT_DIST BUILD_OUTPUT OVERRIDE_SRC_ROOT ADD_SRC_ROOT
*** 1072,1081 **** --- 1073,1083 ---- with_override_jaxws with_override_hotspot with_override_nashorn with_override_jdk with_import_hotspot + enable_static_build with_toolchain_type with_extra_cflags with_extra_cxxflags with_extra_ldflags with_toolchain_version
*** 1847,1856 **** --- 1849,1859 ---- support) [enabled] --enable-hotspot-test-in-build run the Queens test after Hotspot build [disabled] --enable-unlimited-crypto Enable unlimited crypto policy [disabled] + --enable-static-build enable static library build [disabled] --disable-warnings-as-errors do not consider native warnings to be an error [enabled] --disable-debug-symbols disable generation of debug symbols [enabled] --disable-zip-debug-info
*** 3975,3984 **** --- 3978,3996 ---- # # Gcov coverage data for hotspot # + ################################################################################ + # + # Static build support. When enabled will generate static + # libraries instead of shared libraries for all JDK libs. + # + + + + # # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
*** 4585,4595 **** # definitions. It is replaced with custom functionality when building # custom sources. #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: ! DATE_WHEN_GENERATED=1444643341 ############################################################################### # # Initialization / Boot-strapping # --- 4597,4607 ---- # definitions. It is replaced with custom functionality when building # custom sources. #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: ! DATE_WHEN_GENERATED=1445274290 ############################################################################### # # Initialization / Boot-strapping #
*** 27241,27250 **** --- 27253,27296 ---- # Setup the toolchain (compilers etc), i.e. tools used to compile and process # native code. # ############################################################################### + # See if we are doing a complete static build or not + + # Check whether --enable-static-build was given. + if test "${enable_static_build+set}" = set; then : + enableval=$enable_static_build; + fi + + STATIC_BUILD=false + if test "x$enable_static_build" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if static build is enabled" >&5 + $as_echo_n "checking if static build is enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test "x$OPENJDK_TARGET_OS" != "xmacosx"; then + as_fn_error $? "--enable-static-build is only supported for macosx builds" "$LINENO" 5 + fi + STATIC_BUILD_CFLAGS="-DSTATIC_BUILD=1" + LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $STATIC_BUILD_CFLAGS" + LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $STATIC_BUILD_CFLAGS" + CFLAGS_JDKLIB_EXTRA="$CFLAGS_JDKLIB_EXTRA $STATIC_BUILD_CFLAGS" + CXXFLAGS_JDKLIB_EXTRA="$CXXFLAGS_JDKLIB_EXTRA $STATIC_BUILD_CFLAGS" + STATIC_BUILD=true + elif test "x$enable_static_build" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if static build is enabled" >&5 + $as_echo_n "checking if static build is enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + elif test "x$enable_static_build" != "x"; then + as_fn_error $? "--enable-static-build can only be assigned \"yes\" or \"no\"" "$LINENO" 5 + fi + + + + # First determine the toolchain type (compiler family) # Check whether --with-toolchain-type was given. if test "${with_toolchain_type+set}" = set; then :
*** 27349,27362 **** --- 27395,27419 ---- SHARED_LIBRARY='lib$1.so' STATIC_LIBRARY='lib$1.a' OBJ_SUFFIX='.o' EXE_SUFFIX='' if test "x$OPENJDK_TARGET_OS" = xmacosx; then + # For full static builds, we're overloading the SHARED_LIBRARY + # variables in order to limit the amount of changes required. + # It would be better to remove SHARED and just use LIBRARY and + # LIBRARY_SUFFIX for libraries that can be built either + # shared or static and use STATIC_* for libraries that are + # always built statically. + if test "x$STATIC_BUILD" = xtrue; then + SHARED_LIBRARY='lib$1.a' + SHARED_LIBRARY_SUFFIX='.a' + else SHARED_LIBRARY='lib$1.dylib' SHARED_LIBRARY_SUFFIX='.dylib' fi fi + fi
*** 42749,42759 **** --- 42806,42820 ---- C_FLAG_REORDER='' CXX_FLAG_REORDER='' if test "x$OPENJDK_TARGET_OS" = xmacosx; then # Linking is different on MacOSX + if test "x$STATIC_BUILD" = xtrue; then + SHARED_LIBRARY_FLAGS ='-undefined dynamic_lookup' + else SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG" + fi SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1' SET_SHARED_LIBRARY_MAPFILE='' else
*** 43253,43263 **** # Setup some hard coded includes COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ -I${JDK_TOPDIR}/src/java.base/share/native/include \ -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \ ! -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include" # The shared libraries are compiled using the picflag. CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA" --- 43314,43326 ---- # Setup some hard coded includes COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ -I${JDK_TOPDIR}/src/java.base/share/native/include \ -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \ ! -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include \ ! -I${JDK_TOPDIR}/src/java.base/share/native/libjava \ ! -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava" # The shared libraries are compiled using the picflag. CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
< prev index next >