Bug 1638193 - Remove build system support for iOS. r=nalexander

iOS support for Gecko has not been tested in years and is most probably
out of date. The build system part of it, specifically the checks in
build/autoconf/ios.m4, are not trivial to port to python configure, and
they prevent other things from moving to python configure (because some
of them change value when MOZ_IOS is set).

The code is left alone, although it could probably be stripped off as
well, but I'll leave that as an exercise for someone else.

Differential Revision: https://phabricator.services.mozilla.com/D75463
This commit is contained in:
Mike Hommey 2020-05-15 03:56:16 +00:00
parent 3581879481
commit 28de21d935
12 changed files with 9 additions and 197 deletions

1
aclocal.m4 vendored
View File

@ -23,7 +23,6 @@ builtin(include, build/autoconf/zlib.m4)dnl
builtin(include, build/autoconf/icu.m4)dnl
builtin(include, build/autoconf/clang-plugin.m4)dnl
builtin(include, build/autoconf/alloc.m4)dnl
builtin(include, build/autoconf/ios.m4)dnl
builtin(include, build/autoconf/sanitize.m4)dnl
MOZ_PROG_CHECKMSYS()

View File

@ -1,107 +0,0 @@
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
AC_DEFUN([MOZ_IOS_PATH_PROG],
[
changequote({,})
_prog_name=ifelse($2, {}, `echo $1 | tr "[:upper:]" "[:lower:]"`, $2)
changequote([,])
AC_CACHE_CHECK([for $_prog_name in iOS SDK],
ac_cv_ios_path_$1,
[
_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null`
_res=$?
if test $_res -ne 0; then
AC_MSG_ERROR([Could not find '$_prog_name' in the iOS SDK])
fi
ac_cv_ios_path_$1=$_path
])
$1="${ac_cv_ios_path_$1}$3"
])
AC_DEFUN([MOZ_IOS_SDK],
[
MOZ_ARG_WITH_STRING(ios-sdk,
[ --with-ios-sdk=TYPE
Type of iOS SDK to use (iphonesimulator, iphoneos)
and optionally version (like iphoneos8.2)],
ios_sdk=$withval)
MOZ_ARG_ENABLE_STRING(ios-target,
[ --enable-ios-target=VER (default=8.0)
Set the minimum iOS version needed at runtime],
[_IOS_TARGET=$enableval])
_IOS_TARGET_DEFAULT=8.0
case "$target" in
arm*-apple-darwin*)
if test -z "$ios_sdk" -o "$ios_sdk" = "yes"; then
ios_sdk=iphoneos
fi
case "$ios_sdk" in
iphoneos*)
ios_target_arg="-miphoneos-version-min"
;;
*)
AC_MSG_ERROR([Only 'iphoneos' SDKs are valid when targeting iOS device, don't know what to do with '$ios_sdk'.])
;;
esac
;;
*-apple-darwin*)
ios_target_arg="-mios-simulator-version-min"
case "$ios_sdk" in
# Empty SDK is okay, this might be an OS X desktop build.
""|iphonesimulator*)
;;
# Default to iphonesimulator
yes)
ios_sdk=iphonesimulator
;;
*)
AC_MSG_ERROR([Only 'iphonesimulator' SDKs are valid when targeting iOS simulator.])
;;
esac
;;
esac
if test -n "$ios_sdk"; then
if test -z "$_IOS_TARGET"; then
_IOS_TARGET=$_IOS_TARGET_DEFAULT
ios_target_arg="${ios_target_arg}=${_IOS_TARGET}"
fi
# Ensure that xcrun knows where this SDK is.
ios_sdk_path=`xcrun --sdk $ios_sdk --show-sdk-path 2>/dev/null`
_ret=$?
if test $_ret -ne 0; then
AC_MSG_ERROR([iOS SDK '$ios_sdk' could not be found.])
fi
MOZ_IOS=1
export HOST_CC=clang
export HOST_CXX=clang++
# Add isysroot, arch, and ios target arguments
case "$target_cpu" in
arm*)
ARGS="-arch armv7"
;;
*)
# Unfortunately simulator builds need this.
export CROSS_COMPILE=1
;;
esac
ARGS=" $ARGS -isysroot $ios_sdk_path $ios_target_arg"
# Now find our tools
MOZ_IOS_PATH_PROG(CC, clang, $ARGS)
MOZ_IOS_PATH_PROG(CXX, clang++, $ARGS)
export CPP="$CC -E"
MOZ_IOS_PATH_PROG(AR)
MOZ_IOS_PATH_PROG(AS, as, $ARGS)
MOZ_IOS_PATH_PROG(OTOOL)
MOZ_IOS_PATH_PROG(STRIP)
export PKG_CONFIG_PATH=${ios_sdk_path}/usr/lib/pkgconfig/
fi
AC_SUBST(MOZ_IOS)
])

View File

@ -685,9 +685,6 @@ def split_triplet(triplet, allow_msvc=False):
elif os.startswith('darwin'):
canonical_kernel = 'Darwin'
canonical_os = 'OSX'
elif os.startswith('ios'):
canonical_kernel = 'Darwin'
canonical_os = 'iOS'
elif os.startswith('dragonfly'):
canonical_os = canonical_kernel = 'DragonFly'
elif os.startswith('freebsd'):
@ -920,10 +917,6 @@ def host_for_sub_configure(host):
@depends(target)
def target_for_sub_configure(target):
target_alias = target.alias
# old-configure does plenty of tests against $target and $target_os
# and expects darwin for iOS, so make it happy.
if target.os == 'iOS':
target_alias = target_alias.replace('-ios', '-darwin')
return '--target=%s' % target_alias
@ -1009,15 +1002,6 @@ def target_is_darwin(target):
set_define('XP_DARWIN', target_is_darwin)
@depends(target)
def target_is_ios(target):
if target.kernel == 'Darwin' and target.os == 'iOS':
return True
set_define('XP_IOS', target_is_ios)
@depends(target)
def target_is_osx(target):
if target.kernel == 'Darwin' and target.os == 'OSX':

View File

@ -223,7 +223,6 @@ def old_configure_options(*options):
'--enable-gconf',
'--enable-icf',
'--enable-install-strip',
'--enable-ios-target',
'--enable-libjpeg-turbo',
'--enable-libproxy',
'--enable-llvm-hacks',
@ -265,7 +264,6 @@ def old_configure_options(*options):
'--with-doc-input-dirs',
'--with-doc-output-dir',
'--with-intl-api',
'--with-ios-sdk',
'--with-jitreport-granularity',
'--with-macbundlename-prefix',
'--with-nspr-cflags',

View File

@ -51,8 +51,7 @@ elif CONFIG['OS_TARGET'] == 'Darwin':
'/nsprpub/pr/src/md/unix/darwin.c',
'/nsprpub/pr/src/md/unix/os_Darwin.s',
]
if not CONFIG['MOZ_IOS']:
DEFINES['HAVE_CRT_EXTERNS_H'] = True
DEFINES['HAVE_CRT_EXTERNS_H'] = True
elif CONFIG['OS_TARGET'] == 'SunOS':
DEFINES['HAVE_FCNTL_FILE_LOCKING'] = True
DEFINES['HAVE_SOCKLEN_T'] = True

View File

@ -307,11 +307,7 @@ endif
ifeq ($(OS_ARCH),Darwin)
ifdef SHARED_LIBRARY
ifdef MOZ_IOS
_LOADER_PATH := @rpath
else
_LOADER_PATH := @executable_path
endif
EXTRA_DSO_LDOPTS += -dynamiclib -install_name $(_LOADER_PATH)/$(SHARED_LIBRARY) -compatibility_version 1 -current_version 1 -single_module
endif
endif

1
js/src/aclocal.m4 vendored
View File

@ -23,7 +23,6 @@ builtin(include, ../../build/autoconf/icu.m4)dnl
builtin(include, ../../build/autoconf/clang-plugin.m4)dnl
builtin(include, ../../build/autoconf/alloc.m4)dnl
builtin(include, ../../build/autoconf/sanitize.m4)dnl
builtin(include, ../../build/autoconf/ios.m4)dnl
define([__MOZ_AC_INIT_PREPARE], defn([AC_INIT_PREPARE]))
define([AC_INIT_PREPARE],

View File

@ -77,12 +77,6 @@ fi
MOZ_ANDROID_NDK
case "$target" in
*-apple-darwin*)
MOZ_IOS_SDK
;;
esac
dnl ========================================================
dnl Checks for compilers.
dnl ========================================================

View File

@ -87,12 +87,6 @@ case "$target" in
;;
esac
case "$target" in
*-apple-darwin*)
MOZ_IOS_SDK
;;
esac
AC_SUBST(ANDROID_PACKAGE_NAME)
AC_SUBST(OBJCOPY)
@ -531,25 +525,10 @@ case "$target" in
CXXFLAGS="$CXXFLAGS -stdlib=libc++"
DSO_LDOPTS=''
STRIP_FLAGS="$STRIP_FLAGS -x -S"
# Ensure that if we're targeting iOS an SDK was provided.
AC_CACHE_CHECK(for iOS target,
ac_cv_ios_target,
[AC_TRY_COMPILE([#include <TargetConditionals.h>
#if !(TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
#error not iOS
#endif],
[],
ac_cv_ios_target="yes",
ac_cv_ios_target="no")])
if test "$ac_cv_ios_target" = "yes" -a -z $MOZ_IOS; then
AC_MSG_ERROR([targeting iOS but not using an iOS SDK?])
fi
if test -z "$MOZ_IOS"; then
# The ExceptionHandling framework is needed for Objective-C exception
# logging code in nsObjCExceptions.h. Currently we only use that in debug
# builds.
MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling";
fi
# The ExceptionHandling framework is needed for Objective-C exception
# logging code in nsObjCExceptions.h. Currently we only use that in debug
# builds.
MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling";
dnl DTrace and -dead_strip don't interact well. See bug 403132.
dnl ===================================================================
@ -1584,9 +1563,6 @@ ENABLE_SYSTEM_EXTENSION_DIRS=1
MOZ_BRANDING_DIRECTORY=
MOZ_OFFICIAL_BRANDING=
MOZ_AUTH_EXTENSION=1
if test "$MOZ_IOS"; then
MOZ_AUTH_EXTENSION=
fi
MOZ_PREF_EXTENSIONS=1
MOZ_SPELLCHECK=1
MOZ_UNIVERSALCHARDET=1
@ -1896,10 +1872,6 @@ MOZ_ARG_DISABLE_BOOL(negotiateauth,
MOZ_AUTH_EXTENSION=,
MOZ_AUTH_EXTENSION=1 )
if test -n "$MOZ_IOS" -a -n "$MOZ_AUTH_EXTENSION"; then
AC_MSG_ERROR([negotiateauth is not supported on iOS.])
fi
dnl ========================================================
dnl Pref extensions (autoconfig)
dnl ========================================================
@ -1961,9 +1933,7 @@ i?86-*-mingw*|x86_64-*-mingw*|aarch64-*-mingw*)
MOZ_CRASHREPORTER=1
;;
i?86-apple-darwin*|x86_64-apple-darwin*)
if test -z "$MOZ_IOS"; then
MOZ_CRASHREPORTER=1
fi
MOZ_CRASHREPORTER=1
;;
*-android*|*-linuxandroid*)
dnl Android/arm is arm-unknown-linux-androideabi, so android condition should
@ -2055,10 +2025,6 @@ dnl ========================================================
dnl Updater
dnl ========================================================
if test "$MOZ_IOS"; then
MOZ_UPDATER=
fi
MOZ_ARG_DISABLE_BOOL(updater,
[ --disable-updater Disable building of updater],
MOZ_UPDATER=,
@ -2679,9 +2645,7 @@ if test "$MOZ_WIDGET_TOOLKIT"; then
case "$OS_TARGET" in
Darwin)
if test -z "$MOZ_IOS"; then
NECKO_WIFI=1
fi
NECKO_WIFI=1
;;
DragonFly|FreeBSD|WINNT)
NECKO_WIFI=1

View File

@ -20,7 +20,6 @@ OS = EnumString.subclass(
'DragonFly',
'FreeBSD',
'GNU',
'iOS',
'NetBSD',
'OpenBSD',
'OSX',

View File

@ -1744,10 +1744,6 @@ class RustTest(BaseConfigureTest):
'i686-unknown-linux-gnu',
'i686-apple-darwin',
'x86_64-apple-darwin',
'aarch64-apple-ios',
'armv7s-apple-ios',
'i386-apple-ios',
'x86_64-apple-ios',
'mips-unknown-linux-gnu',
'mipsel-unknown-linux-gnu',
'mips64-unknown-linux-gnuabi64',

View File

@ -161,7 +161,7 @@ set_define('MOZ_JACK', depends_if(jack)(lambda _: True))
# ==============================================================
@depends(target)
def pulseaudio_default(target):
return target.os not in ('WINNT', 'OSX', 'iOS', 'Android', 'OpenBSD')
return target.os not in ('WINNT', 'OSX', 'Android', 'OpenBSD')
option('--enable-pulseaudio', env='MOZ_PULSEAUDIO', default=pulseaudio_default,
help='{Enable|Disable} PulseAudio audio backend.')
@ -224,8 +224,6 @@ def toolkit_choices(target):
return ('cairo-windows',)
elif target.os == 'OSX':
return ('cairo-cocoa',)
elif target.os == 'iOS':
return ('cairo-uikit',)
elif target.os == 'Android':
return ('cairo-android',)
else:
@ -540,7 +538,7 @@ set_define('MOZ_OMX', openmax)
@depends(target)
def eme_choices(target):
if (target.kernel in ('Darwin', 'WINNT', 'Linux') and
target.os not in ('Android', 'iOS') and
target.os != 'Android' and
target.cpu in ('x86', 'x86_64')):
return ('widevine',)
if target.kernel == 'WINNT' and target.cpu == 'aarch64':
@ -738,13 +736,6 @@ set_define('MOZ_APP_SYSTEM_HEADERS', app_system_headers)
# Printing
# ==============================================================
@depends(target)
def ios_disable_printing(target):
if target.os == 'iOS':
return False
imply_option('--enable-printing', ios_disable_printing, reason='--target')
option('--disable-printing', help='Disable printing support')
@depends('--disable-printing')