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