diff mbox

[1/1] jamvm: add depends on toolchain w/threads

Message ID 1427385280-63133-1-git-send-email-matthew.weber@rockwellcollins.com
State Accepted
Headers show

Commit Message

Matt Weber March 26, 2015, 3:54 p.m. UTC
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
---
 package/jamvm/Config.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Ryan Barnett March 26, 2015, 6:16 p.m. UTC | #1
Matt,

On Thu, Mar 26, 2015 at 10:54 AM, Matt Weber
<matthew.weber@rockwellcollins.com> 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?

> Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
> ---
>  package/jamvm/Config.in | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/package/jamvm/Config.in b/package/jamvm/Config.in
> index f480995..1e33f42 100644
> --- a/package/jamvm/Config.in
> +++ b/package/jamvm/Config.in
> @@ -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

Thanks,
-Ryan
Matt Weber March 26, 2015, 6:52 p.m. UTC | #2
Ryan,

On Thu, Mar 26, 2015 at 1:16 PM, Ryan Barnett
<ryan.barnett@rockwellcollins.com> wrote:
> Matt,
>
> On Thu, Mar 26, 2015 at 10:54 AM, Matt Weber
> <matthew.weber@rockwellcollins.com> 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?

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

>
>> Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
>> ---
>>  package/jamvm/Config.in | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/jamvm/Config.in b/package/jamvm/Config.in
>> index f480995..1e33f42 100644
>> --- a/package/jamvm/Config.in
>> +++ b/package/jamvm/Config.in
>> @@ -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
>
> 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@rockwellcollins.com
> www.rockwellcollins.com
Ryan Barnett April 1, 2015, 2:28 p.m. UTC | #3
Matt,

On Thu, Mar 26, 2015 at 1:52 PM, Matthew Weber
<matthew.weber@rockwellcollins.com> wrote:
>
> 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
Thomas Petazzoni April 1, 2015, 2:44 p.m. UTC | #4
Dear Ryan Barnett,

On Wed, 1 Apr 2015 09:28:12 -0500, Ryan Barnett wrote:

> > 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
Matt Weber April 1, 2015, 9:09 p.m. UTC | #5
All,

On Wed, Apr 1, 2015 at 9:44 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Ryan Barnett,
>
> On Wed, 1 Apr 2015 09:28:12 -0500, Ryan Barnett wrote:
>
>> > 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.
>

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
Thomas Petazzoni April 1, 2015, 9:43 p.m. UTC | #6
Dear Matt Weber,

On Thu, 26 Mar 2015 10:54:40 -0500, Matt Weber wrote:
> Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
> ---
>  package/jamvm/Config.in | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/package/jamvm/Config.in b/package/jamvm/Config.in
> index f480995..1e33f42 100644
> --- a/package/jamvm/Config.in
> +++ b/package/jamvm/Config.in
> @@ -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.

>  	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
Peter Korsgaard April 1, 2015, 9:48 p.m. UTC | #7
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

Hi,

> 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.
Thomas Petazzoni April 1, 2015, 9:59 p.m. UTC | #8
Dear Peter Korsgaard,

On Wed, 01 Apr 2015 23:48:49 +0200, Peter Korsgaard wrote:
> >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> 
> Hi,
> 
> > 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.

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
Matt Weber April 2, 2015, 1:28 a.m. UTC | #9
All,

On Wed, Apr 1, 2015 at 4:59 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Peter Korsgaard,
>
> On Wed, 01 Apr 2015 23:48:49 +0200, Peter Korsgaard wrote:
>> >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
>>
>> Hi,
>>
>> > 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.
>
> 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

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?
Peter Korsgaard April 2, 2015, 8:03 a.m. UTC | #10
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

Hi,

 >> 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.
Peter Korsgaard April 2, 2015, 8:04 a.m. UTC | #11
>>>>> "Matthew" == Matthew Weber <matthew.weber@rockwellcollins.com> writes:

Hi,

>>> 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

 > 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.
diff mbox

Patch

diff --git a/package/jamvm/Config.in b/package/jamvm/Config.in
index f480995..1e33f42 100644
--- a/package/jamvm/Config.in
+++ b/package/jamvm/Config.in
@@ -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