De-universalizing hotspot in jdk8u
david.holmes at oracle.com
Sun Jan 11 23:02:22 UTC 2015
On 10/01/2015 2:00 AM, David DeHaven wrote:
> We have this nice little comment in common/autoconf/jdk-options.m4:
> # On Macosx universal binaries are produced, but they only contain
> # 64 bit intel. This invalidates control of which jvms are built
> # from configure, but only server is valid anyway. Fix this
> # when hotspot makefiles are rewritten.
> if test "x$MACOSX_UNIVERSAL" = xtrue; then
> So.. I turned it off:
> if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
> # MACOSX_UNIVERSAL="true"
> And in hotspot/make/bsd/makefiles/defs.make:
> # Universal build settings
> ifeq ($(OS_VENDOR), Darwin)
> # Build universal binaries by default on Mac OS X
> # MACOSX_UNIVERSAL = true
> MACOSX_UNIVERSAL = false
> ifneq ($(ALT_MACOSX_UNIVERSAL),)
> hotspot still seems to build happily (I'm kicking off tests now). Is there are particular reason this hasn't been done yet? I'd like to know before I pursue this as a means of eliminating our dependency on lipo which is causing an inordinate amount of grief when trying to build on 10.9 and later when Xcode 5+ is coinstalled. I have some logic to work around using the broken /usr/bin/lipo, but it doesn't help later in some "other" build target that ends up using '-arch i386 -arch x86_64'. It does not explicitly run lipo, it relies on gcc to do the fattening itself and so it fails even though I've gone to the effort of working around the broken lipo (and it isn't necessary anyways because it doesn't even build the i386 binaries even though it's supposed to be "universal").
The hotspot makefiles still haven't been rewritten (though Magnus had
been working on it).
Also I was under the impression that we used the universal stuff because
we had to deliver in a particular way on OSX. But I don't know the
details and the people who dealt with the original OSX port effort are
no longer here.
> Quite frankly I'd rather just remove all the universal binary stuff from hotspot, but I'm trying my best to minimize the changes there... the "other" problem I can handle easily.
More information about the build-dev