< 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 >