mirror of
https://github.com/AngelAuraMC/angelauramc-openjdk-build.git
synced 2025-09-12 13:45:30 -04:00
362 lines
14 KiB
Diff
362 lines
14 KiB
Diff
// This patch does a few things:
|
|
// - allow clang as an accepted compiler
|
|
// - allow android as an accepted target
|
|
// - forces the use of the PIC flag
|
|
// - Surely other things
|
|
diff --git a/make/autoconf/build-aux/config.sub b/make/autoconf/build-aux/config.sub
|
|
index 8f5a5cf52..34943b6ed 100644
|
|
--- a/make/autoconf/build-aux/config.sub
|
|
+++ b/make/autoconf/build-aux/config.sub
|
|
@@ -47,7 +47,8 @@ if echo $* | grep pc-msys >/dev/null ; then
|
|
fi
|
|
|
|
# Filter out everything that doesn't begin with "aarch64-"
|
|
-if ! echo $* | grep '^aarch64-' >/dev/null ; then
|
|
+# or that ends with "-android"
|
|
+if ! echo $* | egrep "^aarch64-|-android" >/dev/null ; then
|
|
. $DIR/autoconf-config.sub "$@"
|
|
# autoconf-config.sub exits, so we never reach here, but just in
|
|
# case we do:
|
|
@@ -58,6 +59,10 @@ while test $# -gt 0 ; do
|
|
case $1 in
|
|
-- ) # Stop option processing
|
|
shift; break ;;
|
|
+ *-android* )
|
|
+ echo $1
|
|
+ exit
|
|
+ ;;
|
|
aarch64-* )
|
|
config=`echo $1 | sed 's/^aarch64-/arm-/'`
|
|
sub_args="$sub_args $config"
|
|
diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4
|
|
index 5eed1138f..b4319de67 100644
|
|
--- a/make/autoconf/flags-cflags.m4
|
|
+++ b/make/autoconf/flags-cflags.m4
|
|
@@ -374,7 +374,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|
#### OS DEFINES, these should be independent on toolchain
|
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64"
|
|
- CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
|
+ # CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
|
+ CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -D__USE_BSD"
|
|
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
|
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
|
|
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
|
diff --git a/make/autoconf/flags-ldflags.m4 b/make/autoconf/flags-ldflags.m4
|
|
index 23bb33e87..ad0ab88d0 100644
|
|
--- a/make/autoconf/flags-ldflags.m4
|
|
+++ b/make/autoconf/flags-ldflags.m4
|
|
@@ -179,7 +179,9 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
|
|
test "x${OPENJDK_$1_CPU}" = xmips64el; then
|
|
$1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=sysv"
|
|
else
|
|
- $1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=gnu"
|
|
+ # Android 5.x does not support GNU hash style
|
|
+ # gnu
|
|
+ $1_CPU_LDFLAGS="${$1_CPU_LDFLAGS} -Wl,--hash-style=sysv"
|
|
fi
|
|
|
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
|
diff --git a/make/autoconf/lib-freetype.m4 b/make/autoconf/lib-freetype.m4
|
|
index 6a7109342..2d74ffc5b 100644
|
|
--- a/make/autoconf/lib-freetype.m4
|
|
+++ b/make/autoconf/lib-freetype.m4
|
|
@@ -103,7 +103,8 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
|
|
FREETYPE_TO_USE=bundled
|
|
if test "x$OPENJDK_TARGET_OS" != "xwindows" && \
|
|
test "x$OPENJDK_TARGET_OS" != "xmacosx" && \
|
|
- test "x$OPENJDK_TARGET_OS" != "xaix"; then
|
|
+ test "x$OPENJDK_TARGET_OS" != "xaix" && \
|
|
+ test "x$OPENJDK_TARGET_OS" != "xandroid"; then
|
|
FREETYPE_TO_USE=system
|
|
fi
|
|
if test "x$with_freetype" != "x" ; then
|
|
diff --git a/make/autoconf/libraries.m4 b/make/autoconf/libraries.m4
|
|
index a65d91ee9..961f57db9 100644
|
|
--- a/make/autoconf/libraries.m4
|
|
+++ b/make/autoconf/libraries.m4
|
|
@@ -40,8 +40,8 @@ m4_include([lib-tests.m4])
|
|
AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
|
[
|
|
# Check if X11 is needed
|
|
- if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
|
- # No X11 support on windows or macosx
|
|
+ if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xandroid; then
|
|
+ # No X11 support on windows, macosx or android
|
|
NEEDS_LIB_X11=false
|
|
elif test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
|
|
# No X11 support needed when building headless only
|
|
@@ -52,8 +52,8 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
|
fi
|
|
|
|
# Check if fontconfig is needed
|
|
- if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
|
- # No fontconfig support on windows or macosx
|
|
+ if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xandroid; then
|
|
+ # No fontconfig support on windows, macosx or android
|
|
NEEDS_LIB_FONTCONFIG=false
|
|
else
|
|
# All other instances need fontconfig, even if building headless only,
|
|
diff --git a/make/autoconf/platform.m4 b/make/autoconf/platform.m4
|
|
index 2dd13d0d5..ea06c46a7 100644
|
|
--- a/make/autoconf/platform.m4
|
|
+++ b/make/autoconf/platform.m4
|
|
@@ -190,6 +190,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
|
|
VAR_OS=linux
|
|
VAR_OS_TYPE=unix
|
|
;;
|
|
+ *android*)
|
|
+ VAR_OS=linux
|
|
+ VAR_OS_TYPE=unix
|
|
+ ;;
|
|
*darwin*)
|
|
VAR_OS=macosx
|
|
VAR_OS_TYPE=unix
|
|
diff --git a/make/autoconf/toolchain.m4 b/make/autoconf/toolchain.m4
|
|
index 788958880..5dc9ade78 100644
|
|
--- a/make/autoconf/toolchain.m4
|
|
+++ b/make/autoconf/toolchain.m4
|
|
@@ -35,10 +35,10 @@
|
|
m4_include([toolchain_microsoft.m4])
|
|
|
|
# All valid toolchains, regardless of platform (used by help.m4)
|
|
-VALID_TOOLCHAINS_all="gcc clang xlc microsoft"
|
|
+VALID_TOOLCHAINS_all="clang gcc xlc microsoft"
|
|
|
|
# These toolchains are valid on different platforms
|
|
-VALID_TOOLCHAINS_linux="gcc clang"
|
|
+VALID_TOOLCHAINS_linux="clang gcc"
|
|
VALID_TOOLCHAINS_macosx="gcc clang"
|
|
VALID_TOOLCHAINS_aix="xlc"
|
|
VALID_TOOLCHAINS_windows="microsoft"
|
|
@@ -899,8 +899,8 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|
UTIL_REQUIRE_PROGS(BUILD_CC, clang cc gcc)
|
|
UTIL_REQUIRE_PROGS(BUILD_CXX, clang++ CC g++)
|
|
else
|
|
- UTIL_REQUIRE_PROGS(BUILD_CC, cc gcc)
|
|
- UTIL_REQUIRE_PROGS(BUILD_CXX, CC g++)
|
|
+ UTIL_REQUIRE_PROGS(BUILD_CC, clang cc gcc)
|
|
+ UTIL_REQUIRE_PROGS(BUILD_CXX, clang++ CC g++)
|
|
fi
|
|
UTIL_LOOKUP_PROGS(BUILD_NM, nm gcc-nm)
|
|
UTIL_LOOKUP_PROGS(BUILD_AR, ar gcc-ar lib)
|
|
@@ -915,11 +915,14 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|
|
|
PATH="$OLDPATH"
|
|
|
|
- TOOLCHAIN_EXTRACT_COMPILER_VERSION(BUILD_CC, [BuildC])
|
|
- TOOLCHAIN_EXTRACT_COMPILER_VERSION(BUILD_CXX, [BuildC++])
|
|
- TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([BUILD_], [OPENJDK_BUILD_], [build ])
|
|
- TOOLCHAIN_EXTRACT_LD_VERSION(BUILD_LD, [build linker])
|
|
- TOOLCHAIN_PREPARE_FOR_LD_VERSION_COMPARISONS([BUILD_], [OPENJDK_BUILD_])
|
|
+ # xandroid
|
|
+ if test "x$OPENJDK_BUILD_OS" != "xlinux"; then
|
|
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION(BUILD_CC, [BuildC])
|
|
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION(BUILD_CXX, [BuildC++])
|
|
+ TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([BUILD_], [OPENJDK_BUILD_], [build ])
|
|
+ TOOLCHAIN_EXTRACT_LD_VERSION(BUILD_LD, [build linker])
|
|
+ TOOLCHAIN_PREPARE_FOR_LD_VERSION_COMPARISONS([BUILD_], [OPENJDK_BUILD_])
|
|
+ fi
|
|
else
|
|
# If we are not cross compiling, use the normal target compilers for
|
|
# building the build platform executables.
|
|
diff --git a/make/common/JdkNativeCompilation.gmk b/make/common/JdkNativeCompilation.gmk
|
|
index 6a963ac2c..349ff126b 100644
|
|
--- a/make/common/JdkNativeCompilation.gmk
|
|
+++ b/make/common/JdkNativeCompilation.gmk
|
|
@@ -41,6 +41,12 @@ FindSrcDirsForLib += \
|
|
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/lib$(strip $2) \
|
|
$(TOPDIR)/src/$(strip $1)/share/native/lib$(strip $2)))
|
|
|
|
+ifeq ($(OPENJDK_TARGET_OS), android)
|
|
+ FindSrcDirsForLib += \
|
|
+ $(call uniq, $(wildcard \
|
|
+ $(TOPDIR)/src/$(strip $1)/linux/native/lib$(strip $2)))
|
|
+endif
|
|
+
|
|
FindSrcDirsForComponent += \
|
|
$(call uniq, $(wildcard \
|
|
$(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native/$(strip $2) \
|
|
diff --git a/make/common/Modules.gmk b/make/common/Modules.gmk
|
|
index 0eb0fb2dd..e0431de0b 100644
|
|
--- a/make/common/Modules.gmk
|
|
+++ b/make/common/Modules.gmk
|
|
@@ -83,6 +83,10 @@ GENERATED_SRC_DIRS += \
|
|
TOP_SRC_DIRS += \
|
|
$(TOPDIR)/src \
|
|
#
|
|
+ifeq ($(OPENJDK_TARGET_OS), android)
|
|
+ SRC_SUBDIRS += linux/classes
|
|
+endif
|
|
+
|
|
|
|
SRC_SUBDIRS += $(OPENJDK_TARGET_OS)/classes
|
|
ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE))
|
|
diff --git a/make/common/Utils.gmk b/make/common/Utils.gmk
|
|
index a7df32065..0eaa1ec40 100644
|
|
--- a/make/common/Utils.gmk
|
|
+++ b/make/common/Utils.gmk
|
|
@@ -307,6 +307,12 @@ check-jvm-variant = \
|
|
isTargetOs = \
|
|
$(strip $(if $(filter $(OPENJDK_TARGET_OS), $1), true, false))
|
|
|
|
+ifeq ($(call isTargetOs, android), true)
|
|
+ # PATCH: Since Android is Linux, so Linux specific things are also built for Android.
|
|
+ isTargetOs = \
|
|
+ $(strip $(if $(filter $(OPENJDK_TARGET_OS), $1), true, $(if $(filter linux, $1), true, false)))
|
|
+endif
|
|
+
|
|
isTargetOsType = \
|
|
$(strip $(if $(filter $(OPENJDK_TARGET_OS_TYPE), $1), true, false))
|
|
|
|
diff --git a/make/hotspot/lib/JvmMapfile.gmk b/make/hotspot/lib/JvmMapfile.gmk
|
|
index 5cba93178..181e0db5c 100644
|
|
--- a/make/hotspot/lib/JvmMapfile.gmk
|
|
+++ b/make/hotspot/lib/JvmMapfile.gmk
|
|
@@ -52,7 +52,7 @@ endif
|
|
# Create a dynamic list of symbols from the built object files. This is highly
|
|
# platform dependent.
|
|
|
|
-ifeq ($(call isTargetOs, linux), true)
|
|
+ifeq ($(call isTargetOs, android linux), true)
|
|
DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
|
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
|
diff --git a/make/hotspot/lib/JvmOverrideFiles.gmk b/make/hotspot/lib/JvmOverrideFiles.gmk
|
|
index a9f8a0e54..c2fd95850 100644
|
|
--- a/make/hotspot/lib/JvmOverrideFiles.gmk
|
|
+++ b/make/hotspot/lib/JvmOverrideFiles.gmk
|
|
@@ -65,7 +65,8 @@ ifeq ($(call isTargetOs, linux), true)
|
|
#
|
|
endif
|
|
|
|
- ifeq ($(call isTargetCpu, x86), true)
|
|
+ #ifeq ($(call isTargetCpu, x86), true)
|
|
+ ifeq (false, true)
|
|
# Performance measurements show that by compiling GC related code, we could
|
|
# significantly reduce the GC pause time on 32 bit Linux/Unix platforms by
|
|
# compiling without the PIC flag (-fPIC on linux).
|
|
diff --git a/make/modules/java.base/lib/CoreLibraries.gmk b/make/modules/java.base/lib/CoreLibraries.gmk
|
|
index 1d5fede2a..37624ce84 100644
|
|
--- a/make/modules/java.base/lib/CoreLibraries.gmk
|
|
+++ b/make/modules/java.base/lib/CoreLibraries.gmk
|
|
@@ -112,6 +112,10 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJAVA, \
|
|
|
|
TARGETS += $(BUILD_LIBJAVA)
|
|
|
|
+ifeq ($(OPENJDK_TARGET_OS), linux)
|
|
+ $(BUILD_LIBJAVA): $(BUILD_LIBTINYICONV)
|
|
+endif
|
|
+
|
|
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
|
|
|
$(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM)
|
|
diff --git a/make/modules/java.desktop/Lib.gmk b/make/modules/java.desktop/Lib.gmk
|
|
index 22b07289a..7281c96b9 100644
|
|
--- a/make/modules/java.desktop/Lib.gmk
|
|
+++ b/make/modules/java.desktop/Lib.gmk
|
|
@@ -76,7 +76,7 @@ ifeq ($(call isTargetOs, aix), false)
|
|
|
|
$(BUILD_LIBJSOUND): $(call FindLib, java.base, java)
|
|
|
|
- TARGETS += $(BUILD_LIBJSOUND)
|
|
+ # TARGETS += $(BUILD_LIBJSOUND)
|
|
|
|
endif
|
|
|
|
diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk
|
|
index 4d0c0c00d..0bd1b5063 100644
|
|
--- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk
|
|
+++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk
|
|
@@ -527,7 +527,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
|
|
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
|
|
LDFLAGS_aix := -Wl$(COMMA)-berok, \
|
|
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
|
|
- LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
|
|
+ LIBS_unix := -lawt -lawt_headless -ljava -ljvm $(LIBM) $(LIBCXX), \
|
|
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
|
|
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
|
|
$(WIN_AWT_LIB), \
|
|
@@ -753,7 +753,7 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
|
|
LIBS_aix := -liconv, \
|
|
))
|
|
|
|
- TARGETS += $(BUILD_LIBSPLASHSCREEN)
|
|
+ # TARGETS += $(BUILD_LIBSPLASHSCREEN)
|
|
|
|
ifeq ($(call isTargetOs, macosx), true)
|
|
$(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)
|
|
diff --git a/make/modules/java.instrument/Lib.gmk b/make/modules/java.instrument/Lib.gmk
|
|
index 3996ad213..bba075e69 100644
|
|
--- a/make/modules/java.instrument/Lib.gmk
|
|
+++ b/make/modules/java.instrument/Lib.gmk
|
|
@@ -36,9 +36,11 @@ endif
|
|
$(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \
|
|
NAME := instrument, \
|
|
OPTIMIZATION := LOW, \
|
|
+ EXTRA_SRC := java.base:libtinyiconv, \
|
|
CFLAGS := $(CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \
|
|
CFLAGS_debug := -DJPLIS_LOGGING, \
|
|
CFLAGS_release := -DNO_JPLIS_LOGGING, \
|
|
+ CXXFLAGS := $(CXXFLAGS_JDKLIB), \
|
|
DISABLED_WARNINGS_gcc := unused-function, \
|
|
EXTRA_HEADER_DIRS := java.base:libjli, \
|
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
diff --git a/make/modules/jdk.hotspot.agent/Lib.gmk b/make/modules/jdk.hotspot.agent/Lib.gmk
|
|
index 59b24d0e4..d35dbfd17 100644
|
|
--- a/make/modules/jdk.hotspot.agent/Lib.gmk
|
|
+++ b/make/modules/jdk.hotspot.agent/Lib.gmk
|
|
@@ -74,6 +74,6 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBSA, \
|
|
LIBS_windows := dbgeng.lib $(WIN_JAVA_LIB), \
|
|
))
|
|
|
|
-TARGETS += $(BUILD_LIBSA)
|
|
+# TARGETS += $(BUILD_LIBSA)
|
|
|
|
################################################################################
|
|
diff --git a/make/modules/jdk.jdwp.agent/Lib.gmk b/make/modules/jdk.jdwp.agent/Lib.gmk
|
|
index aef358c14..7b9e5097c 100644
|
|
--- a/make/modules/jdk.jdwp.agent/Lib.gmk
|
|
+++ b/make/modules/jdk.jdwp.agent/Lib.gmk
|
|
@@ -52,12 +52,14 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJDWP, \
|
|
NAME := jdwp, \
|
|
OPTIMIZATION := LOW, \
|
|
CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING, \
|
|
+ CXXFLAGS := $(CXXFLAGS_JDKLIB), \
|
|
DISABLED_WARNINGS_gcc := unused-function, \
|
|
DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral \
|
|
self-assign, \
|
|
EXTRA_HEADER_DIRS := \
|
|
include \
|
|
libjdwp/export, \
|
|
+ EXTRA_SRC := java.base:libtinyiconv, \
|
|
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
|
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
|
LIBS := $(JDKLIB_LIBS), \
|
|
diff --git a/make/modules/jdk.net/Lib.gmk b/make/modules/jdk.net/Lib.gmk
|
|
index 3c9d1055f..e4260da69 100644
|
|
--- a/make/modules/jdk.net/Lib.gmk
|
|
+++ b/make/modules/jdk.net/Lib.gmk
|
|
@@ -27,7 +27,7 @@ include LibCommon.gmk
|
|
|
|
################################################################################
|
|
|
|
-ifeq ($(call isTargetOs, linux macosx windows), true)
|
|
+ifeq ($(call isTargetOs, linux macosx windows android), true)
|
|
|
|
$(eval $(call SetupJdkLibrary, BUILD_LIBEXTNET, \
|
|
NAME := extnet, \
|
|
diff --git a/src/hotspot/cpu/arm/icache_arm.cpp b/src/hotspot/cpu/arm/icache_arm.cpp
|
|
index 61fcb8a35..93d2ad4f4 100644
|
|
--- a/src/hotspot/cpu/arm/icache_arm.cpp
|
|
+++ b/src/hotspot/cpu/arm/icache_arm.cpp
|
|
@@ -31,7 +31,7 @@
|
|
|
|
|
|
static int icache_flush(address addr, int lines, int magic) {
|
|
- __builtin___clear_cache(addr, addr + (lines << ICache::log2_line_size));
|
|
+ __builtin___clear_cache((char*) addr, (char*) (addr + (lines << ICache::log2_line_size)));
|
|
return magic;
|
|
}
|
|
|