hotspot atom editor integration

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Aug 28 12:43:15 UTC 2017



On 21/08/17 13:30, Erik Joelsson wrote:
> For each generated object file, there is a corresponding .cmdline file 
> which contains the full compile command line. That file can be parsed 
> to extract the relevant flags that were used, and is probably easier 
> to work with than parsing a debug build log.
I noticed those. That's how I got started.

I've created a small makefile that extracts the relevant configuration 
(this is inspired by my former work on creating an IntelliJ template 
project) - webrev available here

http://cr.openjdk.java.net/~mcimadamore/hotspot_flags/

Probably we'd want to remove references to 'atom' in the targets and 
script - but I think something like this could be very useful for 
integration of hotspot with IDE (I think Netbeans and Eclipse CDT need 
something very similar to get started).

Maurizio

>
> /Erik
>
>
> On 2017-08-11 15:37, Maurizio Cimadamore wrote:
>> Hi,
>> over the last few days I've been looking at integrating hotspot with 
>> the Atom editor [1]. I managed to do it successfully and I can now 
>> debug hotspot from Atom and even enable code completion (requires 
>> clang plugin [2]). Regarding code completion, to make it work, you 
>> have to come up with a file named ".clang_complete", which contains 
>> all the options that should be passed to the clang compiler. In my 
>> case, such options are
>>
>> -I/w/valhalla/hotspot/src/os/linux/vm
>> -I/w/valhalla/hotspot/src/share/vm
>> -I/w/valhalla/hotspot/src/share/vm/precompiled
>> -I/w/valhalla/hotspot/src/cpu/x86/vm
>> -I/w/valhalla/hotspot/src/os_cpu/linux_x86/vm
>> -I/w/valhalla/hotspot/src/os/posix/vm/
>> -I/w/valhalla/hotspot/test/native/logging
>> -I/w/valhalla/hotspot/test/native
>> -I/w/valhalla/build/linux-x86_64-normal-server-slowdebug/hotspot/variant-server/gensrc/ 
>>
>> -I/w/valhalla/build/linux-x86_64-normal-server-slowdebug/jdk/include/
>> -std=gnu++98
>> -D_GNU_SOURCE
>> -D_REENTRANT
>> -fcheck-new
>> -D__STDC_FORMAT_MACROS
>> -D__STDC_LIMIT_MACROS
>> -D__STDC_CONSTANT_MACROS
>> -DSUPPORTS_CLOCK_MONOTONIC
>> -DLINUX
>> -pipe
>> -fPIC
>> -fno-rtti
>> -fno-exceptions
>> -fvisibility=hidden
>> -fno-strict-aliasing
>> -fno-omit-frame-pointer
>> -DVM_LITTLE_ENDIAN
>> -D_LP64=1
>> -Wpointer-arith
>> -Wsign-compare
>> -Wunused-function
>> -Wunused-value
>> -Woverloaded-virtual
>> -Wno-format-zero-length
>> -Wtype-limits
>> -Wuninitialized
>> -Wreturn-type
>> -Wundef
>> -Wformat=2
>> -DASSERT
>> -D_NMT_NOINLINE_
>> -DTARGET_ARCH_x86
>> -DINCLUDE_SUFFIX_OS=_linux
>> -DINCLUDE_SUFFIX_CPU=_x86
>> -DINCLUDE_SUFFIX_COMPILER=_gcc
>> -DTARGET_COMPILER_gcc
>> -DAMD64 -DHOTSPOT_LIB_ARCH='"amd64"'
>> -DCOMPILER1
>> -DCOMPILER2
>> -DINCLUDE_AOT
>>
>> I mostly obtained them through a combination of trial and error and 
>> looking at the various build log, to try and figure out how gcc was 
>> called on my env. My question is - is there a way to obtain such 
>> flags in a more systematic way using the build system? I presume that 
>> hotspot IDE integration (not just for Atom) depends on something like 
>> that - as otherwise the IDE doesn't know where to find sources, and 
>> which flags/define should be used to process hpp files.
>>
>> In other words, is there a way to write a script to generate the 
>> above automatically, and in a robust way?
>>
>> [1] - https://atom.io/
>>
>> Cheers
>> Maurizio
>>
>>
>




More information about the build-dev mailing list