OpenJDK 8 and fastdebug

Henri Gomez henri.gomez at gmail.com
Sat Apr 21 04:33:22 PDT 2012


Could you contribute this patch ?

For binutils, i'll check with stock and MacPorts versions.  

Le 20 avr. 2012 à 19:57, Chris Dennis <cdennis at terracottatech.com> a écrit :

> The last time I tried this you needed to patch binutils on Mac OS because of the tighter restrictions on accessing "environ".
> 
> You'll need to do something like this (I forget where it's used):
> 
> #ifdef __APPLE__
> #include <crt_externs.h>
> #define environ (*_NSGetEnviron())
> #endif
> 
> On Apr 20, 2012, at 1:42 PM, Volker Simonis wrote:
> 
>> Actually there is no.
>> 
>> But it's very easy to build hsdis - it's just one .c and one .h file.
>> You just need to build binutils for your platform first (.configure;
>> make) and than compile and link hsdis.c against libbfd.a, libopcodes.a
>> and libiberty.a from binutils.
>> This all can easily be done manually with just a few commands but it
>> would be of course much better if you could provide a patch for the
>> Makefile:)
>> 
>> 
>> On Fri, Apr 20, 2012 at 6:52 PM, Henri Gomez <henri.gomez at gmail.com> wrote:
>>> I'll look into build logs (thanks Jenkins)
>>> 
>>> BTW, I didn't see OSX or Darwin support into hsdis Makefile.
>>> 
>>> Le 20 avr. 2012 à 17:08, Volker Simonis <volker.simonis at gmail.com> a écrit :
>>> 
>>>> Somehow you managed to build a "fastdebug" JDK with a still optimized
>>>> HotSpot VM:
>>>> 
>>>> OpenJDK 64-Bit Server VM (build 24.0-b04, mixed mode)
>>>> 
>>>> For -XX:+PrintOptoAssembly to work, you need a debug or fastdebug VM:
>>>> 
>>>> OpenJDK 64-Bit Server VM (build 22.0-b01-internal-jvmg, mixed mode)
>>>> 
>>>> You can easily build it from hotspot/src/make with these commands
>>>> 
>>>> ALT_BOOTDIR=<java_7_directory>
>>>> ALT_OUTPUTDIR=<your_favourite_output_dir> make jvmg
>>>> ALT_BOOTDIR=<java_7_directory>
>>>> ALT_OUTPUTDIR=<your_favourite_output_dir> make fastdebug
>>>> 
>>>> for the debug and fastdebug case.
>>>> 
>>>> Or you can try to find out why SKIP_FASTDEBUG_BUILD=false hasn't been
>>>> properly propagated into the HotSpot make file:)
>>>> 
>>>> Regards,
>>>> Volker
>>>> 
>>>> On Fri, Apr 20, 2012 at 1:58 PM, Henri Gomez <henri.gomez at gmail.com> wrote:
>>>>> Well, it seems my build is not fully debug enabled :
>>>>> 
>>>>> java -version -XX:+PrintOptoAssembly
>>>>> openjdk version "1.8.0-jdk8-b30-x64-lambda-fastdebug"
>>>>> OpenJDK Runtime Environment (build 1.8.0-jdk8-b30-x64-lambda-fastdebug-20120420)
>>>>> OpenJDK 64-Bit Server VM (build 24.0-b04, mixed mode)
>>>>> 
>>>>> ---
>>>>> 
>>>>> java -XX:+PrintOptoAssembly
>>>>> Unrecognized VM option 'PrintOptoAssembly'
>>>>> Error: Could not create the Java Virtual Machine.
>>>>> Error: A fatal exception has occurred. Program will exit.
>>>>> 
>>>>> ---
>>>>> 
>>>>> java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
>>>>> OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on
>>>>> DebugNonSafepoints to gain additional output
>>>>> Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly
>>>>> is disabled
>>>>> Syntaxe : java [-options] class [args...]
>>>>> 
>>>>> Hum ;-(
>>>>> 
>>>>> 2012/4/20 Remi Forax <forax at univ-mlv.fr>:
>>>>>> Just hsdis, but maybe the one from Graal that use a better assembler syntax.
>>>>>> 
>>>>>> Rémi
>>>>>> 
>>>>>> Sent from my Phone
>>>>>> 
>>>>>> ----- Reply message -----
>>>>>> From: "Krystal Mok" <rednaxelafx at gmail.com>
>>>>>> To: "Remi Forax" <forax at univ-mlv.fr>
>>>>>> Cc: <jdk8-dev at openjdk.java.net>
>>>>>> Subject: OpenJDK 8 and fastdebug
>>>>>> Date: Fri, Apr 20, 2012 09:44
>>>>>> I see. That makes sense.BTW, is it hsdis, or is there a new disassembler plugin?
>>>>>> 
>>>>>> - Kris
>>>>>> 
>>>>>> On Fri, Apr 20, 2012 at 3:35 PM, Remi Forax <forax at univ-mlv.fr> wrote:
>>>>>> 
>>>>>> The idea is to bundle jadis with the fast debug VM.
>>>>>> 
>>>>>> Rémi
>>>>>> 
>>>>>> Sent from my Phone
>>>>>> 
>>>>>> 
>>>>>> ----- Reply message -----
>>>>>> From: "Krystal Mok" <rednaxelafx at gmail.com>
>>>>>> To: "Rémi Forax" <forax at univ-mlv.fr>
>>>>>> 
>>>>>> Cc: <jdk8-dev at openjdk.java.net>
>>>>>> Subject: OpenJDK 8 and fastdebug
>>>>>> Date: Fri, Apr 20, 2012 08:55
>>>>>> 
>>>>>> 
>>>>>> PrintAssembly is available in product builds, too. You'll just need to set -XX:+UnlockDiagnosticVMOptions before setting -XX:+PrintAssembly.
>>>>>> 
>>>>>> On the other hand, -XX:+PrintOptoAssembly is only available in a debug build.
>>>>>> 
>>>>>> - Kris
>>>>>> 
>>>>>> On Fri, Apr 20, 2012 at 2:00 PM, Rémi Forax <forax at univ-mlv.fr> wrote:
>>>>>> 
>>>>>> 
>>>>>> On 04/20/2012 07:28 AM, Henri Gomez wrote:
>>>>>> 
>>>>>> 
>>>>>> Just set
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> SKIP_FASTDEBUG_BUILD=false
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> (I don't know what role DEBUG_NAME plays)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Relative question, how can I check a java exec is in fastdebug mode ?
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Check "java -version", it will show it is fastdebug.
>>>>>> 
>>>>>> 
>>>>>> It seems good (http://openjdk-osx-build.googlecode.com/files/OpenJDK-OSX-8-x64-lambda-fastdebug-jdk-b30-20120420.dmg)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> openjdk version "1.8.0-jdk8-b30-x64-lambda-fastdebug"
>>>>>> 
>>>>>> OpenJDK Runtime Environment (build 1.8.0-jdk8-b30-x64-lambda-fastdebug-20120420)
>>>>>> 
>>>>>> OpenJDK 64-Bit Server VM (build 24.0-b04, mixed mode)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Thanks
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Many thanks, Henry,
>>>>>> 
>>>>>> now people can use -XX:+PrintAssembly :)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Rémi
> 


More information about the jdk8-dev mailing list