Skip to contentSkip to conversation

jamvm: add depends on toolchain w/threads

PATCH New Matt Weber 4 participants 12 messages Mar 26, 2015 – Apr 2, 2015

lore
Share & tools
lore

Matt Weber

author
#0 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

---
 package/jamvm/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
package/jamvm/Config.in +3 -1
index f480995..1e33f42 100644
@@ -5,13 +5,15 @@ config BR2_PACKAGE_JAMVM
 		|| BR2_mips || BR2_mipsel || BR2_powerpc
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_CLASSPATH
+	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  JamVM is a new Java Virtual Machine which conforms to the
 	  JVM specification version 2 (blue book).
 
 	  http://jamvm.sf.net
 
-comment "jamvm needs a toolchain w/ IPv6"
+comment "jamvm needs a toolchain w/ IPv6 and threads"
 	depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \
 		|| BR2_mips || BR2_mipsel || BR2_powerpc
 	depends on !BR2_INET_IPV6
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Matt,

On Thu, Mar 26, 2015 at 10:54 AM, Matt Weber
<[email protected]> wrote:

Why does jamvm need threads? I don't see any issues with toolchains on the autobuilders needing threads to build this package.

http://autobuild.buildroot.org/?reason=jamvm-2.0.0

Could you please elaborate more why jamvm needs a toolchain with threads and how you discovered this?

Quoted 16 lines
---
 package/jamvm/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
package/jamvm/Config.in +1 -0
index f480995..1e33f42 100644
@@ -5,13 +5,15 @@ config BR2_PACKAGE_JAMVM
                || BR2_mips || BR2_mipsel || BR2_powerpc
        select BR2_PACKAGE_ZLIB
        select BR2_PACKAGE_CLASSPATH
+       depends on BR2_TOOLCHAIN_HAS_THREADS
        help
          JamVM is a new Java Virtual Machine which conforms to the

package/jamvm/Config.in config BR2_PACKAGE_JAMVM · line 19

Quoted 10 lines
package/jamvm/Config.in +2 -1
          JVM specification version 2 (blue book).
 
          http://jamvm.sf.net
 
-comment "jamvm needs a toolchain w/ IPv6"
+comment "jamvm needs a toolchain w/ IPv6 and threads"
        depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \
                || BR2_mips || BR2_mipsel || BR2_powerpc
        depends on !BR2_INET_IPV6
+       depends on !BR2_TOOLCHAIN_HAS_THREADS

Thanks,
-Ryan

Signature · 5 lines
Ryan Barnett / Sr Software Engineer
Airborne Information Systems / Security Systems and Software
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
ryan.barnett at rockwellcollins.com
www.rockwellcollins.com
#2 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Ryan,

Quoted 5 lines · Ryan Barnett

Matt,

On Thu, Mar 26, 2015 at 10:54 AM, Matt Weber
<[email protected]> wrote:

Quoted 7 lines

Why does jamvm need threads? I don't see any issues with toolchains on the autobuilders needing threads to build this package.

http://autobuild.buildroot.org/?reason=jamvm-2.0.0

Could you please elaborate more why jamvm needs a toolchain with threads and how you discovered this?

While running an autobuilder internally. It's a arm uclibc build failure looking for pthreads.

Here's some of the build end
http://climbi.com/b/3851/0

The config...
http://climbi.com/b/3852/0

Quoted 37 lines
Quoted 17 lines
---
 package/jamvm/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
package/jamvm/Config.in +1 -0
index f480995..1e33f42 100644
@@ -5,13 +5,15 @@ config BR2_PACKAGE_JAMVM
                || BR2_mips || BR2_mipsel || BR2_powerpc
        select BR2_PACKAGE_ZLIB
        select BR2_PACKAGE_CLASSPATH
+       depends on BR2_TOOLCHAIN_HAS_THREADS
        help
          JamVM is a new Java Virtual Machine which conforms to the

package/jamvm/Config.in config BR2_PACKAGE_JAMVM · line 19

Quoted 10 lines
package/jamvm/Config.in +2 -1
          JVM specification version 2 (blue book).
 
          http://jamvm.sf.net
 
-comment "jamvm needs a toolchain w/ IPv6"
+comment "jamvm needs a toolchain w/ IPv6 and threads"
        depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \
                || BR2_mips || BR2_mipsel || BR2_powerpc
        depends on !BR2_INET_IPV6
+       depends on !BR2_TOOLCHAIN_HAS_THREADS

Thanks,
-Ryan

--
Ryan Barnett / Sr Software Engineer
Airborne Information Systems / Security Systems and Software MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA ryan.barnett at rockwellcollins.com www.rockwellcollins.com

Signature · 8 lines
Matthew L Weber / Pr Software Engineer
Airborne Information Systems / Security Systems and Software / Secure Platforms
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
www.rockwellcollins.com

Note: Any Export License Required Information and License Restricted
Third Party Intellectual Property (TPIP) content must be encrypted and
sent to matthew.weber at corp.rockwellcollins.com.
#3 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Matt,

Quoted 3 lines · Matthew Weber

While running an autobuilder internally. It's a arm uclibc build failure looking for pthreads.

I am curious about the Buildroot autobuilders then if they don't have javac available on them to build.

Thomas - are there autobuilders that have javac installed on them?

Thanks,
-Ryan

Signature · 5 lines
Ryan Barnett / Sr Software Engineer
Airborne Information Systems / Security Systems and Software
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
ryan.barnett at rockwellcollins.com
www.rockwellcollins.com
#4 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Dear Ryan Barnett,

Quoted 7 lines · Ryan Barnett
Quoted 2 lines

While running an autobuilder internally. It's a arm uclibc build failure looking for pthreads.

I am curious about the Buildroot autobuilders then if they don't have javac available on them to build.

Thomas - are there autobuilders that have javac installed on them?

The autobuild-run script detects whether javac is available or not. If it's not available, it makes sure to not attempt a build that has the Buildroot packages that require javac to be installed.

On the Free Electrons build server, javac is not installed. On gcc75, javac is installed.

See
http://git.buildroot.net/buildroot-test/tree/scripts/autobuild-run#n196
and
http://git.buildroot.net/buildroot-test/tree/scripts/autobuild-run#n339.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

All,

Quoted 7 lines · Thomas Petazzoni

Dear Ryan Barnett,

Quoted 3 lines · Ryan Barnett
Quoted 2 lines

While running an autobuilder internally. It's a arm uclibc build failure looking for pthreads.

Quoted 9 lines
Quoted 4 lines

I am curious about the Buildroot autobuilders then if they don't have javac available on them to build.

Thomas - are there autobuilders that have javac installed on them?

The autobuild-run script detects whether javac is available or not. If it's not available, it makes sure to not attempt a build that has the Buildroot packages that require javac to be installed.

Ok, it looks like it's detecting it as "javac 1.7.0_75" on ours. I'll update my buildroot-test branch to the latest and retest (I'm a couple months behind).

Thanks,
Matt

#6 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

In reply to Matt Weber

Dear Matt Weber,

Quoted 10 lines · Matt Weber
---
 package/jamvm/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
package/jamvm/Config.in +0 -0
index f480995..1e33f42 100644

package/jamvm/Config.in config BR2_PACKAGE_JAMVM · line 8

Quoted 4 lines
package/jamvm/Config.in +1 -0
@@ -5,13 +5,15 @@ config BR2_PACKAGE_JAMVM
 		|| BR2_mips || BR2_mipsel || BR2_powerpc
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_CLASSPATH
+	depends on BR2_TOOLCHAIN_HAS_THREADS

This should have been grouped closer to the BR2_INET_IPV6 dependency.

package/jamvm/Config.in config BR2_PACKAGE_JAMVM · line 15

Quoted 8 lines
package/jamvm/Config.in +1 -1
 	help
 	  JamVM is a new Java Virtual Machine which conforms to the
 	  JVM specification version 2 (blue book).
 
 	  http://jamvm.sf.net
 
-comment "jamvm needs a toolchain w/ IPv6"
+comment "jamvm needs a toolchain w/ IPv6 and threads"

This should have been "IPv6, threads".

Applied with these minor details fixed.

Also, there's something fishy between jamvm and classpath.

jamvm does select BR2_PACKAGE_CLASSPATH and has classpath in JAMVM_DEPENDENCIES.

But classpath has depends on BR2_PACKAGE_JAMVM in its Config.in.

Does not make much sense. Peter, you followed the JamVM/Classpath stuff. What do you think?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Quoted 9 lines

Also, there's something fishy between jamvm and classpath.

jamvm does select BR2_PACKAGE_CLASSPATH and has classpath in JAMVM_DEPENDENCIES.

But classpath has depends on BR2_PACKAGE_JAMVM in its Config.in.

Does not make much sense. Peter, you followed the JamVM/Classpath stuff. What do you think?

Hmm, that indeed doesn't sound right. I think the jamvm select should be dropped from classpath.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#8 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Dear Peter Korsgaard,

Quoted 9 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Quoted 4 lines

Also, there's something fishy between jamvm and classpath.

jamvm does select BR2_PACKAGE_CLASSPATH and has classpath in JAMVM_DEPENDENCIES.

Quoted 7 lines
Quoted 4 lines

But classpath has depends on BR2_PACKAGE_JAMVM in its Config.in.

Does not make much sense. Peter, you followed the JamVM/Classpath stuff. What do you think?

Hmm, that indeed doesn't sound right. I think the jamvm select should be dropped from classpath.

There's no jamvm select in classpath, it's a 'depends on':

config BR2_PACKAGE_JAMVM
bool "jamvm"
select BR2_PACKAGE_CLASSPATH

config BR2_PACKAGE_CLASSPATH
bool "classpath"
depends on BR2_PACKAGE_JAMVM

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#9 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

All,

Quoted 22 lines · Thomas Petazzoni

Dear Peter Korsgaard,

Quoted 9 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Quoted 4 lines

Also, there's something fishy between jamvm and classpath.

jamvm does select BR2_PACKAGE_CLASSPATH and has classpath in JAMVM_DEPENDENCIES.

Quoted 7 lines
Quoted 4 lines

But classpath has depends on BR2_PACKAGE_JAMVM in its Config.in.

Does not make much sense. Peter, you followed the JamVM/Classpath stuff. What do you think?

Hmm, that indeed doesn't sound right. I think the jamvm select should be dropped from classpath.

There's no jamvm select in classpath, it's a 'depends on':

Quoted 7 lines

config BR2_PACKAGE_JAMVM
bool "jamvm"
select BR2_PACKAGE_CLASSPATH

config BR2_PACKAGE_CLASSPATH
bool "classpath"
depends on BR2_PACKAGE_JAMVM

Looking at http://www.gnu.org/software/classpath/stories.html#jvm it looks like the jamvm "select" is correct but the classpath "depends" should be removed. (my interpretation of this is...) classpath is just a library used by various JVMs so if another JVM was added to BR we'd have to remove that depends anyway at that point and make that JVM also do a select of classpath?

Signature · 4 lines
Matthew L Weber / Pr Software Engineer
Airborne Information Systems / Security Systems and Software / Secure Platforms
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
www.rockwellcollins.com
#10 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Matthew" == Matthew Weber <[email protected]> writes:

Hi,

Quoted 13 lines
Quoted 5 lines
Quoted 2 lines

Hmm, that indeed doesn't sound right. I think the jamvm select should be dropped from classpath.

There's no jamvm select in classpath, it's a 'depends on':

Quoted 7 lines

config BR2_PACKAGE_JAMVM
bool "jamvm"
select BR2_PACKAGE_CLASSPATH

config BR2_PACKAGE_CLASSPATH
bool "classpath"
depends on BR2_PACKAGE_JAMVM

Quoted 6 lines

Looking at http://www.gnu.org/software/classpath/stories.html#jvm it looks like the jamvm "select" is correct but the classpath "depends" should be removed. (my interpretation of this is...) classpath is just a library used by various JVMs so if another JVM was added to BR we'd have to remove that depends anyway at that point and make that JVM also do a select of classpath?

That's my understanding as well.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#11 lore raw

PATCH 1/1 jamvm: add depends on toolchain w/threads

In reply to Thomas Petazzoni
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Quoted 4 lines
Quoted 2 lines

Hmm, that indeed doesn't sound right. I think the jamvm select should be dropped from classpath.

There's no jamvm select in classpath, it's a 'depends on':

Yes, sorry - I meant depends on.

I'm far from a Java expert, but from what I understand it classpath is an implementation of the Java standard libraries. You cannot really use Java without it. To actually run Java code you need a JVM (like Jamvm), so I think it makes sense for jamvm to select classpath and not the other way around.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard