hg: build-infra/jdk8/hotspot: Added a few more $(sort)'s on links

Kelly O'Hair kelly.ohair at oracle.com
Fri Jul 13 10:03:20 PDT 2012


On Jul 13, 2012, at 9:47 AM, Mike Duigou wrote:

> Will the sort commands be there permanently or is it just temporary until the builds are verified?

Permanently.  It creates a more predictable shared library image.
Being able to compare 2 build images has benefits beyond this project, could help us later.

> 
> Does it offer any other benefits? I've previously seen linking ordering files used to improve locality in the linked binaries. (much like the recently discussed class list reordering: <http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-July/010739.html>)

There is some mapfile reorder tricks going on with Solaris, compiling with -xF so that all the functions in a .o file
get their own elf sections, then the mapfile.reorder can co-locate all the hot functions (where "hot" is determined by
arbitrary benchmarks run many years ago).
This $(sort) change does not impact the mapfile reorder stuff, it only changes the input order of the .o files given to the linker.

And it's not clear that this reorder stuff is that much of a benefit now, especially if nobody is keeping the lists
up-to-date. The reorder benefits are strictly performance related, and if we have the wrong list, or an incorrect
one, any benefits we are getting might be minimal if not detrimental. This was invented a long time ago when
memory was more limited than it is now.

It has long been my opinion that unless someone is tasked with keeping these function lists and class lists up-to-date
and well-defined, then the complications they create in the build process are not warranted and this logic should just be removed
for the sake of simplicity and any build time improvement their removal might provide.

-kto

> 
> Mike
> 
> On Jul 12 2012, at 21:33 , Tim Bell wrote:
> 
>>> Why? What does it do?
>> 
>> When comparing the build-infra artifacts to the old style build artifacts, it helps a lot to have done operations like linking in the same order.
>> 
>> If this has any effect outside of trying to minimize the diffs between the two builds, than it would be a bug we need to understand.
>> 
>> 
>> Tim
>> 
>> 
>> ----- Original Message -----
>> From: david.holmes at oracle.com
>> To: kelly.ohair at oracle.com
>> Cc: build-infra-dev at openjdk.java.net
>> Sent: Thursday, July 12, 2012 9:07:35 PM GMT -08:00 US/Canada Pacific
>> Subject: Re: hg: build-infra/jdk8/hotspot: Added a few more $(sort)'s on links
>> 
>> On 13/07/2012 10:20 AM, kelly.ohair at oracle.com wrote:
>>> Changeset: 805d7b998d04
>>> Author:    ohair
>>> Date:      2012-07-12 17:20 -0700
>>> URL:       http://hg.openjdk.java.net/build-infra/jdk8/hotspot/rev/805d7b998d04
>>> 
>>> Added a few more $(sort)'s on links
>> 
>> Why? What does it do?
>> 
>> David
>> 
>>> ! make/bsd/makefiles/launcher.make
>>> ! make/bsd/makefiles/vm.make
>>> ! make/linux/makefiles/launcher.make
>>> ! make/linux/makefiles/vm.make
>>> ! make/solaris/makefiles/launcher.make
>>> ! make/solaris/makefiles/vm.make
>>> 
> 




More information about the build-infra-dev mailing list