public inbox for eclipse@sourceware.org
 help / color / mirror / Atom feed
* Recognizing gcj as default StandardVM (JRE System Library)
@ 2003-08-02 13:55 Mark Wielaard
  2003-08-02 15:44 ` Jan Schulz
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Mark Wielaard @ 2003-08-02 13:55 UTC (permalink / raw)
  To: eclipse

Hi,

It took me some time to convince eclipse to recognize gcj/gij/libgcj as
standard vm. It is probably best to patch
org.eclipse.jdt.internal.launching.StandardVMType to better detect that
it is running as native binary. But for the moment I have just created a
/usr/bin/java executable which contains:

#!/bin/sh
/usr/bin/gij-ssa -Dsun.boot.class.path=/usr/share/java/libgcj-3.5-tree-ssa.jar $*

That way everything works out of the box for me.
(sun.boot.class.path is clearly not a documented standard system
property so Eclipse should really not use it.)

If there is a better way to do this, please let me know.

Cheers,

Mark

P.S. The mailinglist archives at http://sources.redhat.com/ml/eclipse/
don't seem to work.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 13:55 Recognizing gcj as default StandardVM (JRE System Library) Mark Wielaard
@ 2003-08-02 15:44 ` Jan Schulz
  2003-08-02 16:55   ` Tom Tromey
  2003-08-02 21:45   ` Mark Wielaard
  2003-08-02 16:07 ` Tom Tromey
  2003-08-08 16:08 ` Andrew Haley
  2 siblings, 2 replies; 8+ messages in thread
From: Jan Schulz @ 2003-08-02 15:44 UTC (permalink / raw)
  To: eclipse

Hallo Mark,

Just something about me: I'm the debian maintainer of the eclipse
packages and I taking this list and the binaries as something to learn
from :) I would really be happy if eclipse could be run with a free
VM. Unfortunatelly I don't have much experience with gcj, so please be
patient with me. But I will read up te required knowledge...

* Mark Wielaard wrote:
>It took me some time to convince eclipse to recognize gcj/gij/libgcj as
>standard vm.

Does this mean that eclipse will run with a (patched?) gcj as
'*/bin/java' (not native, but in the VM)?

[running natively]
What will happen with all the plugins? Are they still recognised when
eclipse is started as native binary? Are they still runable? 

>That way everything works out of the box for me.
>(sun.boot.class.path is clearly not a documented standard system
>property so Eclipse should really not use it.)

File a bugreport :)

Jan
-- 
Jan Schulz                     jasc@gmx.net
     "Wer nicht fragt, bleibt dumm."

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 13:55 Recognizing gcj as default StandardVM (JRE System Library) Mark Wielaard
  2003-08-02 15:44 ` Jan Schulz
@ 2003-08-02 16:07 ` Tom Tromey
  2003-08-08 16:08 ` Andrew Haley
  2 siblings, 0 replies; 8+ messages in thread
From: Tom Tromey @ 2003-08-02 16:07 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: eclipse

>>>>> "Mark" == Mark Wielaard <mark@klomp.org> writes:

Mark> It took me some time to convince eclipse to recognize
Mark> gcj/gij/libgcj as standard vm. It is probably best to patch
Mark> org.eclipse.jdt.internal.launching.StandardVMType to better
Mark> detect that it is running as native binary.

Yeah, that's on my to-do list.  BTW thanks for finding the location to
change, that will make it a little easier :-)

Mark> That way everything works out of the box for me.
Mark> (sun.boot.class.path is clearly not a documented standard system
Mark> property so Eclipse should really not use it.)

Time for another eclipse.org bug report.

Mark> P.S. The mailinglist archives at http://sources.redhat.com/ml/eclipse/
Mark> don't seem to work.

I'll fix this a bit later.

Tom

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 15:44 ` Jan Schulz
@ 2003-08-02 16:55   ` Tom Tromey
  2003-08-02 21:54     ` Mark Wielaard
  2003-08-02 21:45   ` Mark Wielaard
  1 sibling, 1 reply; 8+ messages in thread
From: Tom Tromey @ 2003-08-02 16:55 UTC (permalink / raw)
  To: Jan Schulz; +Cc: eclipse

>>>>> "Jan" == Jan Schulz <jasc.usenet@gmx.de> writes:

>> It took me some time to convince eclipse to recognize gcj/gij/libgcj as
>> standard vm.

Jan> Does this mean that eclipse will run with a (patched?) gcj as
Jan> '*/bin/java' (not native, but in the VM)?

What Mark is talking about is using the JDT with gcj.  Right now that
is not easy to set up.

Note that once you have it set up, it still isn't perfect.  There is
no way to debug this setup with the JDT debugger.  One idea to make a
gdb wrapper that can speak JDWP.  I'm not sure if we're going to do
this or not.

Jan> [running natively]
Jan> What will happen with all the plugins? Are they still recognised when
Jan> eclipse is started as native binary? Are they still runable? 

We compile all the plugins we can, but not all of them are compiled.
In some cases libgcj is missing a needed package.  (And in some of
these cases we could remove a class or two and make it work -- e.g.,
sharing with the precompiled ant and tomcat is on our to-do list...)

So, we can still interpret the plugins that are not compiled.

One thing we'd like to do is modify the PDE to teach it about gcj.
Then it would be really easy to compile your own plugins.  This would
probably speed up compilation as well, since right now we just stick
everything on the class path for each compilation -- ugly.

Tom

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 15:44 ` Jan Schulz
  2003-08-02 16:55   ` Tom Tromey
@ 2003-08-02 21:45   ` Mark Wielaard
  1 sibling, 0 replies; 8+ messages in thread
From: Mark Wielaard @ 2003-08-02 21:45 UTC (permalink / raw)
  To: eclipse

Hi Jan,

On Sat, 2003-08-02 at 17:43, Jan Schulz wrote:
> Just something about me: I'm the debian maintainer of the eclipse
> packages and I taking this list and the binaries as something to learn
> from :) I would really be happy if eclipse could be run with a free
> VM. Unfortunatelly I don't have much experience with gcj, so please be
> patient with me. But I will read up te required knowledge...

No worries. Although gcj normally takes a "radically traditional"
approach to the language by just treating it as another thing to compile
to native code (like C, C++, Fortran, Mercury, etc.) it also comes with
gij, an interpreter for byte code. Although using gij doesn't give you
much of the advantages of normal natively compiled applications and
shared libraries produced with gcj. You can still play with it to see
what can be done in a way that might be more 

> * Mark Wielaard wrote:
> >It took me some time to convince eclipse to recognize gcj/gij/libgcj as
> >standard vm.
> 
> Does this mean that eclipse will run with a (patched?) gcj as
> '*/bin/java' (not native, but in the VM)?

With the just released RPMs I have been able to run the natively
compiled eclipse (eclipse plus plugins all compiled to native code). And
I have been able to run a traditional eclipse release (as downloaded
from eclipse.org) with just the gij interpreter that comes with those
RPMs. You can run such a traditional eclipse with the '-vm gij-ssa'
option. (Using the interpreter is clearly slower then using native code,
but I was surprized by how fast it still was.)

The /usr/bin/java script wrapper around gij is mostly for convenienve
since eclipse expects a java byte code interpreter (that is called
'java') to execute user created code. And it expects that java binary to
have the sun.boot.class.path system property to be set.

> [running natively]
> What will happen with all the plugins? Are they still recognised when
> eclipse is started as native binary? Are they still runable? 

I don't have that much experience with Eclipse but it seemed that most
things worked out of the box.

Cheers,

Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 16:55   ` Tom Tromey
@ 2003-08-02 21:54     ` Mark Wielaard
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Wielaard @ 2003-08-02 21:54 UTC (permalink / raw)
  To: eclipse

Hi,

On Sat, 2003-08-02 at 18:48, Tom Tromey wrote:
>
> What Mark is talking about is using the JDT with gcj.  Right now that
> is not easy to set up.

No, it took me a long time to figure out how to set it up. But once you
know that it expects a /usr/bin/java binary to be available and that
when running that binary on some byte code it can access the
system property sun.boot.class.path which should point to a jar or zip
file containing the core classes in byte code format then it is really
easy to setup:

- Install native eclipse (and the dependencies) from the RPMs you
  provided.
- Create a /usr/bin/java shell script containing to following:

        #!/bin/sh
        gij-ssa -Dsun.boot.class.path=/usr/share/java/libgcj-3.5-tree-ssa.jar $*
        
And you are done!

Just start using the new project -> java wizard
and new file -> class wizard and you have your Hello World program
running in seconds.

Cheers,

Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-02 13:55 Recognizing gcj as default StandardVM (JRE System Library) Mark Wielaard
  2003-08-02 15:44 ` Jan Schulz
  2003-08-02 16:07 ` Tom Tromey
@ 2003-08-08 16:08 ` Andrew Haley
  2003-08-14 17:38   ` Tom Tromey
  2 siblings, 1 reply; 8+ messages in thread
From: Andrew Haley @ 2003-08-08 16:08 UTC (permalink / raw)
  To: Mark Wielaard; +Cc: eclipse

Mark Wielaard writes:
 > Hi,
 > 
 > It took me some time to convince eclipse to recognize gcj/gij/libgcj as
 > standard vm. It is probably best to patch
 > org.eclipse.jdt.internal.launching.StandardVMType to better detect that
 > it is running as native binary. But for the moment I have just created a
 > /usr/bin/java executable which contains:
 > 
 > #!/bin/sh
 > /usr/bin/gij-ssa -Dsun.boot.class.path=/usr/share/java/libgcj-3.5-tree-ssa.jar $*

That's rather ingenious.  :-)

 > That way everything works out of the box for me.
 > (sun.boot.class.path is clearly not a documented standard system
 > property so Eclipse should really not use it.)

Oh, I dunno.  I found full docs for sun.boot.class.path on the
javasoft web site.

 > If there is a better way to do this, please let me know.

2003-08-08  Andrew Haley  <aph@redhat.com>

	* launching/org/eclipse/jdt/internal/launching/StandardVMType.java
	(fgCandidateJavaLocations): Add gij-ssa and gij.

Index: launching/org/eclipse/jdt/internal/launching/StandardVMType.java
===================================================================
RCS file: /usr/cygnus/eclipse-cvsroot/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java,v
retrieving revision 1.7
diff -c -2 -p -r1.7 StandardVMType.java
*** launching/org/eclipse/jdt/internal/launching/StandardVMType.java	16 Jun 2003 18:50:29 -0000	1.7
--- launching/org/eclipse/jdt/internal/launching/StandardVMType.java	8 Aug 2003 15:57:32 -0000
*************** public class StandardVMType extends Abst
*** 61,66 ****
  							"bin" + fgSeparator + "java.exe",                             //$NON-NLS-2$ //$NON-NLS-1$
  							"jre" + fgSeparator + "bin" + fgSeparator + "java",           //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
! 							"jre" + fgSeparator + "bin" + fgSeparator + "java.exe"};      //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$							
! 	
  	/**
  	 * Starting in the specified VM install location, attempt to find the 'java' executable
--- 61,68 ----
  							"bin" + fgSeparator + "java.exe",                             //$NON-NLS-2$ //$NON-NLS-1$
  							"jre" + fgSeparator + "bin" + fgSeparator + "java",           //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
! 							"jre" + fgSeparator + "bin" + fgSeparator + "java.exe",       //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
! 							"bin" + fgSeparator + "gij-ssa",                              //$NON-NLS-2$ //$NON-NLS-1$
! 							"bin" + fgSeparator + "gij"                                   //$NON-NLS-2$ //$NON-NLS-1$
! 	};
  	/**
  	 * Starting in the specified VM install location, attempt to find the 'java' executable
2003-08-08  Andrew Haley  <aph@redhat.com>

	* Makefile.am (AM_CXXFLAGS): Define BOOT_CLASS_PATH.
	* Makefile.in: Rebuild.

	* java/lang/natRuntime.cc (insertSystemProperties): Add
	"sun.boot.class.path".

Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.311
diff -c -2 -p -w -r1.311 Makefile.am
*** Makefile.am 27 Jul 2003 19:04:41 -0000      1.311
--- Makefile.am 8 Aug 2003 15:49:40 -0000
*************** AM_CXXFLAGS = -fno-rtti -fnon-call-excep
*** 102,106 ****
        -Wswitch-enum \
        @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
!       -DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\""
  if USING_GCC
  AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS)
--- 102,107 ----
        -Wswitch-enum \
        @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
!       -DPREFIX="\"$(prefix)\"" -DLIBDIR="\"$(libdir)\"" \
!       -DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\""
  if USING_GCC
  AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS)
Index: java/lang/natRuntime.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/natRuntime.cc,v
retrieving revision 1.38
diff -c -2 -p -w -r1.38 natRuntime.cc
*** java/lang/natRuntime.cc     25 Jul 2003 13:04:15 -0000      1.38
--- java/lang/natRuntime.cc     8 Aug 2003 15:49:40 -0000
*************** java::lang::Runtime::insertSystemPropert
*** 586,589 ****
--- 586,592 ----
                      sb->toString ());
      }
+ 
+   // The path to libgcj's boot classes
+   SET ("sun.boot.class.path", BOOT_CLASS_PATH);
  
    // The name used to invoke this process (argv[0] in C).

Andrew.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Recognizing gcj as default StandardVM (JRE System Library)
  2003-08-08 16:08 ` Andrew Haley
@ 2003-08-14 17:38   ` Tom Tromey
  0 siblings, 0 replies; 8+ messages in thread
From: Tom Tromey @ 2003-08-14 17:38 UTC (permalink / raw)
  To: Andrew Haley; +Cc: Mark Wielaard, eclipse

>>>>> "Andrew" == Andrew Haley <aph@redhat.com> writes:

Andrew> 2003-08-08  Andrew Haley  <aph@redhat.com>
Andrew> 	* launching/org/eclipse/jdt/internal/launching/StandardVMType.java
Andrew> 	(fgCandidateJavaLocations): Add gij-ssa and gij.

BTW, this is the sort of patch we could put into an eclipse.org
bugzilla PR for eventual application to the upstream eclipse.

I wouldn't mind if PRs like this had a `CC: eclipse@sources.redhat.com'
so that we would automatically be notified of changes affecting us...

Tom

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2003-08-14 17:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-02 13:55 Recognizing gcj as default StandardVM (JRE System Library) Mark Wielaard
2003-08-02 15:44 ` Jan Schulz
2003-08-02 16:55   ` Tom Tromey
2003-08-02 21:54     ` Mark Wielaard
2003-08-02 21:45   ` Mark Wielaard
2003-08-02 16:07 ` Tom Tromey
2003-08-08 16:08 ` Andrew Haley
2003-08-14 17:38   ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).