RFR: JDK-8217910: Slow linking with devkit on Linux

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Jan 29 11:06:44 UTC 2019


> 28 jan. 2019 kl. 23:17 skrev Erik Joelsson <erik.joelsson at oracle.com>:
> 
> Hello,
> 
> While investigating performance with different linkers and linker configuration, we discovered that the devkit linker on Linux (both bfd and gold) was a lot slower than the native linker on Ubuntu (23s vs 12s for bfd to link libjvm.so on my machine). They are both the same version (2.30), so this was puzzling.
> 
> It turned out to be a difference in how binutils was built. On Ubuntu (and I assume most major Linux vendors), they explicitly set CFLAGS="-O2" when running the build for binutils. I had naively assumed that binutils set reasonable default CFLAGS in their build so have not modified them like this before. I tried adding -O2 for our devkit, and that created a kit with comparable linking performance on par with the Ubuntu linker. Since this seems to be widely done, I assume the change to be quite safe.
> 
> With this patch, I'm modifying the devkit creation makefiles to add -O2 when building binutils. I'm also adding --enable-threads so that the user may run the gold linker with --threads (as well as updating a download link which now requires https). For Oracle users, the devkit versions are bumped in jib-profiles.js so the new devkits are used.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8217910
> 
> Webrev: http://cr.openjdk.java.net/~erikj/8217910/webrev.01/index.html

Looks good. Nice catch!

/Magnus

> 
> /Erik
> 




More information about the build-dev mailing list