RFR: JDK-8142907 Integration of minor fixes from the build-infra project
David Holmes
david.holmes at oracle.com
Mon Nov 16 04:33:32 UTC 2015
Hi Magnus,
I had a flick through most of the files. Overall seems okay but I have a
few queries below.
On 13/11/2015 12:43 PM, Magnus Ihse Bursie wrote:
> The build-infra project has collected a number of minor fixes and
> changes during the new hotspot build development. It's a mix of code
> cleanup and new capabilities.
>
> Not all of these new features are immediately beneficial to the JDK, but
> they will be needed for the upcoming new Hotspot build, and it will not
> hurt to have them in mainline. (In fact, it will tremendously help
> merging between mainline and build-infra.)
>
> The fix addresses these issues:
>
> In general:
> * Break out hotspot configuration into hotspot.m4
> * Long link lines uses @-files
> * Consistently use -Wl instead of -Xlinker
> * Improve clang on linux compilation
> * Set shared library name explicitely on solaris
> * Set correct shared library flag on Windows (-dll)
> * Consistency fixes for build toolchain
> * Bring compare script up to date
> * General code/whitespace cleanup
> * Additional functionality in MakeBase
>
> In NativeCompilation.gmk:
> * More efficient vardeps for per-file CFLAGS
> * Fewer shell executions (means better performance on Windows)
> * EXCLUDE_PATTERN and EXTRA_OBJECT_FILES
> * Debug symbols on macosx (disabled for existing code to keep current
> behavior)
>
> Enabling debug info on macosx on existing jdk should be treated in a
> follow-up bug.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8142907
> WebRev:
> http://cr.openjdk.java.net/~ihse/JDK-8142907-build-infra-integration-closed/webrev.01
>
>
> (It turned out that WebRev could not at the same time include files from
> multiple repos and track the history of a "hg cp":ied file. So I created
> an alternative revision here:
> http://cr.openjdk.java.net/~ihse/JDK-8142907-build-infra-integration-closed/webrev.02/
>
>
> It does not include the jdk files, but hotspot.m4 might be easier to
> understand)
flags.m4:
60 AC_SUBST(LEGACY_EXTRA_CFLAGS)
61 AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
62 AC_SUBST(LEGACY_EXTRA_LDFLAGS)
63
64 AC_SUBST(EXTRA_CFLAGS)
65 AC_SUBST(EXTRA_CXXFLAGS)
66 AC_SUBST(EXTRA_LDFLAGS)
IIRC we added the legacy flags purely to pass the cross-compilation args
through to hotspot. Not sure why we need both legacy and non-legancy
variants now ??
On Windows -LD is a superset of -dll, so it isn't obvious the change is
correct.
---
jdk/make/lib/LibCommon.gmk
+ # Disable it here for the jdk binaries until we decide to enable them.
s/binaries/libraries/ ?
Actually both this fragment and the one in
jdk/make/launcher/LauncherCommon.gmk I find confusing - what is the
relation with hotspot here, and the role of SetupNativeCompilation?
Thanks,
David
> /Magnus
More information about the build-dev
mailing list