Imported Upstream version 5.8.0.22

Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-10-19 20:04:20 +00:00
parent 5f4a27cc8a
commit 7d05485754
5020 changed files with 114082 additions and 186061 deletions

View File

@@ -1,5 +1,7 @@
Note: This is the actively maintained version of Bockbuild, used to put together the Mono SDK package for macOS. The legacy versions (used for Banshee and older Mono versions) are available here: https://github.com/mono/bockbuild/tree/legacy
Please file issues with the Mono SDK package for macOS on [Xamarin's Bugzilla](https://bugzilla.xamarin.com/enter_bug.cgi?product=Mono%20Installers).
The Mono macOS SDK
------------------
@@ -7,7 +9,7 @@ Bockbuild is already provided as a submodule of Mono. To build a functional dist
$ git clone git@github.com:mono/mono
$ cd mono
$ make mac-sdk-package
$ ./scripts/mac-sdk-package.sh
To get a shell that uses your custom-built distribution (e.g. for testing, to build & run Monodevelop against it):
@@ -22,4 +24,4 @@ Xamarin Releases
Release packages are built with the following:
$ ./external/bockbuild/bb MacSDKRelease --package
$ ./external/bockbuild/bb MacSDKRelease --package

View File

@@ -68,7 +68,7 @@ class Bockbuild:
def run(self):
self.name = 'bockbuild'
self.root = os.path.dirname (os.path.realpath(__file__)) # Bockbuild system root
self.root = os.path.dirname (os.path.abspath(__file__)) # Bockbuild system root
self.execution_root = os.getcwd()
self.resources = set([os.path.realpath(
os.path.join(self.root, 'packages'))]) # list of paths on where to look for packages, patches, etc.

View File

@@ -68,7 +68,7 @@ class Bockbuild:
def run(self):
self.name = 'bockbuild'
self.root = os.path.dirname (os.path.realpath(__file__)) # Bockbuild system root
self.root = os.path.dirname (os.path.abspath(__file__)) # Bockbuild system root
self.execution_root = os.getcwd()
self.resources = set([os.path.realpath(
os.path.join(self.root, 'packages'))]) # list of paths on where to look for packages, patches, etc.

View File

@@ -85,10 +85,18 @@ class DarwinProfile (UnixProfile):
info('Using Xcode %s, SDK %s' % (xcode_version, os.path.basename(osx_sdk)))
# Recent versions of XCode with recent MacOS SDKs buggily resolve several functions as existing on earlier OS X versions
# even when they are not.
xcode_blacklisted_functions = []
if xcode_version >= '8.0':
# based on https://github.com/Homebrew/brew/pull/970. This applies to XCode 8, OS X 10.11 and the 10.12 SDK. The following symbols will be unresolved
# when running binaries on a system of lower version than 10.12.
map(lambda t : self.configure_flags.append ('ac_cv_func_%s=no' % t), 'basename_r clock_getres clock_gettime clock_settime dirname_r getentropy mkostemp mkostemps'.split(' '))
# based on https://github.com/Homebrew/brew/pull/970
xcode_blacklisted_functions.extend (['basename_r','clock_getres','clock_gettime','clock_settime','dirname_r','getentropy','mkostemp', 'mkostemps'])
if xcode_version >= '9.0':
xcode_blacklisted_functions.extend (['futimens', 'utimensat'])
map(lambda t : self.configure_flags.append ('ac_cv_func_%s=no' % t), xcode_blacklisted_functions)
self.gcc_flags.extend([
'-D_XOPEN_SOURCE',
@@ -330,9 +338,9 @@ class DarwinProfile (UnixProfile):
def process(self, path, fixup_func):
staged_path = fixup_func(path)
run_shell('install_name_tool -id %s %s' %
(staged_path, path), False)
run_shell('install_name_tool -id %s %s' %
(staged_path, path), fatal=False)
libs = backtick('otool -L %s' % path)
for line in libs:
# parse 'otool -L'
@@ -343,4 +351,4 @@ class DarwinProfile (UnixProfile):
remap = fixup_func(rpath)
if remap != rpath:
run_shell('install_name_tool -change %s %s %s' %
(rpath, remap, path), False)
(rpath, remap, path), fatal=False)

View File

@@ -686,7 +686,7 @@ def run(cmd, args, cwd, env=None):
return (exit_code, stdout[:-1], stderr)
def run_shell(cmd, print_cmd=False, cwd=None):
def run_shell(cmd, print_cmd=False, cwd=None, fatal=True):
if print_cmd:
print '++', cmd
if not print_cmd:
@@ -694,8 +694,11 @@ def run_shell(cmd, print_cmd=False, cwd=None):
proc = subprocess.Popen(cmd, shell=True, bufsize=-1, cwd=cwd)
exit_code = proc.wait()
if not exit_code == 0:
raise CommandException('"%s" failed, error code %s' %
(cmd, exit_code), cwd)
msg = '"%s" failed, error code %s' % (cmd, exit_code)
if fatal:
raise CommandException(msg, cwd)
else:
warn (msg)
def backtick(cmd, print_cmd=False, echo=False):