On 21 maj 2013, at 18:33, Kelly O'Hair <kellyoh...@gmail.com> wrote:
> http://jeremymanson.blogspot.com/2007/05/profiling-with-jvmtijvmpi-sigprof-and.html > http://stackoverflow.com/questions/3426537/how-to-properly-write-a-sigprof-handler-that-invokes-asyncgetcalltrace > http://hiroshiyamauchi.blogspot.com/2008/12/stabilizing-asyncgetcalltrace.html > > The AsyncGetCallTrace symbol is a public extern symbol, unfortunately. > So there may be third party shared libraries dependent on the extern, and > optionally calling it. > Removing the symbol will prevent those libraries from linking into the VM, > even if they don't call it. I'm willing to break this compatibility for the minimal JVM, given that it's never been supported or official in any way. /Staffan > > Just FYI... > > -kto > > On May 21, 2013, at 8:35 AM, JOSEPH PROVINO wrote: > >> >> On 5/21/2013 3:06 AM, David Holmes wrote: >>> Hi Staffan, >>> >>> On 21/05/2013 4:49 PM, Staffan Larsen wrote: >>>> >>>> On 21 maj 2013, at 04:34, David Holmes <david.hol...@oracle.com> wrote: >>>> >>>>> <added servicability> >>>>> >>>>> Hi Joe, >>>>> >>>>> As I have previously stated you copied the struct definitions instead of >>>>> moving them outside the ifdef. >>>>> >>>>> Serviceability folk: we are particularly interested in whether the use of >>>>> ticks_no_class_load is deemed appropriate in this situation. Who will be >>>>> consuming this value? >>>> >>>> Since you have opted for the simple fix of having an exported but >>>> non-functional AsyncGetCallTrace instead of actually removing the symbol >>>> from the symbol files (which is the proposed solution in the bug report), >>> >>> That would be a simpler solution semantically but the only way I can see to >>> do that is to use a text replacement mechanism in the build files - as is >>> done for the dynamic vtable symbols. I find that less appealing than simply >>> exporting an interface that is configured to report an error (which is >>> essentially what all the optional interfaces do under the minimal VM). >>> >>>> I would like you to include a comment about this in the source. Right now >>>> it's very unclear why there is an exported function that only returns an >>>> error. >>>> >>>> As to the appropriate return value, I don't know. The only caller should >>>> be the Sun Studio profiler, and I'm not sure how it will handle this case >>>> if ever run. The possible return values aren't very well documented. >>> >>> I guess we need to try and run it to find out. >> >> Okay, do either of you feel strongly about how this should be fixed -- >> return an error or remove the symbol? >> >> joe >> >>> >>> Thanks, >>> David >>> >>>> /Staffan >>>> >>>>> >>>>> Thanks, >>>>> David >>>>> >>>>> On 21/05/2013 5:10 AM, JOSEPH PROVINO wrote: >>>>>> The change is to include forte.cpp in the minimal jvm but to >>>>>> conditionalize the code so that >>>>>> only AsyncGetCallTrace() is defined with the minimal jvm. >>>>>> >>>>>> Webrev is here: http://cr.openjdk.java.net/~jprovino/8013461/webrev.00/ >>>>>> >>>>>> * JDK-8013461 <https://jbs.oracle.com/bugs/browse/JDK-8013461>There is >>>>>> a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in >>>>>> minimal/libjvm.a when DEBUG_LEVEL == release >>>>>> <https://jbs.oracle.com/bugs/browse/JDK-8013461> >>>>>> >>>>>> Thanks. >>>>>> >>>>>> joe >>>>>> >>>>>> >>>> >> >