[oe] [meta-java][PATCH v2 2/3] Openjdk-8: Fix build when using -Werror and -D_FORTIFY_SOURCE

Erkka Kääriä erkka.kaaria at intel.com
Fri Apr 29 06:48:20 UTC 2016


The security flag '-D_FORTIFY_SOURCE' requires at least -O to work,
otherwise a warning is given. If CFLAGS additionally contains -Werror,
this warning turns into an error. As Openjdk build system intentionally
deoptimizes certains files due to potential bad codegen during optimization,
build will fail when both '-D_FORTIFY_SOURCE' and '-Werror' are used.
As turning the optimizations back on will likely break things, the
warning is silenced instead.

Signed-off-by: Erkka Kääriä <erkka.kaaria at intel.com>
---
 recipes-core/openjdk/openjdk-8_72b05.bb            |  1 +
 recipes-core/openjdk/openjre-8_72b05.bb            |  1 +
 ...openjdk8-silence-d_fortify_source-warning.patch | 54 ++++++++++++++++++++++
 3 files changed, 56 insertions(+)
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-silence-d_fortify_source-warning.patch

diff --git a/recipes-core/openjdk/openjdk-8_72b05.bb b/recipes-core/openjdk/openjdk-8_72b05.bb
index f378b0a..bafc6cd 100644
--- a/recipes-core/openjdk/openjdk-8_72b05.bb
+++ b/recipes-core/openjdk/openjdk-8_72b05.bb
@@ -11,6 +11,7 @@ PATCHES_URI_append = "\
     file://openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch;apply=no \
     file://openjdk8-fix-assembler-flag-handling-in-makefile.patch;apply=no \
     file://openjdk8-fix-adlc-flags.patch;apply=no \
+    file://openjdk8-silence-d_fortify_source-warning.patch;apply=no \
 "
 
 do_install() {
diff --git a/recipes-core/openjdk/openjre-8_72b05.bb b/recipes-core/openjdk/openjre-8_72b05.bb
index 6d29d12..3a34848 100644
--- a/recipes-core/openjdk/openjre-8_72b05.bb
+++ b/recipes-core/openjdk/openjre-8_72b05.bb
@@ -9,6 +9,7 @@ PATCHES_URI_append = "\
     file://openjdk8-fix-shark-build.patch;apply=no \
     file://openjdk8-fix-shark-stdc++11.patch;apply=no \
     file://openjdk8-use_builtin_frame_address_0_rather_than_returning_address_of_local_variable.patch;apply=no \
+    file://openjdk8-silence-d_fortify_source-warning.patch;apply=no \
 "
 
 do_install() {
diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-silence-d_fortify_source-warning.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-silence-d_fortify_source-warning.patch
new file mode 100644
index 0000000..da94a99
--- /dev/null
+++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-silence-d_fortify_source-warning.patch
@@ -0,0 +1,54 @@
+makefiles: Add -Wno-cpp to CFLAGS
+
+The security flag '-D_FORTIFY_SOURCE' requires at least -O to work,
+otherwise a warning is given. If CFLAGS additionally contains -Werror,
+this warning turns into an error. As Openjdk build system intentionally
+deoptimizes certains files due to potential bad codegen during optimization,
+build will fail when both '-D_FORTIFY_SOURCE' and '-Werror' are used.
+As turning the optimizations back on will likely break things, the
+warning is silenced instead.
+
+Signed-off-by: Erkka Kääriä <erkka.kaaria at intel.com>
+---
+ hotspot/make/linux/makefiles/amd64.make | 2 ++
+ hotspot/make/linux/makefiles/i486.make  | 2 ++
+ hotspot/make/linux/makefiles/zero.make  | 2 ++
+ 3 files changed, 6 insertions(+)
+
+diff --git hotspot/make/linux/makefiles/amd64.make hotspot/make/linux/makefiles/amd64.make
+index 2b77dba..db3965b 100644
+--- hotspot/make/linux/makefiles/amd64.make
++++ hotspot/make/linux/makefiles/amd64.make
+@@ -31,4 +31,6 @@ CFLAGS += -DVM_LITTLE_ENDIAN
+
+ CFLAGS += -D_LP64=1
+
++CFLAGS += -Wno-cpp
++
+ OPT_CFLAGS/compactingPermGenGen.o = -O1
+diff --git hotspot/make/linux/makefiles/i486.make hotspot/make/linux/makefiles/i486.make
+index 86e825d..6a92f09 100644
+--- hotspot/make/linux/makefiles/i486.make
++++ hotspot/make/linux/makefiles/i486.make
+@@ -31,4 +31,6 @@ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
++CFLAGS += -Wno-cpp
++
+ OPT_CFLAGS/compactingPermGenGen.o = -O1
+diff --git hotspot/make/linux/makefiles/zero.make hotspot/make/linux/makefiles/zero.make
+index 0270711..2b05f33 100644
+--- hotspot/make/linux/makefiles/zero.make
++++ hotspot/make/linux/makefiles/zero.make
+@@ -28,5 +28,7 @@
+ # Select which files to use (in top.make)
+ TYPE = ZERO
+
++CFLAGS += -Wno-cpp
++
+ # Install libjvm.so, etc in in server directory.
+ VM_SUBDIR = server
+--
+2.7.4
+
-- 
2.7.4

---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the Openembedded-devel mailing list