Skip to content

Bugfix: change GNU triplet for iOS, watchOS, tvOS to allow simulator builds - #6748

Merged
memsharded merged 1 commit into
conan-io:developfrom
SSE4:fix_ios_simulator
Jun 30, 2020
Merged

memsharded merged 1 commit into
conan-io:developfrom
SSE4:fix_ios_simulator

Conversation

@SSE4

@SSE4 SSE4 commented Mar 26, 2020

Copy link
Copy Markdown
Contributor

closes: #6428

Changelog: Bugfix: Change GNU triplet for iOS, watchOS, tvOS to allow simulator builds.
Docs: Omit

the issue came up several times in the past already, e.g.
conan-io/conan-center-index#1008 (comment)
bincrafters/conan-libiconv#11

currently, recipes use the following ugly workaround:
https://github.com/conan-io/conan-center-index/blob/8110cdeccead2f2d37fcea22919fe5d18f58d833/recipes/libiconv/all/conanfile.py#L106
https://github.com/conan-io/conan-center-index/blob/8110cdeccead2f2d37fcea22919fe5d18f58d833/recipes/libcurl/all/conanfile.py#L367

            if self.settings.os == "iOS" and self.settings.arch == "x86_64":
                # please do not autodetect --build for the iOS simulator, thanks!

changes were tested locally on libiconv and libcurl

old triplet for iOS simulator was x86_64-apple-darwin (same as MacOS, which confused auto-tools configure scripts).
the new deduced triplet is x86_64-apple-ios.
sources:
LLVM
Rust

  • Refer to the issue that supports this Pull Request.
  • If the issue has missing info, explain the purpose/use case/pain/need that covers this Pull Request.
  • I've read the Contributing guide.
  • I've followed the PEP8 style guides for Python code.
  • I've opened another PR in the Conan docs repo to the develop branch, documenting this one.

Note: By default this PR will skip the slower tests and will use a limited set of python versions. Check here how to increase the testing level by writing some tags in the current PR body text.

@memsharded

Copy link
Copy Markdown
Member

old triplet for iOS simulator was x86_64-apple-darwin (same as MacOS, which confused auto-tools configure scripts).
the new deduced triplet is x86_64-apple-ios.

But wouldn't this mean that if there are Conan users using the old iOS simulator we will break them?

@SSE4

SSE4 commented Mar 26, 2020

Copy link
Copy Markdown
Contributor Author

@memsharded nope, it won't break. basically, configure never ever passed for such old triplets, that's why recipes were using workarounds.

@SSE4

SSE4 commented Mar 26, 2020

Copy link
Copy Markdown
Contributor Author

for the record, the error was:

 > ./configure '--prefix=/Users/sse4/.conan/data/libiconv/1.16/_/_/package/6c12f63a312ce33f9e1610f0b8c55126373a1743' '--enable-static' '--disable-shared' '--bindir=${prefix}/bin' '--sbindir=${prefix}/bin' '--libexecdir=${prefix}/bin' '--libdir=${prefix}/lib' '--includedir=${prefix}/include' '--oldincludedir=${prefix}/include' '--datarootdir=${prefix}/share' --build=x86_64-apple-darwin --host=x86_64-apple-darwin
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make sets $(MAKE)... (cached) yes
checking for x86_64-apple-darwin-gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/Users/sse4/.conan/data/libiconv/1.16/_/_/build/6c12f63a312ce33f9e1610f0b8c55126373a1743/source_subfolder':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

(NOTICE: --build=x86_64-apple-darwin --host=x86_64-apple-darwin)
and config.log has:

configure:4358: checking whether we are cross compiling
configure:4370: $? = 0
configure:4377: ./conftest
dyld: attempt to run simulator program outside simulator (DYLD_ROOT_PATH not set)
./configure: line 4379: 72890 Abort trap: 6           ./conftest$ac_cv_exeext
configure:4381: $? = 134
configure:4388: error: in `/Users/sse4/.conan/data/libiconv/1.16/_/_/build/6c12f63a312ce33f9e1610f0b8c55126373a1743/source_subfolder':
configure:4390: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.

after the fix, it has --build=x86_64-apple-darwin --host=x86_64-apple-ios
and configure finishes gracefully:

checking whether we are cross compiling... yes

@SSE4 SSE4 closed this Apr 1, 2020
@SSE4 SSE4 reopened this Apr 1, 2020
@SSE4
SSE4 force-pushed the fix_ios_simulator branch from db23b9d to c82e6d8 Compare April 1, 2020 06:48
@maikelvdh

maikelvdh commented May 12, 2020

Copy link
Copy Markdown
Contributor

Is there a plan to get this change merged in? ping @memsharded

@memsharded
memsharded merged commit d40f2a9 into conan-io:develop Jun 30, 2020
@memsharded memsharded added this to the 1.27 milestone Jun 30, 2020
@memsharded

Copy link
Copy Markdown
Member

Sorry about this, merged, will be in next 1.27

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.

[bug] AutoToolsBuildEnvironment helper fails to set correct host value for iOS simulator

3 participants