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