[oe] [meta-java] OpenJDK11 LTS

2020-01-31 Thread Kyle Russell
Has any work been done towards supporting OpenJDK11 with meta-java?  I've
been using openjdk-8, and would be interested in helping contribute support
for the next LTS if there's interest.  I wanted to know if anyone is
actively pursuing this first though, or if anyone has uncovered additional
dependencies that need to be sorted out first.

Kyle
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-java][PATCH] icedtea7-native: set default x11 PACKAGECONFIG from DISTRO_FEATURES

2019-11-01 Thread Kyle Russell
Hi Richard,

Can you take a look at this patch I sent back in February?  I just ran into
a similar error during do_configure while trying to build icedtea7-native
from thud on a host without xorg-x11-proto-devel installed.  I think this
change should allow the X11 headers to build and be pulled from the
appropriate -native packages during bitbake instead of requiring the host
dependency.

Thank you,

Kyle

On Mon, Feb 4, 2019 at 5:01 PM Kyle Russell  wrote:

> If x11 is specified in DISTRO_FEATURES, then make it a default
> PACKAGECONFIG option when building icedtea7-native; otherwise, the
> libx11-native dependency won't be satisfied.
>
> The recipe reads as though icedtea7-native can build completely without
> X11, but if the libx11-native headers are not installed on the host
> system, compile errors in multiple units because of a missing X11/Xlib.h.
>
> In file included from
> ../../../src/share/native/sun/awt/../java2d/pipe/Region.h:34:0,
>  from
> ../../../src/share/native/sun/awt/../java2d/loops/GraphicsPrimitiveMgr.c:31:
> ../../../src/solaris/native/sun/awt/utility/rect.h:31:22: fatal error:
> X11/Xlib.h: No such file or directory
>
> In this example, it appears that GraphicsPrimitiveMgr.c is supposed to
> be compiled even in headless mode, so the dependency still seems to be
> needed.
>
> Signed-off-by: Kyle Russell 
> ---
>  recipes-core/icedtea/icedtea7-native.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/recipes-core/icedtea/icedtea7-native.inc
> b/recipes-core/icedtea/icedtea7-native.inc
> index 69f5d25..62dea78 100644
> --- a/recipes-core/icedtea/icedtea7-native.inc
> +++ b/recipes-core/icedtea/icedtea7-native.inc
> @@ -11,7 +11,7 @@ DEPENDS = "virtual/javac-native virtual/java-native
> classpath-native \
>unzip-native make-native util-linux-native\
>"
>
> -PACKAGECONFIG ??= ""
> +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11',
> '', d)}"
>  PACKAGECONFIG[x11] = ",--disable-headful,libx11-native xorgproto-native
> libxt-native libxext-native libxrender-native"
>
>  OEMAKE_BUILD_HEADLESS_ONLY = "${@bb.utils.contains('PACKAGECONFIG',
> 'x11', '', 'BUILD_HEADLESS_ONLY=1', d)}"
> --
> 2.20.1
>
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-java][RFC][PATCH 7/7] ca-certificates-java: switch to more generic / more correct JAVA (R)DEPENDS

2019-02-06 Thread Kyle Russell
On Fri, Jul 27, 2018 at 9:29 AM André Draszik  wrote:

> From: André Draszik 
>
> This recipe here actually depends on Java7 upwards, not Java2 upwards,
> so state that dependency correctly using the newly introduced (virtual)
> RPROVIDES of the OpenJDK8/OpenJRE8 recipes.
>
> At the same time, we can remove hard-coded references to openjdk-8 and
> openjre-8, and thusly make the build more flexible.
>
> Signed-off-by: André Draszik 
> ---
>  .../ca-certificates-java_20180516.bb   | 10 ++
>  1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/recipes-core/ca-certificates-java/
> ca-certificates-java_20180516.bb b/recipes-core/ca-certificates-java/
> ca-certificates-java_20180516.bb
> index a2d7abd..2ae7352 100644
> --- a/recipes-core/ca-certificates-java/ca-certificates-java_20180516.bb
> +++ b/recipes-core/ca-certificates-java/ca-certificates-java_20180516.bb
> @@ -14,7 +14,7 @@ DEPENDS = "virtual/javac-native fastjar-native"
>

Should this DEPEND on virtual/java7-sdk-native instead?

 # We can't use virtual/javac-native, because that would create a
>  # keystore that can't be read on the target (as virtual/javac-native
>  # usually is either too old, or plain incompatible with this)
> -PACKAGE_WRITE_DEPS += "openjdk-8-native"
> +PACKAGE_WRITE_DEPS += "virtual/java7-runtime-native"
>

Would you still need the PACKAGE_WRITE_DEPS if the DEPENDS above was
changed?  I thought virtual/javac-native was "too old" because it was
reserved for the bootstrap process, so I've been considering it as a
special case.
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [PATCH 0/2] RFC: Support building Java recipes with openjdk-8-native

2019-02-06 Thread Kyle Russell
It seems like a question of how many JDK versions meta-java plans on
providing, and for how long.  To me the number of different per-version
providers feels like a maintenance point that could quickly get out of
hand.  I guess my assumption has been that all of the embedded Java code
for the distribution would compile with the same JDK (either the latest JDK
provided by meta-java, or perhaps one behind the latest version; similar to
how oe-core handles gcc upgrades, for example), and that compile would pass
in the appropriate -target or -bootclasspath parameters for the preferred
JVM.

I hope I understand what you're saying, because I'd like to work together
toward a solution.

Does your distribution require specifying different providers per runtime
version?

On Wed, Feb 6, 2019 at 8:38 AM André Draszik  wrote:

> Hi,
>
> First, I agree the current state isn't great at all.
>
> It does appear to me though that Java world seems to be a bit different, in
> that even today there are big Java projects out there that still only
> compile using Java 8, which others do compile fine using more recent
> versions.
>
> With your suggested approach it becomes impossible to properly support
> that,
> you still have to pick the lowest denominator globally.
>
> Other distributions, Debian based ones in particular are taking a different
> approach:
> Each Java compiler/runtime provides virtual properties, and recipes can
> depend on the required version easily, something like e.g.
> virtual/java8-sdk virtual/java9-sdk virtual/java10-sdk etc.
>
> I'had posted a patch series trying to mimic that before, but not really had
> time to work on that any more:
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195641.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195642.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195643.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195644.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195645.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195646.html
>
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-July/195647.html
>
> What do you think?
>
> Cheers,
> Andre'
>
> On Tue, 2019-02-05 at 10:53 -0500, Kyle Russell wrote:
> > This series spun out of a request on the mailing list last October on
> > configuring meta-java for using openjdk-8-native to compile other Java
> > recipes that might require modern API features not provided by the
> > bootstrap VM classes.
> >
> >
> http://lists.openembedded.org/pipermail/openembedded-devel/2018-October/197186.html
> > [oe] meta-java configuration
> >
> > I've been running with this series on sumo, but I wanted to send it out
> > to get other thoughts on the approach.
> >
> > It seems like there's already precedent for this format with perlnative
> > and pythonnative.  That was more or less how I expected java-native to
> > behave initially until I understood more about the bootstrap process.
> >
> > If I've missed a valid use case of java-native and this change would
> > cause breakage to someone else's layer, I'd be fine with introducing
> > javanative.bbclass as a new class that provides the same functionality
> > as the following patch to java-native.bbclass.  (Its name would be more
> > closely aligned to perlnative and pythonnative without the dash.)
> > However, it appeared that java-native was essentially unused, and I
> > thought having both a java-native and javanative class would be
> > confusing.
> >
> > Kyle Russell (2):
> >   Add support for building Java recipes using java-native
> >   ant-native: only use classpath tools if no JDK
> >
> >  README  |  7 +++
> >  classes/java-native.bbclass | 17 ++---
> >  .../ant-contrib/ant-contrib-native_1.0b3.bb |  2 +-
> >  recipes-core/ant/ant-native_1.8.1.bb|  4 ++--
> >  recipes-core/ant/files/ant  |  9 +
> >  recipes-core/openjdk/openjdk-8-native.inc   |  2 ++
> >  6 files changed, 31 insertions(+), 10 deletions(-)
> >
> > --
> > 2.20.1
> >
>
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [PATCH 2/2] ant-native: only use classpath tools if no JDK

2019-02-05 Thread Kyle Russell
If ant gets invoked with a $JAVA_HOME that points to a JDK (for example,
from an 'inherit java-native'), use the tools.jar from the JDK instead
of the classpath-initial tools.

Once a native JDK has been bootstrapped, other Java recipes should be
able to use a more featureful set of classes if needed.

Signed-off-by: Kyle Russell 
---
 recipes-core/ant/ant-native_1.8.1.bb | 2 +-
 recipes-core/ant/files/ant   | 9 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/recipes-core/ant/ant-native_1.8.1.bb 
b/recipes-core/ant/ant-native_1.8.1.bb
index 7839abd..67cb5fc 100644
--- a/recipes-core/ant/ant-native_1.8.1.bb
+++ b/recipes-core/ant/ant-native_1.8.1.bb
@@ -53,7 +53,7 @@ do_compile() {
   fastjar cf ${JARFILENAME} -C build .
 
   oe_makeclasspath cp -s ecj-bootstrap jsch bsf xalan2 xercesImpl resolver 
gnumail gnujaf bcel regexp log4j1.2 antlr oro junit jdepend commons-net 
commons-logging
-  
cp=${STAGING_DATADIR_JAVA_NATIVE}/ant.jar:${STAGING_DATADIR}/classpath/tools.zip:$cp
+  sed -i -e"s|@ANT_JAR@|${STAGING_DATADIR_JAVA_NATIVE}/ant.jar|" ${WORKDIR}/ant
   sed -i -e"s|@JAR_FILE@|$cp|" ${WORKDIR}/ant
 }
 
diff --git a/recipes-core/ant/files/ant b/recipes-core/ant/files/ant
index bb282a9..939f3ec 100755
--- a/recipes-core/ant/files/ant
+++ b/recipes-core/ant/files/ant
@@ -1,6 +1,15 @@
 #!/bin/sh
 
 export CLASSPATH
+
+CLASSPATH=$CLASSPATH:@ANT_JAR@
+
+if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
+CLASSPATH="$CLASSPATH:$JAVA_HOME/lib/tools.jar"
+else
+CLASSPATH="$CLASSPATH:${STAGING_DATADIR}/classpath/tools.zip"
+fi
+
 CLASSPATH=$CLASSPATH:@JAR_FILE@
 
 if [ ! $JAVA ];then
-- 
2.20.1

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [PATCH 1/2] Add support for building Java recipes using java-native

2019-02-05 Thread Kyle Russell
Repurpose the old java-native class to setup a native JDK for building
Java code in other layers' recipes.  This provides a modern JDK, like
openjdk-8-native, for building Java recipes where some of the bootstrap
VMs are not sufficient.

Since there don't appear to be any usages of NATIVE_INSTALL_WORKS,
java-native.bbclass appears to only provide an 'inherit native', which
would be more straightforward to declare in the individual recipes.

Analogous to pythonnative and perlnative classes provided by oe-core.

Signed-off-by: Kyle Russell 
---
 README  |  7 +++
 classes/java-native.bbclass | 17 ++---
 .../ant-contrib/ant-contrib-native_1.0b3.bb |  2 +-
 recipes-core/ant/ant-native_1.8.1.bb|  2 +-
 recipes-core/openjdk/openjdk-8-native.inc   |  2 ++
 5 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/README b/README
index 031709e..96132e8 100644
--- a/README
+++ b/README
@@ -126,3 +126,10 @@ Please note that libstdc++ static is needed on your host 
to compile icedtea7-nat
 (install libstdc++-static on a Fedora).
 
 For debian-based distributions you need the libstdc++6-$compilerversion-dev 
package.
+
+To build a native JDK for using java tools like javac to build your own 
recipes,
+define the following variable in a distro include or local.conf and inherit 
java-native
+from your recipe.
+
+# Possible provider: openjdk-8-native
+PREFERRED_PROVIDER_virtual/jdk-native = "openjdk-8-native"
diff --git a/classes/java-native.bbclass b/classes/java-native.bbclass
index cade7b1..58d7266 100644
--- a/classes/java-native.bbclass
+++ b/classes/java-native.bbclass
@@ -1,9 +1,12 @@
-# This is to be used by recipes which rely on java-library.bbclass
-# infrastructure and are a *-native recipe which needs to install
-# jar files into staging.
-# 
-# This class has nothing to do with Java's JNI.
+# Configures EXTRANATIVEPATH for recipes that need a modern,
+# native JDK to use java tools.
 
-inherit native
+inherit java
 
-NATIVE_INSTALL_WORKS = "1"
+JAVA_BUILD_VERSION ?= "${PREFERRED_PROVIDER_virtual/jdk-native}"
+
+export JAVA_HOME="${STAGING_LIBDIR_JVM_NATIVE}/${JAVA_BUILD_VERSION}"
+export CLASSPATH += 
"${STAGING_LIBDIR_JVM_NATIVE}/${JAVA_BUILD_VERSION}/lib/tools.jar"
+EXTRANATIVEPATH += "../${baselib}/jvm/${JAVA_BUILD_VERSION}/bin"
+
+DEPENDS += "virtual/jdk-native"
diff --git a/recipes-core/ant-contrib/ant-contrib-native_1.0b3.bb 
b/recipes-core/ant-contrib/ant-contrib-native_1.0b3.bb
index 2a44ea2..db79626 100644
--- a/recipes-core/ant-contrib/ant-contrib-native_1.0b3.bb
+++ b/recipes-core/ant-contrib/ant-contrib-native_1.0b3.bb
@@ -12,7 +12,7 @@ DEPENDS = "ant-native commons-cli-native commons-codec-native 
\
oro-native bcel-native xerces-j-native \
   "
 
-inherit java-library java-native
+inherit java-library native
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/ant-contrib/ant-contrib-${PV}-src.zip"
 
diff --git a/recipes-core/ant/ant-native_1.8.1.bb 
b/recipes-core/ant/ant-native_1.8.1.bb
index 5a39f42..7839abd 100644
--- a/recipes-core/ant/ant-native_1.8.1.bb
+++ b/recipes-core/ant/ant-native_1.8.1.bb
@@ -11,7 +11,7 @@ SRC_URI = 
"http://archive.apache.org/dist/ant/source/apache-ant-${PV}-src.tar.gz
 
 S = "${WORKDIR}/apache-ant-${PV}"
 
-inherit java-library java-native
+inherit java-library native
 
 DEPENDS = " \
jsch-native bsf-native xalan-j-native xerces-j-native \
diff --git a/recipes-core/openjdk/openjdk-8-native.inc 
b/recipes-core/openjdk/openjdk-8-native.inc
index bae5d09..3909096 100644
--- a/recipes-core/openjdk/openjdk-8-native.inc
+++ b/recipes-core/openjdk/openjdk-8-native.inc
@@ -7,6 +7,8 @@ DEPENDS = "\
 ca-certificates-native openssl-native coreutils-native \
 "
 
+PROVIDES += "virtual/jdk-native"
+
 PACKAGECONFIG ??= "gif jpeg png zlib"
 PACKAGECONFIG[x11] = "--with-x,,libx11-native xorgproto-native libxt-native 
libxext-native libxrender-native"
 PACKAGECONFIG[cups] = "--with-cups,,cups"
-- 
2.20.1

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [PATCH 0/2] RFC: Support building Java recipes with openjdk-8-native

2019-02-05 Thread Kyle Russell
This series spun out of a request on the mailing list last October on
configuring meta-java for using openjdk-8-native to compile other Java
recipes that might require modern API features not provided by the
bootstrap VM classes.

http://lists.openembedded.org/pipermail/openembedded-devel/2018-October/197186.html
[oe] meta-java configuration

I've been running with this series on sumo, but I wanted to send it out
to get other thoughts on the approach.

It seems like there's already precedent for this format with perlnative
and pythonnative.  That was more or less how I expected java-native to
behave initially until I understood more about the bootstrap process.

If I've missed a valid use case of java-native and this change would
cause breakage to someone else's layer, I'd be fine with introducing
javanative.bbclass as a new class that provides the same functionality
as the following patch to java-native.bbclass.  (Its name would be more
closely aligned to perlnative and pythonnative without the dash.)
However, it appeared that java-native was essentially unused, and I
thought having both a java-native and javanative class would be
confusing.

Kyle Russell (2):
  Add support for building Java recipes using java-native
  ant-native: only use classpath tools if no JDK

 README  |  7 +++
 classes/java-native.bbclass | 17 ++---
 .../ant-contrib/ant-contrib-native_1.0b3.bb |  2 +-
 recipes-core/ant/ant-native_1.8.1.bb|  4 ++--
 recipes-core/ant/files/ant  |  9 +
 recipes-core/openjdk/openjdk-8-native.inc   |  2 ++
 6 files changed, 31 insertions(+), 10 deletions(-)

-- 
2.20.1

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-java][PATCH] openjdk-8: support building compact profiles

2019-02-04 Thread Kyle Russell
Signed-off-by: Kyle Russell 
---
 recipes-core/openjdk/openjdk-8-cross.inc | 3 +++
 recipes-core/openjdk/openjre-8_172b11.bb | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/recipes-core/openjdk/openjdk-8-cross.inc 
b/recipes-core/openjdk/openjdk-8-cross.inc
index d04b0d3..bc52638 100644
--- a/recipes-core/openjdk/openjdk-8-cross.inc
+++ b/recipes-core/openjdk/openjdk-8-cross.inc
@@ -1,6 +1,8 @@
 JDK_HOME = "${libdir_jvm}/openjdk-8"
 JRE_HOME = "${libdir_jvm}/openjre-8"
 
+JRE_PROFILE ?= "j2re-image"
+
 DEPENDS = "\
 openjdk-8-native zip-native ant-native libxslt \
 krb5 libffi fontconfig freetype \
@@ -105,6 +107,7 @@ EXTRA_OEMAKE_append = '\
 MAKE_VERBOSE=y VERBOSE=-s LOG_LEVEL=trace \
 QUIETLY= \
 images \
+profiles \
 '
 
 python remove_debuglink() {
diff --git a/recipes-core/openjdk/openjre-8_172b11.bb 
b/recipes-core/openjdk/openjre-8_172b11.bb
index e9b930b..3dc799c 100644
--- a/recipes-core/openjdk/openjre-8_172b11.bb
+++ b/recipes-core/openjdk/openjre-8_172b11.bb
@@ -8,7 +8,7 @@ require openjdk-8-cross.inc
 do_install() {
 rm -rf ${D}${JRE_HOME}
 mkdir -p ${D}${JRE_HOME}
-cp -rp ${B}/images/j2re-image/* ${D}${JRE_HOME}
+cp -rp ${B}/images/${JRE_PROFILE}/* ${D}${JRE_HOME}
 chown -R root:root ${D}${JRE_HOME}
 install -m644 ${WORKDIR}/jvm.cfg  ${D}${JRE_HOME}/lib/${JDK_ARCH}/
 find ${D}${JRE_HOME} -name "*.debuginfo" -print0 | xargs -0 rm
-- 
2.20.1

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-java][PATCH] icedtea7-native: set default x11 PACKAGECONFIG from DISTRO_FEATURES

2019-02-04 Thread Kyle Russell
If x11 is specified in DISTRO_FEATURES, then make it a default
PACKAGECONFIG option when building icedtea7-native; otherwise, the
libx11-native dependency won't be satisfied.

The recipe reads as though icedtea7-native can build completely without
X11, but if the libx11-native headers are not installed on the host
system, compile errors in multiple units because of a missing X11/Xlib.h.

In file included from 
../../../src/share/native/sun/awt/../java2d/pipe/Region.h:34:0,
 from 
../../../src/share/native/sun/awt/../java2d/loops/GraphicsPrimitiveMgr.c:31:
../../../src/solaris/native/sun/awt/utility/rect.h:31:22: fatal error: 
X11/Xlib.h: No such file or directory

In this example, it appears that GraphicsPrimitiveMgr.c is supposed to
be compiled even in headless mode, so the dependency still seems to be
needed.

Signed-off-by: Kyle Russell 
---
 recipes-core/icedtea/icedtea7-native.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-core/icedtea/icedtea7-native.inc 
b/recipes-core/icedtea/icedtea7-native.inc
index 69f5d25..62dea78 100644
--- a/recipes-core/icedtea/icedtea7-native.inc
+++ b/recipes-core/icedtea/icedtea7-native.inc
@@ -11,7 +11,7 @@ DEPENDS = "virtual/javac-native virtual/java-native 
classpath-native \
   unzip-native make-native util-linux-native\
   "
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', 
d)}"
 PACKAGECONFIG[x11] = ",--disable-headful,libx11-native xorgproto-native 
libxt-native libxext-native libxrender-native"
 
 OEMAKE_BUILD_HEADLESS_ONLY = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 
'BUILD_HEADLESS_ONLY=1', d)}"
-- 
2.20.1

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-java][sumo][PATCH] openjdk-8-16xbyy: port better interface invocation from aarch32

2019-02-04 Thread Kyle Russell
Fixes regression from new interface invocation implementation.  In one
crash, cache->f2_as_index() returns a Method* instead of an index into
the itable during static initialization of sun.reflect.Reflection when
attempting an invokeinterface on Map.put().

Upstream-Status: Backport
[OpenJDK: https://bugs.openjdk.java.net/browse/JDK-8194739]

Signed-off-by: Kyle Russell 
---
 .../openjdk/openjdk-8-release-16xbyy.inc  |  3 +
 ...arch32-interface-invocation-segv-fix.patch | 74 +++
 2 files changed, 77 insertions(+)
 create mode 100644 
recipes-core/openjdk/patches-openjdk-8/openjdk8-aarch32-interface-invocation-segv-fix.patch

diff --git a/recipes-core/openjdk/openjdk-8-release-16xbyy.inc 
b/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
index bd4a349..cffc7c2 100644
--- a/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
+++ b/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
@@ -17,6 +17,9 @@ PATCHES_URI = "\
 file://0009-jdk-disable-backtrace-musl-build-fix.patch \
 file://0010-build-fix-build-on-as-needed-toolchains-generic.patch \
 "
+PATCHES_URI_append_class-target_arm = "\
+
file://openjdk8-aarch32-interface-invocation-segv-fix.patch;patchdir=${S}/hotspot
 \
+"
 # some patches extracted from 
http://cr.openjdk.java.net/~rkennke/shark-build-hotspot/webrev.01/hotspot.patch
 # reported via 
http://mail.openjdk.java.net/pipermail/build-dev/2015-January/013972.html
 # by Roman Kennke (rkennke at redhat.com)
diff --git 
a/recipes-core/openjdk/patches-openjdk-8/openjdk8-aarch32-interface-invocation-segv-fix.patch
 
b/recipes-core/openjdk/patches-openjdk-8/openjdk8-aarch32-interface-invocation-segv-fix.patch
new file mode 100644
index 000..249db17
--- /dev/null
+++ 
b/recipes-core/openjdk/patches-openjdk-8/openjdk8-aarch32-interface-invocation-segv-fix.patch
@@ -0,0 +1,74 @@
+
+# HG changeset patch
+# User aph
+# Date 1516634342 0
+# Node ID 56123fdca84a3b253b8ea6f72be85bd2ebf39fd0
+# Parent  1252eaaa2c8bc3493038e87483ac08ccadbbdf51
+8194739: Zero port of 8174962: Better interface invocations
+Reviewed-by: adinn, coleenp
+
+diff -r 1252eaaa2c8b -r 56123fdca84a src/cpu/zero/vm/methodHandles_zero.cpp
+--- a/src/cpu/zero/vm/methodHandles_zero.cpp   Thu Feb 22 21:28:07 2018 -0800
 b/src/cpu/zero/vm/methodHandles_zero.cpp   Mon Jan 22 15:19:02 2018 +
+@@ -180,3 +180,9 @@
+ return NULL;
+   }
+ }
++
++#ifndef PRODUCT
++void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* 
adaptername) {
++  // This is just a stub.
++}
++#endif //PRODUCT
+diff -r 1252eaaa2c8b -r 56123fdca84a 
src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Feb 22 21:28:07 
2018 -0800
 b/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Jan 22 15:19:02 
2018 +
+@@ -2569,13 +2569,35 @@
+ 
+ // this could definitely be cleaned up QQQ
+ Method* callee;
+-Klass* iclass = cache->f1_as_klass();
+-// InstanceKlass* interface = (InstanceKlass*) iclass;
++Method *interface_method = cache->f2_as_interface_method();
++InstanceKlass* iclass = interface_method->method_holder();
++
+ // get receiver
+ int parms = cache->parameter_size();
+ oop rcvr = STACK_OBJECT(-parms);
+ CHECK_NULL(rcvr);
+ InstanceKlass* int2 = (InstanceKlass*) rcvr->klass();
++
++// Receiver subtype check against resolved interface klass (REFC).
++{
++  Klass* refc = cache->f1_as_klass();
++  itableOffsetEntry* scan;
++  for (scan = (itableOffsetEntry*) int2->start_of_itable();
++   scan->interface_klass() != NULL;
++   scan++) {
++if (scan->interface_klass() == refc) {
++  break;
++}
++  }
++  // Check that the entry is non-null.  A null entry means
++  // that the receiver class doesn't implement the
++  // interface, and wasn't the same as when the caller was
++  // compiled.
++  if (scan->interface_klass() == NULL) {
++
VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), "", 
note_no_trap);
++  }
++}
++
+ itableOffsetEntry* ki = (itableOffsetEntry*) int2->start_of_itable();
+ int i;
+ for ( i = 0 ; i < int2->itable_length() ; i++, ki++ ) {
+@@ -2587,7 +2609,8 @@
+ if (i == int2->itable_length()) {
+   VM_JAVA_ERROR(vmSymbols::java_lang_IncompatibleClassChangeError(), 
"", note_no_trap);
+ }
+-int mindex = cache->f2_as_index();
++int mindex = interface_method->itable_index();
++
+ itableMethodEntry* im = ki->first_method_entry(rcvr->klass());
+ callee = im[mindex].method();
+ if (callee == NULL) {
+
-- 
2.20.1

-- 
___
Openembedded-devel mail

Re: [oe] [meta-java][PATCH 2/2] openjdk-8: better interface invocations

2019-01-28 Thread Kyle Russell
I encountered the same problem on ARM, and arrived at the same upstream
patch independently.  Would you like me to send my meta-java patch prefixed
with [sumo]?  I'd be interested in having this fix backported, if you're
still taking fixes for sumo.

On Mon, Dec 17, 2018 at 10:12 AM Attie Grande <
attie.gra...@argentum-systems.co.uk> wrote:

> > No problem, please just put [sumo] in the subject then.
>
> Sure, thanks for letting me know
>
> > Ok. Just fyi: We will likely update to 8u181b13 soon
> > (see https://patchwork.openembedded.org/patch/156314/)
>
> Great - I'll keep a lookout!
>
> There is further information about my issue on jdk-dev.
> The thread starts here:
>
>   http://mail.openjdk.java.net/pipermail/jdk-dev/2018-November/002246.html
>
> Attie
> --
> ___
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] meta-java configuration

2018-10-25 Thread Kyle Russell
Hi Richard,

Thanks for your reply.

On Thu, Oct 25, 2018 at 9:09 AM Richard Leitner 
wrote:

> > A few years ago, it looked like
> > there was an attempt to allow openjdk-8-native to provide
> > virtual/javac-native, but it has since been reverted.
>
> As I'm not into the meta-java stuff that long I do not know anything
> about it... Do you have any pointers to ML discussions?
>

Yes, I was specifically referring to
http://git.yoctoproject.org/cgit/cgit.cgi/meta-java/commit/?id=dfb21b449dd652b99bc4725796d143e8c9779cd6
.


> Yeah, ecj is needed for bootstrapping the jdk. For more details please
> take a look at docs/bootstrap-flow.txt.


Thanks!  I actually had missed that doc and was just looking at the README.


> AFAIK currently using openjdk-8-native seems like the only solution.
>
Nonetheless I'm open for any patches to enhance this behaviour ;-)
>

Ok, I will try to keep my eyes open for possibilities.  I didn't see any
documentation that described how to compile java code from other layers
using recent JDKs provided by meta-java, so I was looking for validation
that I was on the right track. :)  If I come up something I think would be
an enhancement, I'll send out a proposal.

Thanks again!
Kyle
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] meta-java configuration

2018-10-24 Thread Kyle Russell
It looks like the only javac that meta-java exposes through its bbclasses
comes from libecj-bootstrap-native 3.6.2.  A few years ago, it looked like
there was an attempt to allow openjdk-8-native to provide
virtual/javac-native, but it has since been reverted.

I think I understand libecj is needed as part of the bootstrap process to
build openjdk, but if other layers want to build newer java code using
javac from openjdk 8 once available after bootstrap, does meta-java provide
support for using javac from openjdk-8-native, or is the expectation that
other layers would depend directly on openjdk-8-native and setup
EXTRANATIVEPATH as needed to reach its tools?

Maybe this is planned future work, but I wanted to make sure I was
configuring the layer correctly and using it as intended.

Thanks!

Kyle
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-networking][PATCH] dhcpcd: update to 6.11.5

2018-02-14 Thread Kyle Russell
Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
---
 .../dhcpcd/{dhcpcd_6.11.3.bb => dhcpcd_6.11.5.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta-networking/recipes-connectivity/dhcpcd/{dhcpcd_6.11.3.bb => 
dhcpcd_6.11.5.bb} (84%)

diff --git a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb 
b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
similarity index 84%
rename from meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb
rename to meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
index cb3b5c2..885c6c0 100644
--- a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb
+++ b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = 
"file://dhcpcd.c;endline=26;md5=77c40d671aff804ca91ea99556da8
 
 SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz;
 
-SRC_URI[md5sum] = "d4f2f3ed4964197dee7767219c33a9df"
-SRC_URI[sha256sum] = 
"5abd12c4df2947d608f60a35227f9bf8ae8ab9de06ce975cdab1144d8f229b06"
+SRC_URI[md5sum] = "2465624b62c1154f0e89dc69c42c849b"
+SRC_URI[sha256sum] = 
"6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e"
 
 inherit autotools-brokensep
 
-- 
2.7.4

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-networking][PATCH v2] waf-samba.bbclass: No longer inherit waf.bbclass

2018-02-14 Thread Kyle Russell
This works for me.

On Mon, Feb 12, 2018 at 11:20 AM, Joshua Watt  wrote:

> waf-samba.bbclass uses waf in a very different way than the "standard"
> method that waf.bbclass targets and ends getting very little useful
> functionality from that class.
>
> Signed-off-by: Joshua Watt 
> ---
>  meta-networking/classes/waf-samba.bbclass | 28
> ++--
>  1 file changed, 26 insertions(+), 2 deletions(-)
>
> diff --git a/meta-networking/classes/waf-samba.bbclass
> b/meta-networking/classes/waf-samba.bbclass
> index e490176241..0ce51610f3 100644
> --- a/meta-networking/classes/waf-samba.bbclass
> +++ b/meta-networking/classes/waf-samba.bbclass
> @@ -1,7 +1,7 @@
>  # waf is a build system which is used by samba related project.
>  # Obtain details from https://wiki.samba.org/index.php/Waf
> -#
> -inherit qemu pythonnative waf
> +#
> +inherit qemu pythonnative
>
>  DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native
> python"
>
> @@ -21,6 +21,29 @@ CONFIGUREOPTS = " --prefix=${prefix} \
>${PACKAGECONFIG_CONFARGS} \
>  "
>
> +# avoids build breaks when using no-static-libs.inc
> +DISABLE_STATIC = ""
> +
> +def get_waf_parallel_make(d):
> +pm = d.getVar('PARALLEL_MAKE')
> +if pm:
> +# look for '-j' and throw other options (e.g. '-l') away
> +# because they might have different meaning in bjam
> +pm = pm.split()
> +while pm:
> +opt = pm.pop(0)
> +if opt == '-j':
> +v = pm.pop(0)
> +elif opt.startswith('-j'):
> +v = opt[2:].strip()
> +else:
> +continue
> +
> +v = min(64, int(v))
> +return '-j' + str(v)
> +
> +return ""
> +
>  # Three methods for waf cross compile:
>  # 1. answers:
>  #Only --cross-answers - try the cross-answers file, and if
> @@ -86,6 +109,7 @@ do_configure() {
>  fi
>  }
>
> +do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+"
>  do_compile () {
>  python ./buildtools/bin/waf ${@get_waf_parallel_make(d)}
>  }
> --
> 2.14.3
>
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


Re: [oe] [meta-networking][PATCH] waf-samba: skip waf_preconfigure() prefunc from waf.bbclass

2018-02-11 Thread Kyle Russell
That seems reasonable to me.  I didn't really like how this change
implicitly depended on the base waf class setup either, but I wasn't sure
if the breakage was on anyone's radar.  I'll try out your other patch
tomorrow.

Thanks!

On Sun, Feb 11, 2018 at 4:30 PM, Joshua Watt <jpewhac...@gmail.com> wrote:

> On Sat, Feb 10, 2018 at 9:39 AM, Kyle Russell <bkyleruss...@gmail.com>
> wrote:
> > waf_preconfigure() fails in samba packages because wafbin is packaged
> > differently, and we already pass bindir and libdir through
> > CONFIGUREOPTS.
> >
> > Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
> > ---
> >  meta-networking/classes/waf-samba.bbclass | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/meta-networking/classes/waf-samba.bbclass
> b/meta-networking/classes/waf-samba.bbclass
> > index e490176..94ecf4a 100644
> > --- a/meta-networking/classes/waf-samba.bbclass
> > +++ b/meta-networking/classes/waf-samba.bbclass
> > @@ -42,6 +42,7 @@ CONFIGUREOPTS = " --prefix=${prefix} \
> >  # to help generate the cross answer when adding new board support.
> >  CROSS_METHOD ?= "answer"
> >
> > +do_configure[prefuncs] = ""
>
> Hmm, I'm not sure we want to unconditionally remove all prefuncs.
>
> This breaking samba was brought up to me (since I wrote the patch that
> broke samba), and I actually think a better approach would be to make
> waf-samba no longer inherit from waf.bbclass. The samba method of
> using waf is so different from a "standard" waf usage, that the
> inheritance doesn't really make sense IHMO. I'm preparing a patch to
> do this, and it appears that the only two things that
> waf-samba.bbclass actually needs from waf.bbclass are
> get_waf_parallel_make() and DISABLE_STATIC = "", neither of which it
> can't implement itself.
>
> >  do_configure() {
> >
> >  # Prepare the cross-answers file
> > --
> > 2.7.4
> >
> > --
> > ___
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-networking][PATCH] waf-samba: skip waf_preconfigure() prefunc from waf.bbclass

2018-02-10 Thread Kyle Russell
waf_preconfigure() fails in samba packages because wafbin is packaged
differently, and we already pass bindir and libdir through
CONFIGUREOPTS.

Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
---
 meta-networking/classes/waf-samba.bbclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta-networking/classes/waf-samba.bbclass 
b/meta-networking/classes/waf-samba.bbclass
index e490176..94ecf4a 100644
--- a/meta-networking/classes/waf-samba.bbclass
+++ b/meta-networking/classes/waf-samba.bbclass
@@ -42,6 +42,7 @@ CONFIGUREOPTS = " --prefix=${prefix} \
 # to help generate the cross answer when adding new board support.
 CROSS_METHOD ?= "answer"
 
+do_configure[prefuncs] = ""
 do_configure() {
 
 # Prepare the cross-answers file
-- 
2.7.4

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-oe][PATCH] libvncserver: upgrade to 0.9.11

2017-06-16 Thread Kyle Russell
- Updates the SRC_URI to pull from the github project instead of debian
- Removes the need for the configure.ac patch since the github archive
  still contains the webclient directory, no impact to built packages
- sha1.c patch now included on 0.9.11
- adds systemd dependency for distros building with systemd
- removes conf flag for libva since that support has been removed in
  0.9.11
---
 .../0001-remove-webclients-build.patch |  28 --
 .../libvncserver/0002-common-add-sha1.patch| 524 -
 ...bvncserver_0.9.10.bb => libvncserver_0.9.11.bb} |  18 +-
 3 files changed, 7 insertions(+), 563 deletions(-)
 delete mode 100644 
meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
 delete mode 100644 
meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
 rename meta-oe/recipes-graphics/libvncserver/{libvncserver_0.9.10.bb => 
libvncserver_0.9.11.bb} (53%)

diff --git 
a/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
 
b/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
deleted file mode 100644
index 8f4365c..000
--- 
a/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 5c2a94d..f98038a 100644
 a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
- ACLOCAL_AMFLAGS = -I m4
- 
--SUBDIRS=libvncserver examples libvncclient webclients client_examples test
--DIST_SUBDIRS=libvncserver examples libvncclient webclients client_examples 
test
-+SUBDIRS=libvncserver examples libvncclient client_examples test
-+DIST_SUBDIRS=libvncserver examples libvncclient client_examples test
- EXTRA_DIST = CMakeLists.txt rfb/rfbint.h.cmake rfb/rfbconfig.h.cmake
- 
- bin_SCRIPTS = libvncserver-config
-diff --git a/configure.ac b/configure.ac
-index ca9f3b3..9b464cf 100644
 a/configure.ac
-+++ b/configure.ac
-@@ -600,9 +600,6 @@ AC_CONFIG_FILES([Makefile
-   libvncserver/Makefile
-   examples/Makefile
-   examples/android/Makefile
--  webclients/Makefile
--  webclients/java-applet/Makefile
--  webclients/java-applet/ssl/Makefile
-   libvncclient/Makefile
-   client_examples/Makefile
-   test/Makefile
diff --git 
a/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch 
b/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
deleted file mode 100644
index 8b70d2f..000
--- 
a/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
+++ /dev/null
@@ -1,524 +0,0 @@
-diff --git a/common/sha1.c b/common/sha1.c
-new file mode 100644
-index 000..988b188
 /dev/null
-+++ b/common/sha1.c
-@@ -0,0 +1,411 @@
-+/*
-+ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
-+ *
-+ * This document and translations of it may be copied and furnished to
-+ * others, and derivative works that comment on or otherwise explain it
-+ * or assist in its implementation may be prepared, copied, published
-+ * and distributed, in whole or in part, without restriction of any
-+ * kind, provided that the above copyright notice and this paragraph are
-+ * included on all such copies and derivative works.  However, this
-+ * document itself may not be modified in any way, such as by removing
-+ * the copyright notice or references to the Internet Society or other
-+ * Internet organizations, except as needed for the purpose of
-+ * developing Internet standards in which case the procedures for
-+ * copyrights defined in the Internet Standards process must be
-+ * followed, or as required to translate it into languages other than
-+ * English.
-+ *
-+ * The limited permissions granted above are perpetual and will not be
-+ * revoked by the Internet Society or its successors or assigns.
-+ *
-+ * This document and the information contained herein is provided on an
-+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-+ */
-+
-+/*
-+ *  sha1.c
-+ *
-+ *  Description:
-+ *  This file implements the Secure Hashing Algorithm 1 as
-+ *  defined in FIPS PUB 180-1 published April 17, 1995.
-+ *
-+ *  The SHA-1, produces a 160-bit message digest for a given
-+ *  data stream.  It should take about 2**n steps to find a
-+ *  message with the same digest as a given message and
-+ *  2**(n/2) to find any two messages with the same digest,
-+ *  when n is the digest size in bits.  Therefore, this
-+ *  algorithm can serve as a means of providing a
-+ *  "fingerprint" for a message.
-+ *
-+ *  Portability Issues:
-+ *  SHA-1 is defined in terms of 

[oe] [meta-filesystems][PATCH] fuse: update 2.9.4 to 2.9.7

2017-06-01 Thread Kyle Russell
---
 .../recipes-support/fuse/{fuse_2.9.4.bb => fuse_2.9.7.bb} | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)
 rename meta-filesystems/recipes-support/fuse/{fuse_2.9.4.bb => fuse_2.9.7.bb} 
(89%)

diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb 
b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
similarity index 89%
rename from meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb
rename to meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
index 153fcb4..e66f3cd 100644
--- a/meta-filesystems/recipes-support/fuse/fuse_2.9.4.bb
+++ b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
@@ -4,20 +4,20 @@ DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple 
interface for userspac
also aims to provide a secure method for non privileged users 
to \
create and mount their own filesystem implementations. \
   "
-HOMEPAGE = "http://fuse.sf.net;
+HOMEPAGE = "https://github.com/libfuse/libfuse;
 SECTION = "libs"
 LICENSE = "GPLv2 & LGPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/fuse-${PV}.tar.gz \
+SRC_URI = 
"https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz \
file://gold-unversioned-symbol.patch \
file://aarch64.patch \
file://0001-fuse-fix-the-return-value-of-help-option.patch \
file://fuse.conf \
 "
-SRC_URI[md5sum] = "ecb712b5ffc6dffd54f4a405c9b372d8"
-SRC_URI[sha256sum] = 
"6be9c0bff6af8c677414935f31699ea5a7f8f5f791cfa5205be02ea186b97ce1"
+SRC_URI[md5sum] = "9bd4ce8184745fd3d000ca2692adacdb"
+SRC_URI[sha256sum] = 
"832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874"
 
 inherit autotools pkgconfig update-rc.d systemd
 
-- 
2.7.4

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-java][PATCH] Reimplement helper method for parallelizing JDK builds

2016-08-24 Thread Kyle Russell
Simplifies duplicated implementation across multiple recipes that all
inherited from java.bbclass.

Previously implementation was not flexible in supporting other make
job-limiting flags (like -l for load) that are typically passed in
through PARALLEL_MAKE.  (OpenJDK doesn't know about these other flags
that might have gotten tagged on after the value for -j.)

Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
---
 classes/java.bbclass  | 17 
 recipes-core/icedtea/icedtea7-native.inc  | 23 +-
 recipes-core/openjdk/openjdk-7-common.inc | 32 +--
 recipes-core/openjdk/openjdk-8-common.inc | 21 
 recipes-core/openjdk/openjdk-8-cross.inc  |  6 +++---
 recipes-core/openjdk/openjdk-8-native.inc |  2 +-
 6 files changed, 23 insertions(+), 78 deletions(-)

diff --git a/classes/java.bbclass b/classes/java.bbclass
index fc97295..aa012ab 100644
--- a/classes/java.bbclass
+++ b/classes/java.bbclass
@@ -21,6 +21,23 @@ STAGING_DATADIR_JAVA_NATIVE ?= 
"${STAGING_DATADIR_NATIVE}/java"
 STAGING_LIBDIR_JNI_NATIVE ?= "${STAGING_LIBDIR_NATIVE}/jni"
 STAGING_LIBDIR_JVM_NATIVE ?= "${STAGING_LIBDIR_NATIVE}/jvm"
 
+# Icedtea's makefile is not compatible to parallelization so we cannot allow
+# passing a valid ${PARALLEL_MAKE} to it. OTOH OpenJDK's makefiles are
+# parallelizable and we need ${PARALLEL_MAKE} to derive the proper value.
+# The base for this quirk is that GNU Make only considers the last "-j" option.
+EXTRA_OEMAKE_remove_task-compile = "${PARALLEL_MAKE}"
+EXTRA_OEMAKE_remove_task-install = "${PARALLEL_MAKEINST}"
+
+# OpenJDK supports parallel compilation but uses a plain number for this.
+# In OE we have PARALLEL_MAKE which is the actual option passed to make,
+# e.g. "-j 4".
+def java_get_parallel_make(d):
+pm = d.getVar('PARALLEL_MAKE', True);
+if not pm or '-j' not in pm:
+return 1
+
+return pm.partition('-j')[2].strip().split(' ')[0]
+
 oe_jarinstall() {
   # Purpose: Install a jar file and create all the given symlinks to it.
   # Example:
diff --git a/recipes-core/icedtea/icedtea7-native.inc 
b/recipes-core/icedtea/icedtea7-native.inc
index 3344acb..d4c5c29 100644
--- a/recipes-core/icedtea/icedtea7-native.inc
+++ b/recipes-core/icedtea/icedtea7-native.inc
@@ -54,27 +54,8 @@ export ALT_FREETYPE_LIB_PATH = "${STAGING_LIBDIR}"
 # which is already stripped.
 INSANE_SKIP_${PN} = "already-stripped"
 
-# OpenJDK supports parallel compilation but uses a plain number for this.
-# In OE we have PARALLEL_MAKE which is the actual option passed to make,
-# e.g. "-j 4".
-ICEDTEA_PARALLEL_MAKE := "${PARALLEL_MAKE}"
-PARALLEL_MAKE = ""
-def get_jdk7_native_jobs(d):
-import bb
-
-pm = bb.data.getVar('ICEDTEA_PARALLEL_MAKE', d, 1);
-if not pm:
-return "1"
-
-pm = pm.split("j");
-if (len(pm) == 2):
-return pm[1].strip()
-
-# Whatever found in PARALLEL_MAKE was not suitable.
-return "1"
-
 EXTRA_OECONF = "\
-   --with-parallel-jobs=${@get_jdk7_native_jobs(d)} \
+   --with-parallel-jobs=${@java_get_parallel_make(d)} \
\
 --disable-tests \
 --disable-hotspot-tests \
@@ -273,5 +254,3 @@ do_install() {
# Fix missing write permissions on the files.
chmod ug+w -R ${JDK_INSTALL_DIR}
 }
-
-get_jdk7_native_jobs[vardepsexclude] += "ICEDTEA_PARALLEL_MAKE"
diff --git a/recipes-core/openjdk/openjdk-7-common.inc 
b/recipes-core/openjdk/openjdk-7-common.inc
index f848a06..c491195 100644
--- a/recipes-core/openjdk/openjdk-7-common.inc
+++ b/recipes-core/openjdk/openjdk-7-common.inc
@@ -59,30 +59,6 @@ export CACAO_CONFIGURE_ARGS = " \
 
 JAVA_HOME[unexport] = "1"
 
-# OpenJDK supports parallel compilation but uses a plain number for this.
-# In OE we have PARALLEL_MAKE which is the actual option passed to make,
-# e.g. "-j 4".
-
-OPENJDK_PARALLEL_MAKE := "${PARALLEL_MAKE}"
-PARALLEL_MAKE =  ""
-
-def get_jdk7_jobs(d):
-import bb
-
-pm = bb.data.getVar('OPENJDK_PARALLEL_MAKE', d, 1);
-if not pm:
-return "1"
-
-pm = pm.split("j");
-if (len(pm) == 2):
-return pm[1].strip()
-
-# Whatever found in PARALLEL_MAKE was not suitable.
-return "1"
-
-get_jdk7_jobs[vardepsexclude] += "OPENJDK_PARALLEL_MAKE"
-JDK_JOBS = "${@get_jdk7_jobs(d)}"
-
 EXTRA_OECONF = " \
 --enable-downloading=no \
 \
@@ -108,7 +84,7 @@ EXTRA_OECONF = " \
 --with-jdk-src-zip=${WORKDIR}/${JDK_FILE} \
 --with-langtools-src-zip=${WORKDIR}/${LANGTOOLS_FILE} \
 \
---with-parallel-jobs=${JDK_JOBS} \
+--with-parallel-jobs=${@java_get_parallel_make(d)} \
 \
 --with-pkgversion=${PV} \
 --with-cc-for-build=${BUILD_CC} \
@@ -1

Re: [oe] [meta-java][PATCH 2/2] Reimplement helper method for parallelizing JDK builds

2016-08-24 Thread Kyle Russell
Sure thing.

On Wed, Aug 24, 2016, 9:00 AM Maxin B. John <maxin.j...@intel.com> wrote:

> Hi,
>
> On Fri, Aug 19, 2016 at 05:58:02PM -0400, Kyle Russell wrote:
> > Simplifies duplicated implementation across multiple recipes that all
> > inherited from java.bbclass.
> >
> > Previously implementation was not flexible in supporting other make
> > job-limiting flags (like -l for load) that are typically passed in
> > through PARALLEL_MAKE.  (OpenJDK doesn't know about these other flags
> > that might have gotten tagged on after the value for -j.)
> >
> > Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
> > ---
> >  classes/java.bbclass  | 17 
> >  recipes-core/icedtea/icedtea7-native.inc  | 23 +-
> >  recipes-core/openjdk/openjdk-7-common.inc | 32
> +--
> >  recipes-core/openjdk/openjdk-8-common.inc | 21 
> >  recipes-core/openjdk/openjdk-8-cross.inc  |  6 +++---
> >  recipes-core/openjdk/openjdk-8-native.inc |  2 +-
> >  6 files changed, 23 insertions(+), 78 deletions(-)
>
> Can you please rebase this on the latest master branch and resend?
>
> 
>
> Best Regards,
> Maxin
>
-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel


[oe] [meta-java][PATCH 2/2] Reimplement helper method for parallelizing JDK builds

2016-08-19 Thread Kyle Russell
Simplifies duplicated implementation across multiple recipes that all
inherited from java.bbclass.

Previously implementation was not flexible in supporting other make
job-limiting flags (like -l for load) that are typically passed in
through PARALLEL_MAKE.  (OpenJDK doesn't know about these other flags
that might have gotten tagged on after the value for -j.)

Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
---
 classes/java.bbclass  | 17 
 recipes-core/icedtea/icedtea7-native.inc  | 23 +-
 recipes-core/openjdk/openjdk-7-common.inc | 32 +--
 recipes-core/openjdk/openjdk-8-common.inc | 21 
 recipes-core/openjdk/openjdk-8-cross.inc  |  6 +++---
 recipes-core/openjdk/openjdk-8-native.inc |  2 +-
 6 files changed, 23 insertions(+), 78 deletions(-)

diff --git a/classes/java.bbclass b/classes/java.bbclass
index fc97295..aa012ab 100644
--- a/classes/java.bbclass
+++ b/classes/java.bbclass
@@ -21,6 +21,23 @@ STAGING_DATADIR_JAVA_NATIVE ?= 
"${STAGING_DATADIR_NATIVE}/java"
 STAGING_LIBDIR_JNI_NATIVE ?= "${STAGING_LIBDIR_NATIVE}/jni"
 STAGING_LIBDIR_JVM_NATIVE ?= "${STAGING_LIBDIR_NATIVE}/jvm"
 
+# Icedtea's makefile is not compatible to parallelization so we cannot allow
+# passing a valid ${PARALLEL_MAKE} to it. OTOH OpenJDK's makefiles are
+# parallelizable and we need ${PARALLEL_MAKE} to derive the proper value.
+# The base for this quirk is that GNU Make only considers the last "-j" option.
+EXTRA_OEMAKE_remove_task-compile = "${PARALLEL_MAKE}"
+EXTRA_OEMAKE_remove_task-install = "${PARALLEL_MAKEINST}"
+
+# OpenJDK supports parallel compilation but uses a plain number for this.
+# In OE we have PARALLEL_MAKE which is the actual option passed to make,
+# e.g. "-j 4".
+def java_get_parallel_make(d):
+pm = d.getVar('PARALLEL_MAKE', True);
+if not pm or '-j' not in pm:
+return 1
+
+return pm.partition('-j')[2].strip().split(' ')[0]
+
 oe_jarinstall() {
   # Purpose: Install a jar file and create all the given symlinks to it.
   # Example:
diff --git a/recipes-core/icedtea/icedtea7-native.inc 
b/recipes-core/icedtea/icedtea7-native.inc
index 3344acb..d4c5c29 100644
--- a/recipes-core/icedtea/icedtea7-native.inc
+++ b/recipes-core/icedtea/icedtea7-native.inc
@@ -54,27 +54,8 @@ export ALT_FREETYPE_LIB_PATH = "${STAGING_LIBDIR}"
 # which is already stripped.
 INSANE_SKIP_${PN} = "already-stripped"
 
-# OpenJDK supports parallel compilation but uses a plain number for this.
-# In OE we have PARALLEL_MAKE which is the actual option passed to make,
-# e.g. "-j 4".
-ICEDTEA_PARALLEL_MAKE := "${PARALLEL_MAKE}"
-PARALLEL_MAKE = ""
-def get_jdk7_native_jobs(d):
-import bb
-
-pm = bb.data.getVar('ICEDTEA_PARALLEL_MAKE', d, 1);
-if not pm:
-return "1"
-
-pm = pm.split("j");
-if (len(pm) == 2):
-return pm[1].strip()
-
-# Whatever found in PARALLEL_MAKE was not suitable.
-return "1"
-
 EXTRA_OECONF = "\
-   --with-parallel-jobs=${@get_jdk7_native_jobs(d)} \
+   --with-parallel-jobs=${@java_get_parallel_make(d)} \
\
 --disable-tests \
 --disable-hotspot-tests \
@@ -273,5 +254,3 @@ do_install() {
# Fix missing write permissions on the files.
chmod ug+w -R ${JDK_INSTALL_DIR}
 }
-
-get_jdk7_native_jobs[vardepsexclude] += "ICEDTEA_PARALLEL_MAKE"
diff --git a/recipes-core/openjdk/openjdk-7-common.inc 
b/recipes-core/openjdk/openjdk-7-common.inc
index 759b426..ba738cf 100644
--- a/recipes-core/openjdk/openjdk-7-common.inc
+++ b/recipes-core/openjdk/openjdk-7-common.inc
@@ -59,30 +59,6 @@ export CACAO_CONFIGURE_ARGS = " \
 
 JAVA_HOME[unexport] = "1"
 
-# OpenJDK supports parallel compilation but uses a plain number for this.
-# In OE we have PARALLEL_MAKE which is the actual option passed to make,
-# e.g. "-j 4".
-
-OPENJDK_PARALLEL_MAKE := "${PARALLEL_MAKE}"
-PARALLEL_MAKE =  ""
-
-def get_jdk7_jobs(d):
-import bb
-
-pm = bb.data.getVar('OPENJDK_PARALLEL_MAKE', d, 1);
-if not pm:
-return "1"
-
-pm = pm.split("j");
-if (len(pm) == 2):
-return pm[1].strip()
-
-# Whatever found in PARALLEL_MAKE was not suitable.
-return "1"
-
-get_jdk7_jobs[vardepsexclude] += "OPENJDK_PARALLEL_MAKE"
-JDK_JOBS = "${@get_jdk7_jobs(d)}"
-
 EXTRA_OECONF = " \
 --disable-tests \
 --disable-hotspot-tests \
@@ -106,7 +82,7 @@ EXTRA_OECONF = " \
 --with-jdk-src-zip=${WORKDIR}/${JDK_FILE} \
 --with-langtools-src-zip=${WORKDIR}/${LANGTOOLS_FILE} \
 \
---with-parallel-jobs=${JDK_JOBS} \
+--with-parallel-jobs=${@java_get_parallel_make(d)} \
 \
 --with-pkgversion=${PV} \
 --with-cc-for-buil

[oe] [meta-java][PATCH 1/2] rhino-native should depend on classpath-native

2016-08-19 Thread Kyle Russell
rhino's do_compile task passes
${STAGING_DATADIR_NATIVE}/classpath/glibj.zip to javac.  This glibj.zip
archive comes from the classpath-native package.

Signed-off-by: Kyle Russell <bkyleruss...@gmail.com>
---
 recipes-core/rhino/rhino_1.7r4.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/recipes-core/rhino/rhino_1.7r4.bb 
b/recipes-core/rhino/rhino_1.7r4.bb
index 7898d23..30d5a62 100644
--- a/recipes-core/rhino/rhino_1.7r4.bb
+++ b/recipes-core/rhino/rhino_1.7r4.bb
@@ -2,6 +2,8 @@ DESCRIPTION = "Lexical analyzer generator for Java"
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e2372bdbf22c99279ae4599a13cc458"
 
+DEPENDS_class-native += "classpath-native"
+
 BBCLASSEXTEND = "native"
 
 inherit java-library
-- 
2.7.4

-- 
___
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel