RFR (M): 8008772: remove gamma launcher

Nils Eliasson nils.eliasson at oracle.com
Wed May 1 20:41:17 UTC 2013


Hi,

Here is a patch that fixes so that it still works to create vcprojs, and 
also sets defaults for the debugger commands.

I have verified with creating vcprojs and debugging hotspot in VS 2010. 
Works great except for an annoying pop-up that warns that the launcher 
doesn't have debug symbols (if the target jdk doesn't).

It will still be some extra work for those using the commandlines 
plugin. All saved command lines need the be prepended with 
"-XXaltjvm=$(TargetDir) -Dsun.java.launcher=gamma" and the target JDK 
set as executable to work. We should update the plugin to help with that.

A big thank you to Christian Törnqvist for the proposal!

//Nils


On 2013-04-23 20:33, Mikael Gerdin wrote:
>
> On 2013-04-23 20:28, Christian Thalinger wrote:
>>
>> On Apr 23, 2013, at 11:06 AM, Nils Eliasson 
>> <nils.eliasson at oracle.com> wrote:
>>
>>> As long as we fix it first and remove gamma after - I would love to 
>>> have some redundant code removed. I would fix it myself, I just 
>>> don't think I will have the time before I go on parental leave.
>>
>> First, I'm not removing it tomorrow.  I expected a long discussion :-)
>>
>> What exactly is the problem with Visual Studio?  Why can't you just 
>> run the java launcher instead?
>>
>
> I don't know if there actually is a problem, but I don't think 
> anyone's actually tried to tell it to use the java launcher.
> The VS project is automatically setup to launch "hotspot.exe" from the 
> IDE. "hotspot.exe" is equivalent to the old option LINK_INTO=AOUT 
> (IIRC) which involves linking all the VM object files into the launcher.
>
> Nils, perhaps you can at least try this before you leave?
>
> /Mikael
>
>> -- Chris
>>
>>>
>>> //Nils
>>>
>>> On 2013-04-23 12:59, Mikael Gerdin wrote:
>>>>
>>>>
>>>> On 2013-04-23 11:09, Nils Eliasson wrote:
>>>>> The gamma launcher is used to run and debug hotspot from Visual 
>>>>> Studio.
>>>>> So removing gamma effectively kills the working environment for a 
>>>>> number
>>>>> of people that use it daily.  So I am strongly against removing it.
>>>>
>>>> Maybe the visual studio project generator could be updated to 
>>>> create a a "launch configuration" for launching java.exe from a JDK 
>>>> and use the XXaltJVM flag on to select the correct jvm.dll?
>>>>
>>>> I agree that we shouldn't break the visual studio project but 
>>>> currently there's nothing indicating that we can't fix it.
>>>>
>>>>
>>>> /Mikael
>>>>
>>>>>
>>>>> Most people working on Windows use Cygwin as the last resort since it
>>>>> makes a lot of thing excruciatingly slow.
>>>>>
>>>>> //Nils
>>>>>
>>>>> On 2013-04-22 22:55, Christian Thalinger wrote:
>>>>>> On Apr 22, 2013, at 1:36 PM, Daniel D. Daugherty
>>>>>> <daniel.daugherty at oracle.com> wrote:
>>>>>>
>>>>>>> Chris,
>>>>>>>
>>>>>>> Just an observation and not a review.
>>>>>>>
>>>>>>> Looks like you're removing launcher support on Windows, but it
>>>>>>> looks like the new hotspot.script doesn't support Windows...
>>>>>>> Am I missing something?
>>>>>> Almost certainly true.  Since I'm not a Windows user (and nobody 
>>>>>> near
>>>>>> me is one) I have no idea how people are using the gamma launcher on
>>>>>> Windows (or the hotspot script for that matter).
>>>>>>
>>>>>> I presume most people doing debugging on the command line are 
>>>>>> already
>>>>>> in cygwin?  But I might be wrong.
>>>>>>
>>>>>> -- Chris
>>>>>>
>>>>>>> Dan
>>>>>>>
>>>>>>>
>>>>>>> On 4/22/13 1:47 PM, Christian Thalinger wrote:
>>>>>>>> http://cr.openjdk.java.net/~twisti/8008772/
>>>>>>>>
>>>>>>>> 8008772: remove gamma launcher
>>>>>>>> Reviewed-by:
>>>>>>>>
>>>>>>>> Remove linking the gamma launcher and it's associated source 
>>>>>>>> files.
>>>>>>>>
>>>>>>>> make/Makefile
>>>>>>>> make/bsd/makefiles/launcher.make
>>>>>>>> make/bsd/makefiles/vm.make
>>>>>>>> make/hotspot.script
>>>>>>>> make/linux/makefiles/launcher.make
>>>>>>>> make/linux/makefiles/vm.make
>>>>>>>> make/solaris/makefiles/launcher.make
>>>>>>>> make/solaris/makefiles/vm.make
>>>>>>>> make/windows/makefiles/debug.make
>>>>>>>> make/windows/makefiles/fastdebug.make
>>>>>>>> make/windows/makefiles/launcher.make
>>>>>>>> make/windows/makefiles/product.make
>>>>>>>> make/windows/makefiles/projectcreator.make
>>>>>>>> make/windows/projectfiles/common/Makefile
>>>>>>>> src/os/posix/launcher/java_md.c
>>>>>>>> src/os/posix/launcher/java_md.h
>>>>>>>> src/os/posix/launcher/launcher.script
>>>>>>>> src/os/windows/launcher/java_md.c
>>>>>>>> src/os/windows/launcher/java_md.h
>>>>>>>> src/share/tools/launcher/java.c
>>>>>>>> src/share/tools/launcher/java.h
>>>>>>>> src/share/tools/launcher/jli_util.c
>>>>>>>> src/share/tools/launcher/jli_util.h
>>>>>>>> src/share/tools/launcher/wildcard.c
>>>>>>>> src/share/tools/launcher/wildcard.h
>>>>>>>>
>>>>>>>> This change removes the duplicated java launcher files (which were
>>>>>>>> subject to bit-rot) and modifies the hotspot script to pick up the
>>>>>>>> libjvm in the current build directory.
>>>>>>>>
>>>>>>>> The modified hotspot script works with GDB and DBX:
>>>>>>>>
>>>>>>>> cthaling at intelsdv03.us.oracle.com:/export/twisti/build/8008772/build/linux_i486_compiler2/debug$ 
>>>>>>>>
>>>>>>>> ./hotspot -gdb -version
>>>>>>>> GNU gdb (GDB) Red Hat Enterprise Linux (7.1-29.el6)
>>>>>>>> Copyright (C) 2010 Free Software Foundation, Inc.
>>>>>>>> License GPLv3+: GNU GPL version 3 or later
>>>>>>>> <http://gnu.org/licenses/gpl.html>
>>>>>>>> This is free software: you are free to change and redistribute it.
>>>>>>>> There is NO WARRANTY, to the extent permitted by law. Type "show
>>>>>>>> copying"
>>>>>>>> and "show warranty" for details.
>>>>>>>> This GDB was configured as "x86_64-redhat-linux-gnu".
>>>>>>>> For bug reporting instructions, please see:
>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>>>>>> Missing separate debuginfo for
>>>>>>>> /net/scanas404.us.oracle.com/export/java-re/jdk/8/ea/b86/binaries/linux-i586/bin/java 
>>>>>>>>
>>>>>>>>
>>>>>>>> Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install
>>>>>>>> /usr/lib/debug/.build-id/5e/85e6dced3b388a7b0e50630242f4c7ee5e31a3.debug 
>>>>>>>>
>>>>>>>>
>>>>>>>> Function "JNI_CreateJavaVM" not defined.
>>>>>>>> Breakpoint 1 (JNI_CreateJavaVM) pending.
>>>>>>>> [Thread debugging using libthread_db enabled]
>>>>>>>> [New Thread 0xf7fe4b70 (LWP 13459)]
>>>>>>>> [Switching to Thread 0xf7fe4b70 (LWP 13459)]
>>>>>>>>
>>>>>>>> Breakpoint 1, JNI_CreateJavaVM (vm=0xf7fe4378, penv=0xf7fe4374,
>>>>>>>> args=0xf7fe4364)
>>>>>>>>      at
>>>>>>>> /net/10.159.161.234/Users/cthaling/ws/8008772/src/share/vm/prims/jni.cpp:5062 
>>>>>>>>
>>>>>>>>
>>>>>>>> 5062      jint result = JNI_ERR;
>>>>>>>> Missing separate debuginfos, use: debuginfo-install
>>>>>>>> glibc-2.12-1.7.el6.i686
>>>>>>>> (gdb) break CompileBroker::compile_method
>>>>>>>> Breakpoint 2 at 0xaef852: file
>>>>>>>> /net/10.159.161.234/Users/cthaling/ws/8008772/src/share/vm/compiler/compileBroker.cpp, 
>>>>>>>>
>>>>>>>> line 1205.
>>>>>>>> (gdb) c
>>>>>>>> Continuing.
>>>>>>>> [New Thread 0xf7f93b70 (LWP 13460)]
>>>>>>>> [New Thread 0xb4398b70 (LWP 13461)]
>>>>>>>> [New Thread 0xb41ffb70 (LWP 13462)]
>>>>>>>> [New Thread 0xb3effb70 (LWP 13463)]
>>>>>>>> [New Thread 0xb3cffb70 (LWP 13464)]
>>>>>>>> [New Thread 0xb3affb70 (LWP 13465)]
>>>>>>>> [New Thread 0xb38ffb70 (LWP 13466)]
>>>>>>>> [New Thread 0xb36ffb70 (LWP 13467)]
>>>>>>>> [New Thread 0xb34ffb70 (LWP 13468)]
>>>>>>>> [New Thread 0xb32ffb70 (LWP 13469)]
>>>>>>>> [New Thread 0xb30ffb70 (LWP 13470)]
>>>>>>>> [New Thread 0xb2effb70 (LWP 13471)]
>>>>>>>> [New Thread 0xb2cffb70 (LWP 13472)]
>>>>>>>> [New Thread 0xaf8e8b70 (LWP 13473)]
>>>>>>>> [New Thread 0xb4156b70 (LWP 13474)]
>>>>>>>> [New Thread 0xb3c7eb70 (LWP 13475)]
>>>>>>>> [New Thread 0xb3a7eb70 (LWP 13476)]
>>>>>>>> [New Thread 0xaeeffb70 (LWP 13477)]
>>>>>>>> [New Thread 0xaecffb70 (LWP 13478)]
>>>>>>>> [New Thread 0xb387eb70 (LWP 13479)]
>>>>>>>> [New Thread 0xaeaffb70 (LWP 13480)]
>>>>>>>> java version "1.8.0-ea"
>>>>>>>> Java(TM) SE Runtime Environment (build 1.8.0-ea-b86)
>>>>>>>> Java HotSpot(TM) Server VM (build 25.0-b29-internal-debug, 
>>>>>>>> mixed mode)
>>>>>>>> [Thread 0xaeaffb70 (LWP 13480) exited]
>>>>>>>> [Thread 0xb3a7eb70 (LWP 13476) exited]
>>>>>>>> [Thread 0xaf8e8b70 (LWP 13473) exited]
>>>>>>>> [Thread 0xf7fe4b70 (LWP 13459) exited]
>>>>>>>> [Thread 0xb2cffb70 (LWP 13472) exited]
>>>>>>>> [Thread 0xb2effb70 (LWP 13471) exited]
>>>>>>>> [Thread 0xaecffb70 (LWP 13478) exited]
>>>>>>>> [Thread 0xb387eb70 (LWP 13479) exited]
>>>>>>>> [Thread 0xaeeffb70 (LWP 13477) exited]
>>>>>>>> [Thread 0xb3c7eb70 (LWP 13475) exited]
>>>>>>>> [Thread 0xb4156b70 (LWP 13474) exited]
>>>>>>>> [Thread 0xb32ffb70 (LWP 13469) exited]
>>>>>>>> [Thread 0xb34ffb70 (LWP 13468) exited]
>>>>>>>> [Thread 0xb36ffb70 (LWP 13467) exited]
>>>>>>>> [Thread 0xb38ffb70 (LWP 13466) exited]
>>>>>>>> [Thread 0xb3affb70 (LWP 13465) exited]
>>>>>>>> [Thread 0xb3cffb70 (LWP 13464) exited]
>>>>>>>> [Thread 0xb3effb70 (LWP 13463) exited]
>>>>>>>> [Thread 0xb41ffb70 (LWP 13462) exited]
>>>>>>>> [Thread 0xb4398b70 (LWP 13461) exited]
>>>>>>>> [Thread 0xf7f93b70 (LWP 13460) exited]
>>>>>>>> [Thread 0xb30ffb70 (LWP 13470) exited]
>>>>>>>>
>>>>>>>> Program exited normally.
>>>>>>>> (gdb)
>>>>>>>>
>>>>>>>>
>>>>>>>> cthaling at intelsdv01:/export/twisti/build/8008772/build/solaris_i486_compiler2/debug$ 
>>>>>>>>
>>>>>>>> /bin/bash ./hotspot -dbx -version
>>>>>>>> dbx: warning: using the alternate init file: /home/cthaling/.dbxrc
>>>>>>>> Reading java
>>>>>>>> Reading ld.so.1
>>>>>>>> Reading libjli.so
>>>>>>>> Reading libthread.so.1
>>>>>>>> Reading libdl.so.1
>>>>>>>> Reading libc.so.1
>>>>>>>> Reading libjvm.so
>>>>>>>> Loaded loadobject:
>>>>>>>> /export/twisti/build/8008772/build/solaris_i486_compiler2/debug/libjvm.so 
>>>>>>>>
>>>>>>>>
>>>>>>>> Running: java -Dsun.java.launcher=gamma
>>>>>>>> -XXaltjvm=/export/twisti/build/8008772/build/solaris_i486_compiler2/debug 
>>>>>>>>
>>>>>>>> -version
>>>>>>>> (process id 29613)
>>>>>>>> Reading libsocket.so.1
>>>>>>>> Reading libsched.so.1
>>>>>>>> Reading libm.so.1
>>>>>>>> Reading libCrun.so.1
>>>>>>>> Reading libdoor.so.1
>>>>>>>> Reading libdemangle.so.1
>>>>>>>> Reading libnsl.so.1
>>>>>>>> Reading libm.so.2
>>>>>>>> Reading libscf.so.1
>>>>>>>> Reading libuutil.so.1
>>>>>>>> Reading libgen.so.1
>>>>>>>> Reading libmd.so.1
>>>>>>>> Reading libmp.so.2
>>>>>>>> t at 2 (l at 2) stopped in JNI_CreateJavaVM at line 5062 in file 
>>>>>>>> "jni.cpp"
>>>>>>>>   5062     jint result = JNI_ERR;
>>>>>>>> (dbx) stop in CompileBroker::compile_method
>>>>>>>> (2) stop in
>>>>>>>> CompileBroker::compile_method(methodHandle,int,int,methodHandle,int,const 
>>>>>>>>
>>>>>>>> char*,Thread*)
>>>>>>>> (dbx) c
>>>>>>>> Reading libverify.so
>>>>>>>> Reading libjava.so
>>>>>>>> Reading libzip.so
>>>>>>>> java version "1.8.0-ea"
>>>>>>>> Java(TM) SE Runtime Environment (build 1.8.0-ea-b86)
>>>>>>>> Java HotSpot(TM) Server VM (build 25.0-b29-internal-debug, 
>>>>>>>> mixed mode)
>>>>>>>>
>>>>>>>> execution completed, exit code is 0
>>>>>>>> (dbx)
>>>>>>>>
>>>>>
>>>
>>



More information about the build-dev mailing list