New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
./configure incorrectly adds mmacosx-version-min to iOS/watchOS/tvOS builds #6138
Comments
Maybe we could just extend the check and also see if the user has set the option in CC? Like this: diff --git a/acinclude.m4 b/acinclude.m4
index e7a36e4bd..f78bb547d 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2524,13 +2524,13 @@ AC_DEFUN([CURL_MAC_CFLAGS], [
AC_MSG_CHECKING([for good-to-use Mac CFLAGS])
AC_MSG_RESULT([$tst_cflags]);
if test "$tst_cflags" = "yes"; then
- AC_MSG_CHECKING([for *version-min in CFLAGS])
+ AC_MSG_CHECKING([for *version-min in CFLAGS or CC])
min=""
- if test -z "$(echo $CFLAGS | grep m.*os.*-version-min)"; then
+ if test -z "$(echo $CFLAGS $CC | grep m.*os.*-version-min)"; then
min="-mmacosx-version-min=10.8"
CFLAGS="$CFLAGS $min"
fi
if test -z "$min"; then
AC_MSG_RESULT([set by user]) |
We could perhaps even check |
... even if set in the CC or IPHONEOS_DEPLOYMENT_TARGET variables. Fixes #6138
Grepping Checking environment may be a bit more complicated:
EDIT: the problem with environment variables is that we don't know if they will actually be used. Maybe IPHONEOS_DEPLOYMENT_TARGET is set, but the compiler will be targeting Mac? IMO that's bad design from Apple side, there is just no way for |
Problem
./configure
script contains this piece:It breaks iOS/watchOS/tvOS (any non-macOS) build if
-miphoneos-version-min
is given as part of CC rather than part of CFLAGS for example:...or if the minimum version is provided via an environment variable instead:
What I expected
*-version-min
presencemmacosx-version-min
piece and let the user take care of thatContext
The reason I tried providing essential flags via
CC
instead ofCFLAGS
is #3189 — the true cause of that bug was that./configure
was invoking preprocessor as$CC -E
without the essential-isysroot
flag which caused some autoconf checks to fail to find any system headers. The advice inside #3189 to update command line tools is not correct way to do it; the correct solution is to give sysroot/target/etc to bothCFLAGS
,CPPFLAGS
, andLDFLAGS
.The text was updated successfully, but these errors were encountered: