Review request: 7118588 Profiled JVM needs to be linked statically for gprof to profile libjvm.so

Joe Provino joseph.provino at oracle.com
Tue Feb 5 06:24:42 PST 2013


Would anyone have time to review this after reading the discussion below?

Webrev is here: http://cr.openjdk.java.net/~jprovino/7118588/webrev.00

thanks.

joe


On 1/27/2013 9:28 AM, Joe Provino wrote:
>
>
> On 1/26/2013 2:57 AM, David Holmes wrote:
>> On 26/01/2013 2:33 AM, Joe Provino wrote:
>>> Webrev is here: http://cr.openjdk.java.net/~jprovino/7118588/webrev.00
>>
>> The bug synopsis is confusing - seems to me it is the launcher your 
>> are changing not the VM.
>
> I agree.  A better synopsis would be "Unable to link gamma launcher 
> statically with the VM object files."
>
>> Do we have gprof on Solaris? Does this change fix or break other 
>> profiling tools ?
>
> I think these are actually unrelated to the problem once the problem 
> is stated correctly.
>
>> I don't grok the actual changes
>
> The problem is that if you attempt to build the gamma launcher 
> statically with the VM object files
> by setting LINK_INTO=AOUT on the make command line, the launcher will 
> get undefined symbols.
>
> The handling of LINK_INTO in launcher.make is incorrect.
>
> ifeq ($(LINK_INTO),AOUT)
>   LAUNCHER.o                 = launcher.o $(JVM_OBJ_FILES)
>   LIBS_LAUNCHER          += $(STATIC_STDCXX) $(LIBS)
> else
>   LAUNCHER.o                 = launcher.o
>   LIBS_LAUNCHER          += -l$(JVM) $(LIBS)
> endif
>
> launcher.o is undefined.  That isn't a problem in itself because 
> LAUNCHER.o is never used.
>
> This is the line that links the launcher:
>
> $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(sort $(OBJS)) 
> $(LIBS_LAUNCHER)
>
> The simple fix is to add $(LAUNCHER.o):
>
> $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(sort $(OBJS)) 
> $(LAUNCHER.o) $(LIBS_LAUNCHER)
>
> I also got rid of launcher.o since it's not used.
>
> I think to clean this up, I'd define LAUNCHER.o to be the launcher 
> object files plus the JVM object files
> if LINK_INTO is AOUT and the launcher object files plus -ljvm 
> otherwise.  Then to link the launcher,
> I'd use $(LAUNCHER.o)  $(LIBS).
>
> Should I do something like this or just the minimal fix?
>
> joe
>
>
>> but there is a typo in the bsd file:
>>
>> + #       profiledminimal1  minimal1 <os>_<arch>_shark/profiled
>>
>> shark? :)
>
> fixed.
>
>>
>> David
>>
>>>
>>> joe


More information about the hotspot-dev mailing list