From 33ddb28a6428b02ddcc82d1954ecf27cd426fbb5 Mon Sep 17 00:00:00 2001 From: Daniel McGregor Date: Wed, 22 Jun 2016 10:38:45 -0600 Subject: openjdk-8: make GCC6 happy GCC 6 sets the default C++ standard to C++14 and introduces dead store elimination by default. OpenJDK 8 is not ready for either of these changes, so set the C++ standard back to gnu++98 and disable dead store elimination. Switched to using --with-extra-cflags, cxxflags, and ldflags. The added patch fixes building when using those flags, and are needed to get CFLAGS into the JDK build in the native case. Signed-off-by: Daniel McGregor Signed-off-by: Otavio Salvador --- .../openjdk8-avoid-early-ldflags-expansion.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-avoid-early-ldflags-expansion.patch (limited to 'recipes-core/openjdk/patches-openjdk-8/openjdk8-avoid-early-ldflags-expansion.patch') diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-avoid-early-ldflags-expansion.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-avoid-early-ldflags-expansion.patch new file mode 100644 index 0000000..528560c --- /dev/null +++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-avoid-early-ldflags-expansion.patch @@ -0,0 +1,53 @@ +# HG changeset patch +# User andrew +# Date 1452261185 0 +# Fri Jan 08 13:53:05 2016 +0000 +# Node ID 92c6a16b6daccda4b7c7f9612e4057df006b9f22 +# Parent b95e325137b439b33a7bb013be21475df5da3a03 +8146566: OpenJDK build can't handle commas in LDFLAGS +Summary: Backport part of 8142907 to avoid early LDFLAGS expansion +Reviewed-by: erikj + +diff --git jdk/make/CompileDemos.gmk jdk/make/CompileDemos.gmk +--- jdk/make/CompileDemos.gmk ++++ jdk/make/CompileDemos.gmk +@@ -224,17 +224,17 @@ define SetupJVMTIDemo + $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/README.txt) \ + $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/sample.makefile.txt) + BUILD_DEMO_JVMTI_$1_EXTRA_INC := $$(addprefix -I, $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC)) + BUILD_DEMO_JVMTI_$1_LANG := C + ifneq (, $4) + BUILD_DEMO_JVMTI_$1_LANG := $4 + endif + ifeq (C++, $4) +- $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX) ++ $1_EXTRA_CXX := $$(LDFLAGS_CXX_JDK) $(LIBCXX) + endif + + $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \ + $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 \ + $(CXXFLAGS_DEBUG_SYMBOLS) + ifeq ($1-$(OPENJDK_TARGET_CPU_ARCH), waiters-sparc) + $1_FILTER := -xregs=no%appl + $1_CXXFLAGS := $$(filter-out $$($1_FILTER), $$($1_CXXFLAGS)) +@@ -246,18 +246,18 @@ define SetupJVMTIDemo + -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 + + # Remove the -incremental:no setting to get .ilk-files like in the old build. + $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \ + SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \ + LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \ + OPTIMIZATION := LOW, \ + CXXFLAGS := $$($1_CXXFLAGS), \ +- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \ +- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \ ++ LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \ ++ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \ + LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \ + LDFLAGS_SUFFIX_posix := $5, \ + LDFLAGS_SUFFIX_windows := $6, \ + LDFLAGS_SUFFIX_solaris := $7 -lc, \ + LDFLAGS_SUFFIX_linux := $8, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $$(RC_FLAGS) \ + -D "JDK_FNAME=$1.dll" \ -- cgit v1.2.3-54-g00ecf