Issues with dtrace enabled in OpenJdk 9
david.holmes at oracle.com
Mon May 11 11:21:09 UTC 2015
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
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?
> 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.joelsson at oracle.com> wrote:
> 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.
> 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), 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
More information about the build-dev