Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change MACOSX_VERSION_MIN to 10.9.0 for OpenJ9 JDK8 #206

Merged
merged 1 commit into from
Nov 12, 2018

Conversation

babsingh
Copy link
Member

@babsingh babsingh commented Nov 9, 2018

For OpenJ9 JDK8 on OSX, the JIT can't be built with MACOSX_VERSION_MIN
<= 10.8.0 using Xcode7 + clang. JIT needs libc++ which is only available when
MACOSX_VERSION_MIN is set to 10.9.0 or greater. With MACOSX_VERSION_MIN
<= 10.8.0, the Xcode7 build tools only provide an old version of stdlibc++, which
can't be used to build the JIT.

Thus, changing MACOSX_VERSION_MIN from 10.7.0 to 10.9.0 in order to
support the JIT when building OpenJ9 JDK8 on OSX using Xcode7 + clang.

Invoked autogen.sh.

Signed-off-by: Babneet Singh [email protected]

@babsingh babsingh force-pushed the jit_compatibility_fix branch 2 times, most recently from 2a5a849 to c97f596 Compare November 9, 2018 22:09
@babsingh
Copy link
Member Author

babsingh commented Nov 9, 2018

@babsingh
Copy link
Member Author

babsingh commented Nov 9, 2018

fyi - @DanHeidinga @pshipton @nbhuiyan

@DanHeidinga
Copy link
Contributor

DanHeidinga commented Nov 10, 2018

https://en.wikipedia.org/wiki/MacOS_version_history#Version_10.7:_"Lion"

10.7.0 was released July 20, 2011
10.9.0 was released October 22, 2013

I'm a +1 to this change

@DanHeidinga
Copy link
Contributor

@babsingh Can you fix the copyrights so the check will pass?

@keithc-ca
Copy link
Member

Building Java 11 doesn't seem to have this problem. In that version I only see a dependency on libc++.1.dylib and no dependency on any version libstdc++ as discussed in eclipse-openj9/openj9#3496. I would hope we can accomplish the same for Java 8.

@babsingh
Copy link
Member Author

Can you fix the copyrights so the check will pass?

Currently, common/autoconf/flags.m4 has an Oracle copyright with the correct year (2018). Our copyright check does: grep -qE \(c\) Copyright IBM Corp. ([0-9]{4}), <FILE>. In other files such as NativeGaloisCounterMode.java, IBM's copyright is added below the Oracle copyright. I have done the same for flags.m4.

Running autogen.sh creates two generated-configure.sh (common/closed) scripts. The copyright check also fails for the two generated-configure.sh scripts. In the past, copyright check failures due to running autogen.sh were ignored. I am guessing that it still holds true.

Building Java 11 doesn't seem to have this problem. In that version I only see a dependency on libc++.1.dylib and no dependency on any version libstdc++ as discussed in eclipse-openj9/openj9#3496. I would hope we can accomplish the same for Java 8.

With this change, OpenJ9 JDK8 will have no dependency on any libstdc++ version. JIT will only have a dependency on libc++.1.dylib similar to OpenJ9 JDK11.

Side notes:

  • OpenJ9 JDK11 has MACOSX_VERSION_MIN set to 10.9.0.
  • Also, I think the behaviour regarding availability of libc++ varies depending upon OSX build tools. Xcode7 provides libc++ support for MACOSX_VERSION_MIN >= 10.9.0. But, Xcode9 provides libc++ support for MACOSX_VERSION_MIN >= 10.7.0. This observation was made while building OpenJ9 JDK9 and OpenJ9 JDK10; both use MACOSX_VERSION_MIN = 10.7.0. No dependency on libstdc++ was seen when building OpenJ9 JDK9 and OpenJ9 JDK10 with Xcode9 and MACOSX_VERSION_MIN = 10.7.0.

@babsingh babsingh force-pushed the jit_compatibility_fix branch 2 times, most recently from f3bc6e8 to deb7b6e Compare November 11, 2018 04:06
Copy link
Contributor

@DanHeidinga DanHeidinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@DanHeidinga
Copy link
Contributor

We don't have a JDK8 PR build yet so this will have to be merged without testing beyond a compile on another platform

@DanHeidinga
Copy link
Contributor

Jenkins compile xlinux jdk8

@DanHeidinga DanHeidinga self-assigned this Nov 12, 2018
@DanHeidinga
Copy link
Contributor

@keithc-ca Any further comments? Otherwise I'll merge this

Copy link
Member

@keithc-ca keithc-ca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please re-run autogen.sh to reflect the copyright addition.

For OpenJ9 JDK8 on OSX, the JIT can't be built with MACOSX_VERSION_MIN
<= 10.8.0 using Xcode7 + clang. JIT needs libc++ which is only available when
MACOSX_VERSION_MIN is set to 10.9.0 or greater. With MACOSX_VERSION_MIN
<= 10.8.0, the Xcode7 build tools only provide an old version of stdlibc++,
which can't be used to build the JIT.

Thus, changing MACOSX_VERSION_MIN from 10.7.0 to 10.9.0 in order to
support the JIT when building OpenJ9 JDK8 on OSX using Xcode7 + clang.

Invoked autogen.sh.

Signed-off-by: Babneet Singh <[email protected]>
@babsingh babsingh force-pushed the jit_compatibility_fix branch from deb7b6e to f9ec7b8 Compare November 12, 2018 16:27
@babsingh
Copy link
Member Author

Please re-run autogen.sh to reflect the copyright addition.

done.

@keithc-ca
Copy link
Member

No need to re-run PR testing for the most recent change: merging.

@keithc-ca keithc-ca merged commit 20e96e9 into ibmruntimes:openj9 Nov 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants