Here is a new webrev where I cleaned up the macosx sysroot flags logic:

http://cr.openjdk.java.net/~erikj/8138694/webrev.top.02/

/Erik

On 2015-10-02 17:14, Magnus Ihse Bursie wrote:
On 2015-10-02 15:34, Erik Joelsson wrote:
Hello,

While trying the macosx build using devkits again, I happened to be on a system where some Xcode install/update error had left the /usr/include directory missing. This shouldn't be an issue since we have all the necessary include files in the SDK inside the devkit/Xcode application.

Getting this to work required several changes and cleanups that will actually improve build consistency overall. It will also guarantee that we use the correct system headers in all cases.

* Setup SYSROOT_*FLAGS before detecting toolchain and make those flags available to the configure toolchain tests. * Setup the user supplied extra flags before toolchain detection so that those are also used during configure toolchain tests. * When not cross compiling, use the SYSROOT_*FLAGS also when compiling build tools, like adlc in hotspot, and gensrc tools in jdk.

Bug: https://bugs.openjdk.java.net/browse/JDK-8138694
Webrev: http://cr.openjdk.java.net/~erikj/8138694/webrev.top.01/

Your changes looks good. However, I notice that there is a problem with the code that you moved. In FLAGS_SETUP_SYSROOT_FLAGS, there is a test:

elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
# Apple only wants -isysroot <path>, but we also need -iframework<path>/System/Library/Frameworks SYSROOT_CFLAGS="-isysroot $SYSROOT -iframework $SYSROOT/System/Library/Frameworks"
SYSROOT_LDFLAGS=$SYSROOT_CFLAGS

but this is incorrect. Remove this and instead add the -iframework stuff at the end. There is already a macosx test for adding framework flags, the -iframework addition fits in perfect there.

/Magnus

Reply via email to