RFR: JDK-8199682 Clean up building the saproc library

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Mar 16 11:49:05 UTC 2018


On 2018-03-16 04:13, David Holmes wrote:
> Hi Magnus,
>
> Overall this seems okay.
Thanks!

>
> On 16/03/2018 4:22 AM, Magnus Ihse Bursie wrote:
>> The saproc library has historically been built in quite odd ways on 
>> almost all platforms. When the old build system was converted, this 
>> was not changed.
>>
>> However, now the time has come to streamline this and build this 
>> library just as any other.
>>
>> The most visible change, perhaps, is that the library is now named 
>> saproc on all platforms, even Windows. Other changes include:
>
> That could have repercussions elsewhere. sawindbg.dll is probably a 
> well known name for deployment systems.
You mean other classes than WindbgDebuggerLocal.java, out in the wild, 
might load sawindbg.dll directly and call into it? If they do so, they 
must also be prepared that this is not an exported interface and can 
change at any time.
>
>> * Don't set flags that is already set by the default flags.
>> * Don't set flags that do not have anny effect.
>> * Don't subst away the WIN32_LEAN_AND_MEAN definition, it's perfectly 
>> okay to have it.
>> * Don't set CXX linker on solaris -- this was not needed so no reason 
>> to do it.
>> * Cleaned up some old hooks for closed code that is no longer needed.
>
> Right - we could have deleted that when our ARM ports went open.
>
>> I have verified this using COMPARE_BUILD. This shows only the 
>> expected differences:
>> * On all platforms: class file changes for WindbgDebuggerLocal.java.
>> * On solaris: some minor symbol differences, since the linker now 
>> uses C framework functions instead of C++. (And with symbol changes 
>> always comes disasm changes.)
>> * On linux: a binary difference for libsaproc.so, but no 
>> size/symbol/deps/disasm change.
>> * On macosx: no changes at all.
>> * On windows: sawindbg.dll is renamed to saproc.dll. When I made a 
>> manual comparison between the two files, I found no significant 
>> differences.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8199682
>> WebRev: 
>> http://cr.openjdk.java.net/~ihse/JDK-8199682-clean-up-saproc/webrev.01
>
> The deleted OSX files seem okay. This just seems like another case 
> where the original port copied every Linux file across to the bsd 
> directory.
>
> Not sure about the Solaris saproc_audit.cpp or the test.c files ??
I don't know either. :) As I said to Erik, the test files looked like 
stupid adhoc testing just left in place. The saproc_audit.cpp looks 
legit, but has not been compiled for years. Someone must have "removed" 
the file by excluding it from compilation, rather than deleting it. 
Could have happened back in the bad old days when "solaris" didn't mean 
solaris but "unix", and nobody understood the consequences of deleting 
files there.

As always, the file is still in the repository, if someone wants to 
revive it.

/Magnus

>
> Thanks,
> David
>
>> /Magnus
>>




More information about the build-dev mailing list