The SDT support is maintained by the IcedTea folks. Perhaps asking on their 
email list [1] would get you closer, or on the hotspot-dev list.

/Staffan

[1] http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev

> On 12 maj 2015, at 10:21, Mahesh Pujari <pujarimahesh_ku...@yahoo.com> wrote:
> 
> I think I have mixed up things, like thinking SDT and dtrace4linux as same, 
> but there are not as pointed out by Staffan.
> 
> So first I build jdk9 with not having SDT headers i.e. not having 
> systemtap-dev. Build was success as expected.
> 
> Next I did a build having SDT headers in path (i.e. I having installed 
> systemtap and systemtap-dev), as pointed out by David, dtrace will be enabled 
> by default, it seems its working as expected, i.e. dtrace was enabled but the 
> build failed with below error.
> 
> In file included from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/utilities/dtrace.hpp:49:0,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/utilities/hashtable.inline.hpp:31,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/classfile/systemDictionary.hpp:35,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/ci/ciEnv.hpp:30,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/ci/ciUtilities.hpp:28,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/ci/ciNullObject.hpp:30,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/ci/ciConstant.hpp:29,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/ci/ciArray.hpp:29,
>                  from 
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/precompiled/precompiled.hpp:33:
> ../generated/dtracefiles/hotspot.h:14:5: error: "_DTRACE_VERSION" is not 
> defined [-Werror=undef]
> 
> To fix this, I re-configured with 
> "--with-extra-cflags=-D_DTRACE_VERSION=true" and did "make all LOG=info", now 
> compilation are success but linking failed (lot of them), few of the logs as 
> below
> 
> Compiling /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vm_version.cpp
> Linking vm...
> classLoadingService.o: In function 
> `ClassLoadingService::notify_class_unloaded(InstanceKlass*)':
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:119:
>  undefined reference to `__dtrace_hotspot___class__unloaded'
> classLoadingService.o: In function 
> `ClassLoadingService::notify_class_loaded(InstanceKlass*, bool)':
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:144:
>  undefined reference to `__dtrace_hotspot___class__loaded'
> compileBroker.o: In function 
> `CompileBroker::invoke_compiler_on_method(CompileTask*)':
> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/compiler/compileBroker.cpp:1927: 
> undefined reference to `__dtrace_hotspot___method__compile__begin'
> 
> 
> Do I need to install some other libraries, what am I missing here.
> 
> thanks and regards,
> Mahesh Pujari
> 
> 
> 
> On Monday, May 11, 2015 5:08 PM, Staffan Larsen <staffan.lar...@oracle.com> 
> wrote:
> 
> 
> Note that SDT and dtrace4linux are different things. As far as I know, no one 
> has tried dtrace4linux with Hotspot so you are in uncharted territories. SDT 
> should work (if installed). Oracle Linux also has an implementation of Dtrace 
> that I think is different from dtrace4linux. This is also untested.
> 
> /Staffan
> 
> 
> 
> > On 11 maj 2015, at 13:21, David Holmes <david.hol...@oracle.com 
> > <mailto:david.hol...@oracle.com>> wrote:
> > 
> > On 11/05/2015 8:51 PM, Mahesh Pujari wrote:
> >> Thanks for replying back Erik.
> >> I ran as you stated i.e. using "make DTRACE_ENABLED=true" but then I 
> >> realized that the configure that I was running would do the same i.e. by 
> >> having CFLAGS=-DDTRACE_ENABLED=1.
> > 
> > No it isn't the same. The linux/makefiles/dtrace.make looks for 
> > DTRACE_ENABLED and will define additional targets if it is set, as well as 
> > setting -DDTRACE_ENABLED. If you just set the define then you miss other 
> > things.
> > 
> > But that aside you don't set DTRACE_ENABLED either. dtrace will be enabled 
> > if the SDT header file is found. If you just do a build without trying to 
> > force dtrace on what does the log show?
> > 
> > David
> > -----
> > 
> >> When I make (using your approach and passing enable in configure), I end 
> >> up with lots and lots of "undefined reference to" errors during make, 
> >> seems I am missing something, below are some error from build.logs.
> >> classLoadingService.o: In function 
> >> `ClassLoadingService::notify_class_unloaded(InstanceKlass*)':
> >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:119:
> >>  undefined reference to `__dtrace_hotspot___class__unloaded'
> >> classLoadingService.o: In function 
> >> `ClassLoadingService::notify_class_loaded(InstanceKlass*, bool)':
> >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/services/classLoadingService.cpp:144:
> >>  undefined reference to `__dtrace_hotspot___class__loaded'
> >> compileBroker.o: In function 
> >> `CompileBroker::invoke_compiler_on_method(CompileTask*)':
> >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/compiler/compileBroker.cpp:1927: 
> >> undefined reference to `__dtrace_hotspot___method__compile__begin'
> >> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/compiler/compileBroker.cpp:2028: 
> >> undefined reference to `__dtrace_hotspot___method__compile__end'
> >> 
> >> thanks and regards,Mahesh Pujari
> >> 
> >> 
> >> 
> >>      On Monday, May 11, 2015 3:53 PM, Erik Joelsson 
> >> <erik.joels...@oracle.com <mailto:erik.joels...@oracle.com>> wrote:
> >> 
> >> 
> >>  Hello,
> >> 
> >> I don't have any experience building with dtrace support, but the
> >> Hotspot makefiles seem to imply that it can be achieved by running:
> >> 
> >> make DTRACE_ENABLED=true
> >> 
> >> That variable will trigger the appropriate preprocessor flags to be
> >> added at least. See hotspot/make/linux/makefiles/dtrace.make.
> >> 
> >> The jdk libraries do not support dtrace AFAIK.
> >> 
> >> /Erik
> >> 
> >> On 2015-05-11 11:47, Mahesh Pujari wrote:
> >>> Hi all,
> >>> I am trying make OpenJdk 9 with dtrace enabled, on my Ubuntu machine 
> >>> (installed with https://github.com/dtrace4linux/linux 
> >>> <https://github.com/dtrace4linux/linux>), with configuration as below 
> >>> (and I am noob).
> >>> ./configure --enable-option-checking=fatal --with-debug-level=slowdebug 
> >>> --with-target-bits=64 --disable-zip-debug-info 
> >>> --with-boot-jdk=/mnt/ubuntu/setup/jdk1.8.0 CFLAGS=-DDTRACE_ENABLED=1 
> >>> --with-extra-cflags=-D_DTRACE_VERSION=1
> >>> 
> >>> Below is my system info (using uname -a)Linux PHP0045 3.13.0-45-generic 
> >>> #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
> >>> 
> >>> When I do "make all", I end up in error as below...
> >>> ...
> >>> vmThread.o: In function `VMOperationQueue::add(VM_Operation*)':
> >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:156: 
> >>> undefined reference to `__dtrace_hotspot___vmops__request'
> >>> vmThread.o: In function `VMThread::evaluate_operation(VM_Operation*)':
> >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:354: 
> >>> undefined reference to `__dtrace_hotspot___vmops__begin'
> >>> /mnt/ubuntu/dev/jdk9/hotspot/src/share/vm/runtime/vmThread.cpp:374: 
> >>> undefined reference to `__dtrace_hotspot___vmops__end'......
> >>> 
> >>> Can some one direct me about what I might be missing. Can we actually 
> >>> build dtrace with enabled on Ubuntu, if not what other way I can do 
> >>> tracing (may be using systemtap, any pointers please). Am I on right 
> >>> track? (please direct).
> >>> 
> >>> 
> >>> thanks and regards,Mahesh Pujari
> >> 
> >> 
> >> 
> >> 
> >> 
> 
> 

Reply via email to