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