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
    HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
  fi


So.. I turned it off:
  if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
#    MACOSX_UNIVERSAL="true"
    MACOSX_UNIVERSAL="false"
  fi

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").


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.

-DrD-

Reply via email to