build_vm_def.sh broken on macosx?
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Mon Feb 1 12:55:52 UTC 2016
cc:ing serviceability-dev, since I believe the SA agent is the primary
consumer of dynamic symbols in the jvm library.
On 2016-01-21 11:37, Magnus Ihse Bursie wrote:
> Hi,
>
> It seems that build_vm_def.sh is broken on macosx. The script lists
> all from *.o using nm, and filters them using this awk expression:
> '{ if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 }'
>
> However, the typical output from nm on macosx looks like this:
> __ZTV10methodOper
> __ZTV11MachNopNode
>
> That is, only a single column, and two leading underscore. The awk
> expression will fail to match anything, and an empty vm.def will be
> produced.
>
> If I modify the script to:
> '{ if ($1 ~ /^__ZTV/ || $1 ~ /^_gHotSpotVM/) print "\t" $1 }'
> then it will match and print these symbols.
>
> The build_vm_def.sh script has not been modified since 2013, so if
> this ever worked, then most likely the nm output has changed in Xcode
> at some point.
>
> My main concern here is the new hotspot build. Does this mean that the
> vm.def fills no purpose on the macosx build, and that the whole
> process of running nm on all object files can be skipped? Or is this a
> bug that has not been discovered? If so, it should be fixed in the old
> build.
Is it really the case that no one cares about the dynamic symbols in
libjvm.dylib? If so, we can just skip this code altogether, rather than
running a lots of command that seem to have an effect but have none.
/Magnus
More information about the serviceability-dev
mailing list