Current build instructions for iOS

Gary Adams gary.adams at oracle.com
Fri May 11 19:12:56 UTC 2018


I just tried a local build and I'm seeing the same error you are.
See
     
build/ios-x86-64-mormal-minimal1-release/make-support/failure-logs/buildjdk_hotspot_variant-server_tools_adlc_objs_BUILD_ADLC_link.{cmdline,log}

The basic configuration in
     common/autoconf/flags.m4

includes the adding of Frameworks to SYSROOT_LDFLAGS
and the handling of EXTRA_LDFLAGS.

I need to track down the BUILD_ADLC instructions to find out why
the extra flags were not used. I'll take a look next week.

I'm targetting MacOSX 10.13.4 Xcode 9.3.1  iOS 11.2 SDK.

...

On 5/11/18, 2:52 PM, Steve Hannah wrote:
>
> On Fri, May 11, 2018 at 11:19 AM, Gary Adams <gary.adams at oracle.com 
> <mailto:gary.adams at oracle.com>> wrote:
>
>     Looking at the link line which complains about mixing iOS and
>     MacOSX SDKs,
>     I do not see the expected extra ld flags. e.g.
>     "-miphoneos-version-min=8.0.0 -arch x86_64 ..."
>     Can you verify the configure step set the proper flags in *.gmk?
>     e.g. EXTRA_
>
>
>
> That's an interesting observation.    When I grep for EXTRA_ in the 
> .gmk files, it looks like they're there.
>
> ios-x86_64-normal-minimal1-release shannah$ grep EXTRA_ *.gmk
>
> buildjdk-spec.gmk:# Some users still set EXTRA_*FLAGS on the make 
> command line. Must
>
> buildjdk-spec.gmk:override EXTRA_CFLAGS :=
>
> buildjdk-spec.gmk:override EXTRA_CXXFLAGS :=
>
> buildjdk-spec.gmk:override EXTRA_LDFLAGS :=
>
> spec.gmk:EXTRA_CFLAGS = -arch x86_64 
> -Wno-implicit-function-declaration -Wno-unused-parameter 
> -miphoneos-version-min=7.0
>
> spec.gmk:EXTRA_CXXFLAGS = -arch x86_64 
> -Wno-implicit-function-declaration -Wno-unused-parameter 
> -miphoneos-version-min=7.0
>
> spec.gmk:EXTRA_LDFLAGS = -arch x86_64 -miphoneos-version-min=7.0 
> -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 
> -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/system 
> -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/system
>
> spec.gmk:TAR_CREATE_EXTRA_PARAM:=
>
>
> And on other instances of bin/c++ in the build log, it does include 
> them.  Just not on the one the fails (and possibly others).
>
> However, now that I look at this, I see that they are not present in 
> the buildjdk-spec.gmk.  Only in the spec.gmk.  Is that relevant?
>
> Here is a gist with the spec.gmk and buildjdk-spec.gmk in case 
> something catches anyone's eye there.
> https://gist.github.com/shannah/aac10407178dee96ce5e6a4138d56d7a
>
>
>     I was surprised you were targetting iOS 7.0 as a minimal platform.
>     e.g. -miphoneos-version-min=7.0
>
>
> I had tried with -miphoneos-version-min=8.0.0 (as the instructions in 
> the wiki had it), but was getting the same problem.  This was an 
> attempt to mix things up a bit.
>
>
>     If you are having shell quoting issues, it helps to use single quotes
>     when providing the with-extra flags. You just have to expand the
>     "$XCODE  ..." variable manually.
>
>
> Thanks for the tip.  I don't think I'm having quoting issues, but I'll 
> give that a try.
>
>
> Best regards
>
> Steve
>
>
>
>
>     On 5/11/18, 1:37 PM, Steve Hannah wrote:
>>     Well,  it seems that the build problems are unrelated to Xcode
>>     version.  I get the same thing with Xcode 7.1, 7.3, and 9.3. 
>>     They all fail with some error related to
>>
>>         ld: building for OSX, but linking against dylib built for iOS 
>>
>>
>>     The build log and configure command and output are in this gist
>>     https://gist.github.com/shannah/03ca438b97c55dfc1c942112af43c5b6
>>     <https://gist.github.com/shannah/03ca438b97c55dfc1c942112af43c5b6>
>>
>>     I've tried following where Google and Stackoverflow lead on these
>>     errors, but have exhausted all of my current leads.
>>
>>     If anything about these logs jump out to anyone, please share.
>>
>>     Best regards
>>
>>     Steve
>>
>>     On Thu, May 10, 2018 at 12:56 PM, Steve Hannah <steve at weblite.ca
>>     <mailto:steve at weblite.ca>> wrote:
>>
>>         Thanks for the tips.
>>
>>         I'm using the configure listed on the instructions
>>         (http://openjdk.java.net/projects/mobile/ios.html
>>         <http://openjdk.java.net/projects/mobile/ios.html>)
>>
>>         cd mobile-dev
>>         bash configure \
>>         --enable-option-checking=fatal \
>>         --build=x86_64-apple-darwin \
>>         --host=x86_64-macos-ios \
>>         --target=x86_64-macos-ios \
>>         --disable-warnings-as-errors \
>>         --enable-headless-only \
>>         --with-boot-jdk=$JDK_DIR \
>>         --with-jdk-variant=normal \
>>         --with-jvm-variants=minimal1 \
>>         --enable-static-build=yes \
>>         --with-extra-cflags="-arch x86_64 -Wno-implicit-function-declaration -Wno-unused-parameter -miphoneos-version-min=8.0.0" \
>>         --with-extra-cxxflags="-arch x86_64 -Wno-implicit-function-declaration -Wno-unused-parameter -miphoneos-version-min=8.0.0" \
>>         --with-extra-ldflags="-arch x86_64 -miphoneos-version-min=8.0.0 -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/system" \
>>         --with-cups-include=$CUPS_DIR \
>>         --with-sys-root=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk \
>>         --with-tools-dir=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/../../usr/bin \
>>         --with-debug-level=release \
>>         --disable-precompiled-headers \
>>         --with-freetype-lib=$FREETYPE_DIR/lib \
>>         --with-freetype-include=$FREETYPE_DIR/include/freetype2
>>
>>
>>             For iOS builds, I'd recommend first making sure you can
>>             build for macosx with your installed toolchain,
>>             and then try the iOS specific builds.
>>
>>
>>         Thanks, I'll try that.
>>
>>
>>             For the linking error, are you using more than one
>>             installed version of Xcode.
>>             e.g. "xcode-select -p" or DEVELOPER_DIR
>>
>>
>>         I'm pretty sure I'm using just one at a time.  I'm using
>>         xcode-select to specify which Xcode to use, and I'm using the
>>         corresponding Xcode in the configure statement.
>>
>>
>>             I usually would do a "LOG=debug" build to see the full
>>             command passed to the linker,
>>             but you have enough in the errors you already have.
>>
>>             clang: warning: using sysroot for 'iPhoneSimulator' but
>>             targeting 'MacOSX' [-Wincompatible-sysroot]
>>
>>
>>             Every object file and executable is built for a specific SDK.
>>             The warning says the flags do not match the toolchain
>>             installed.
>>
>>             ld: warning: directory not found for option
>>             '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks'
>>
>>             ld: building for OSX, but linking against dylib built for
>>             iOS
>>             (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libc++.tbd).
>>             file
>>             '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libc++.tbd'
>>             for architecture x86_64
>>
>>
>>             This would be a good time to compare the directory
>>             structure of the iPhoneSimulator
>>             SDK in Xcode 7.1 and 9.3. It may have changed.
>>
>>
>>         Thanks.  I'll do that.  My attempt with 7.3 had similar
>>         results - only I had to patch some code that required
>>         CoreServices, which apparently isn't available in 7.3.  I'm
>>         going to download 7.1 and see if that gets me through to the end.
>>
>>         Best regards
>>
>>         Steve
>>
>>
>>
>
>
>



More information about the mobile-dev mailing list