Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
04db9ef
stream: fix no data on partial decode
mscdex Feb 14, 2016
cd78ff9
doc: fix links in Addons docs
estliberitas Feb 4, 2016
67245fa
doc: clarify code of conduct reporting
juliepagano Feb 5, 2016
2ce83bd
http,util: fix typos in comments
estliberitas Feb 17, 2016
ebbc64b
doc: add "building node with ninja" guide
Fishrock123 Jan 19, 2016
d09b44f
doc: add Сковорода Никита Андреевич to the CTC
rvagg Feb 17, 2016
4e469d5
doc: add Ali Ijaz Sheikh to the CTC
rvagg Feb 17, 2016
a2a32b7
doc: add Rich Trott to the CTC
rvagg Feb 17, 2016
2964620
doc: add Evan Lucas to the CTC
rvagg Feb 17, 2016
04d16eb
doc: document fs.datasync(Sync)
Feb 24, 2016
3168e6b
doc: update V8 URL
strawbrary Mar 2, 2016
0e97a3e
win,build: support Visual C++ Build Tools 2015
joaocgreis Mar 9, 2016
b690916
lib: freelist: use .pop() for allocation
subzey Jan 26, 2016
470a9ca
doc: add onboarding resources
Fishrock123 Nov 9, 2015
17a7430
doc: add info to docs on how to submit docs patch
Sequoia Jan 8, 2016
dac4e64
build: add option to select VS version
greenjava Jan 12, 2016
7c3b844
src: return UV_EAI_NODATA on empty lookup
cjihrig Jan 15, 2016
fb5ba6b
stream: prevent object map change in ReadableState
evanlucas Jan 19, 2016
068b0cb
test: move cluster tests to parallel
Trott Jan 20, 2016
0830bb4
doc: clarify when writable.write callback is called
kevinoid Jan 22, 2016
b816044
buffer: remove duplicated code in fromObject
entertainyou Jan 29, 2016
6386f62
test: remove unneeded bind() and related comments
aayn Feb 1, 2016
242a65e
stream: prevent object map change in TransformState
evanlucas Feb 2, 2016
cc0e36f
string_decoder: fix performance regression
mscdex Feb 11, 2016
e7f45f0
repl: handle quotes within regexp literal
princejwesley Feb 6, 2016
ca17f91
doc: add note for binary safe string reading
Feb 9, 2016
b1d580c
doc: update removeListener behaviour
vaibhav93 Feb 12, 2016
46a5d51
build: skip msi build if WiX is not found
dimhotepus Feb 13, 2016
ca5d7a8
http: remove unnecessary check
mscdex Feb 15, 2016
f982632
http: remove old, confusing comment
mscdex Feb 15, 2016
1624d5b
doc: document base64url encoding support
tristanls Feb 15, 2016
ba5e0b6
doc: fix buf.readInt16LE output
chinedufn Feb 17, 2016
70c872c
doc: improve unhandledException doc copy
jasnell Feb 17, 2016
d7b81b5
deps: cherry-pick 2e4da65 from v8's 4.8 upstream
mhdawson Feb 17, 2016
b66d6b1
doc: improve httpVersionMajor / httpVersionMajor
JacksonTian Feb 18, 2016
d4cfc6f
doc: add missing property in cluster example
MrOutput Feb 18, 2016
38d4291
doc: fix typo in pbkdf2Sync code sample
mjcuva Feb 18, 2016
57b02e6
debugger: remove unneeded callback check
Trott Feb 19, 2016
5e6b760
tools: add Node.js-specific ESLint rules
Trott Feb 19, 2016
a39aacf
test: refactor test-dgram-udp4
santigimeno Feb 20, 2016
f242e62
test: remove flaky designation from fixed tests
Trott Feb 26, 2016
c86902d
test: mitigate flaky test-http-agent
Trott Feb 21, 2016
85f927a
test: prevent flakey test on pi2
trevnorris Mar 2, 2016
99269ff
test: increase timeouts on some unref timers tests
Fishrock123 Feb 21, 2016
6867bed
tools: enable additional lint rules
Trott Feb 22, 2016
901dbab
doc: fix relative links in net docs
evanlucas Feb 22, 2016
2b0c7ad
doc: fix links in tls, cluster docs
estliberitas Feb 19, 2016
d4b9f02
tools: apply custom buffer lint rule to /lib only
Trott Feb 22, 2016
b4fbe04
test: fix test-timers.reliability on OS X
Trott Feb 23, 2016
dff7091
url: group slashed protocols by protocol name
nettofarah Feb 23, 2016
97e95d0
crypto: PBKDF2 works with `int` not `ssize_t`
indutny Feb 23, 2016
d681bf2
test: fix flaky child-process-fork-regr-gh-2847
santigimeno Feb 24, 2016
03b20a7
benchmark: add benchmark for buf.compare()
Trott Feb 26, 2016
b4ef644
test: retry on known SmartOS bug
Trott Feb 26, 2016
1642078
doc: fix crypto function indentation level
mscdex Feb 26, 2016
d4a1fc7
doc: add Testing WG
Trott Feb 26, 2016
4aa2c03
test: increase timeout for test-tls-fast-writing
Trott Feb 28, 2016
ba9ad26
test: apply Linux workaround to Linux only
Trott Feb 28, 2016
97a18bd
doc: update NAN urls in ROADMAP.md and doc/releases.md
ronkorving Feb 28, 2016
d871ae2
doc: fix typo in child_process documentation
evanlucas Feb 28, 2016
1afab6a
doc: add clarification on birthtime in fs stat
kthelgason Feb 28, 2016
131ed49
tools: enable no-extra-parens in ESLint
Trott Mar 1, 2016
4990dda
build: remove --quiet from eslint invocation
Mar 2, 2016
1165ecc
build: update Node.js logo on Win installer
eljefedelrodeodeljefe Mar 2, 2016
7a0fcfc
test: remove broken debugger scenarios
Trott Mar 2, 2016
063f22f
test: check memoryUsage properties The properties on memoryUsage were…
geek Mar 3, 2016
04d3f8a
doc: update link green to match homepage
silverwind Mar 3, 2016
64d5752
tools: enable no-self-assign ESLint rule
Trott Mar 3, 2016
9058fc0
build: correctly detect clang version
Mar 3, 2016
98a1bb6
doc: document directories in test directory
mike182uk Mar 3, 2016
1faea43
doc: fix typo in fs.symlink
targos Mar 4, 2016
deec8bc
tools: reduce verbosity of cpplint
thefourtheye Mar 6, 2016
13a8bde
doc: fix dns.resolveCname description typo
axvm Mar 9, 2016
38d7b0b
docs: update link to iojs+release ci job
Mar 9, 2016
b1b17ef
doc: move build instructions to a new document
jbergstroem Mar 9, 2016
cae5da2
doc: fix markdown links
stevemao Mar 10, 2016
5176346
doc: include typo in 'unhandledRejection' example
r1b Mar 11, 2016
2d5527f
doc: add mattloring to collaborators
Mar 11, 2016
3f71864
doc: add phillipj to collaborators
phillipj Mar 11, 2016
e5f254d
doc: add benjamingr to collaborator list
benjamingr Mar 11, 2016
eec3008
doc: add whitlockjc to collaborators
whitlockjc Mar 11, 2016
39c7d8a
doc: add AndreasMadsen to collaborators
AndreasMadsen Mar 11, 2016
0a6e883
doc: add thekemkid to collaborators
GlenTiki Mar 11, 2016
4c92316
doc: add fansworld-claudio to collaborators
claudiorodriguez Mar 11, 2016
c6dc561
doc: remove non-standard use of hyphens
svozza Mar 12, 2016
07e71b2
doc: fix typo in api/addons
watilde Mar 13, 2016
f6d4982
doc: clarify type of first argument in zlib
fanatid Mar 13, 2016
daf3ef6
doc: explain path.format() algorithm
Trott Mar 13, 2016
a673c9a
tls: fix assert in context._external accessor
bnoordhuis Mar 2, 2016
2053995
docs: fix man pages link if tok type is code
mithun-daa Mar 15, 2016
e572542
doc: Add note about use of JSON.stringify()
mithun-daa Mar 15, 2016
4332f80
doc: fix return value of write methods
fb55 Mar 16, 2016
a1772dc
build: update Node.js logo on OSX installer
rvagg Feb 24, 2016
d53dcc5
doc: update fansworld-claudio username on README
claudiorodriguez Mar 13, 2016
7a10fd3
collaborator_guide: clarify commit message rules
geek Mar 11, 2016
1e877f1
doc: fix typo in child_process docs
benjamingr Mar 13, 2016
bb423bb
doc: update release tweet template
Fishrock123 Mar 9, 2016
0943001
doc: fix invalid path doc comments
Trott Mar 11, 2016
ddac368
benchmark: fix lint errors
Trott Mar 2, 2016
6dc49ae
tools,benchmark: increase lint compliance
Trott Feb 25, 2016
4be2065
benchmark: refactor to eliminate redeclared vars
Trott Feb 28, 2016
c901741
benchmark: use strict mode
Trott Feb 20, 2016
df283f8
benchmark: fix linting issues
Trott Mar 17, 2016
10ec1d2
tools: enable linting for benchmarks
Trott Mar 17, 2016
7501ddc
tools: support testing known issues
cjihrig Mar 2, 2016
9952bcf
test: bug repro for vm function redefinition
cjihrig Mar 2, 2016
4b6a8f4
tools: update gyp to b3cef02
Oct 19, 2015
8ffef48
tools: fix gyp to work on MacOSX without XCode
Feb 10, 2015
666d369
test: eval a strict function
kthelgason Feb 15, 2016
5f54bd2
doc: topic blocking vs non-blocking
jrit Feb 19, 2016
067ce9b
build: don't install github templates
jbergstroem Mar 9, 2016
19ae308
deps: update openssl config
Mar 6, 2016
1e05f37
doc: fix typo in synchronous randomBytes example
WebReflection Mar 18, 2016
5368455
2016-03-22, Version v4.4.1 'Argon' (LTS)
Mar 21, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
tools: update gyp to b3cef02
Includes two patches for AIX. Adds support for both 32-bit and 64-bit
files[0] and uses -RPf for cp instead of -af (which is unsupported)[1]

[0] https://codereview.chromium.org/1319663007
[1] https://codereview.chromium.org/1368133002

PR-URL: #3487
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
  • Loading branch information
Imran Iqbal authored and Myles Borins committed Mar 21, 2016
commit 4b6a8f4321f720104c9e22458dccffedbaffbead
9 changes: 4 additions & 5 deletions tools/gyp/PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,13 @@ def CheckChangeOnCommit(input_api, output_api):


TRYBOTS = [
'gyp-win32',
'gyp-win64',
'gyp-linux',
'gyp-mac',
'linux_try',
'mac_try',
'win_try',
]


def GetPreferredTryMasters(_, change):
return {
'tryserver.nacl': { t: set(['defaulttests']) for t in TRYBOTS },
'client.gyp': { t: set(['defaulttests']) for t in TRYBOTS },
}
12 changes: 5 additions & 7 deletions tools/gyp/gyp_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import sys

# TODO(mark): sys.path manipulation is some temporary testing stuff.
try:
import gyp
except ImportError, e:
import os.path
sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), 'pylib'))
import gyp
# Make sure we're using the version of pylib in this repo, not one installed
# elsewhere on the system.
sys.path.insert(0, os.path.join(os.path.dirname(sys.argv[0]), 'pylib'))
import gyp

if __name__ == '__main__':
sys.exit(gyp.script_main())
5 changes: 1 addition & 4 deletions tools/gyp/pylib/gyp/MSVSSettings.py
Original file line number Diff line number Diff line change
Expand Up @@ -708,10 +708,7 @@ def _ValidateSettings(validators, settings, stderr):
_MSBuildOnly(_compile, 'BuildingInIDE', _boolean)
_MSBuildOnly(_compile, 'CompileAsManaged',
_Enumeration([], new=['false',
'true', # /clr
'Pure', # /clr:pure
'Safe', # /clr:safe
'OldSyntax'])) # /clr:oldSyntax
'true'])) # /clr
_MSBuildOnly(_compile, 'CreateHotpatchableImage', _boolean) # /hotpatch
_MSBuildOnly(_compile, 'MultiProcessorCompilation', _boolean) # /MP
_MSBuildOnly(_compile, 'PreprocessOutputPath', _string) # /Fi
Expand Down
2 changes: 1 addition & 1 deletion tools/gyp/pylib/gyp/MSVSSettings_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ def testValidateMSBuildSettings_settings(self):
'BuildingInIDE': 'true',
'CallingConvention': 'Cdecl',
'CompileAs': 'CompileAsC',
'CompileAsManaged': 'Pure',
'CompileAsManaged': 'true',
'CreateHotpatchableImage': 'true',
'DebugInformationFormat': 'ProgramDatabase',
'DisableLanguageExtensions': 'true',
Expand Down
11 changes: 9 additions & 2 deletions tools/gyp/pylib/gyp/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,20 @@ def QualifiedTarget(build_file, target, toolset):


@memoize
def RelativePath(path, relative_to):
def RelativePath(path, relative_to, follow_path_symlink=True):
# Assuming both |path| and |relative_to| are relative to the current
# directory, returns a relative path that identifies path relative to
# relative_to.
# If |follow_symlink_path| is true (default) and |path| is a symlink, then
# this method returns a path to the real file represented by |path|. If it is
# false, this method returns a path to the symlink. If |path| is not a
# symlink, this option has no effect.

# Convert to normalized (and therefore absolute paths).
path = os.path.realpath(path)
if follow_path_symlink:
path = os.path.realpath(path)
else:
path = os.path.abspath(path)
relative_to = os.path.realpath(relative_to)

# On Windows, we can't create a relative path to a different drive, so just
Expand Down
4 changes: 2 additions & 2 deletions tools/gyp/pylib/gyp/generator/analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ def _GenerateTargets(data, target_list, target_dicts, toplevel_dir, files,
sources = _ExtractSources(target_name, target_dicts[target_name],
toplevel_dir)
for source in sources:
if source in files:
if _ToGypPath(os.path.normpath(source)) in files:
print 'target', target_name, 'matches', source
target.match_status = MATCH_STATUS_MATCHES
matching_targets.append(target)
Expand Down Expand Up @@ -498,7 +498,7 @@ def _WasGypIncludeFileModified(params, files):
files."""
if params['options'].includes:
for include in params['options'].includes:
if _ToGypPath(include) in files:
if _ToGypPath(os.path.normpath(include)) in files:
print 'Include file modified, assuming all changed', include
return True
return False
Expand Down
18 changes: 11 additions & 7 deletions tools/gyp/pylib/gyp/generator/make.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,10 @@ def CalculateGeneratorInputInfo(params):

LINK_COMMANDS_AIX = """\
quiet_cmd_alink = AR($(TOOLSET)) $@
cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^)
cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) -X32_64 crs $@ $(filter %.o,$^)

quiet_cmd_alink_thin = AR($(TOOLSET)) $@
cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^)
cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) -X32_64 crs $@ $(filter %.o,$^)

quiet_cmd_link = LINK($(TOOLSET)) $@
cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(LD_INPUTS) $(LIBS)
Expand Down Expand Up @@ -273,9 +273,9 @@ def CalculateGeneratorInputInfo(params):
%(make_global_settings)s

CC.target ?= %(CC.target)s
CFLAGS.target ?= $(CFLAGS)
CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS)
CXX.target ?= %(CXX.target)s
CXXFLAGS.target ?= $(CXXFLAGS)
CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS)
LINK.target ?= %(LINK.target)s
LDFLAGS.target ?= $(LDFLAGS)
AR.target ?= $(AR)
Expand All @@ -286,9 +286,9 @@ def CalculateGeneratorInputInfo(params):
# TODO(evan): move all cross-compilation logic to gyp-time so we don't need
# to replicate this environment fallback in make as well.
CC.host ?= %(CC.host)s
CFLAGS.host ?=
CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host)
CXX.host ?= %(CXX.host)s
CXXFLAGS.host ?=
CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host)
LINK.host ?= %(LINK.host)s
LDFLAGS.host ?=
AR.host ?= %(AR.host)s
Expand Down Expand Up @@ -365,7 +365,7 @@ def CalculateGeneratorInputInfo(params):

quiet_cmd_copy = COPY $@
# send stderr to /dev/null to ignore messages when linking directories.
cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@")
cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp %(copy_archive_args)s "$<" "$@")

%(link_commands)s
"""
Expand Down Expand Up @@ -2010,6 +2010,7 @@ def CalculateMakefilePath(build_file, base_name):
srcdir_prefix = '$(srcdir)/'

flock_command= 'flock'
copy_archive_arguments = '-af'
header_params = {
'default_target': default_target,
'builddir': builddir_name,
Expand All @@ -2019,6 +2020,7 @@ def CalculateMakefilePath(build_file, base_name):
'link_commands': LINK_COMMANDS_LINUX,
'extra_commands': '',
'srcdir': srcdir,
'copy_archive_args': copy_archive_arguments,
}
if flavor == 'mac':
flock_command = './gyp-mac-tool flock'
Expand All @@ -2043,7 +2045,9 @@ def CalculateMakefilePath(build_file, base_name):
'flock': 'lockf',
})
elif flavor == 'aix':
copy_archive_arguments = '-pPRf'
header_params.update({
'copy_archive_args': copy_archive_arguments,
'link_commands': LINK_COMMANDS_AIX,
'flock': './gyp-flock-tool flock',
'flock_index': 2,
Expand Down
13 changes: 13 additions & 0 deletions tools/gyp/pylib/gyp/generator/msvs.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ def _import_OrderedDict():
'msvs_requires_importlibrary',
'msvs_enable_winphone',
'msvs_application_type_revision',
'msvs_target_platform_version',
'msvs_target_platform_minversion',
]


Expand Down Expand Up @@ -2644,6 +2646,17 @@ def _GetMSBuildGlobalProperties(spec, guid, gyp_file_name):
else:
properties[0].append(['ApplicationTypeRevision', '8.1'])

if spec.get('msvs_target_platform_version'):
target_platform_version = spec.get('msvs_target_platform_version')
properties[0].append(['WindowsTargetPlatformVersion',
target_platform_version])
if spec.get('msvs_target_platform_minversion'):
target_platform_minversion = spec.get('msvs_target_platform_minversion')
properties[0].append(['WindowsTargetPlatformMinVersion',
target_platform_minversion])
else:
properties[0].append(['WindowsTargetPlatformMinVersion',
target_platform_version])
if spec.get('msvs_enable_winphone'):
properties[0].append(['ApplicationType', 'Windows Phone'])
else:
Expand Down
19 changes: 15 additions & 4 deletions tools/gyp/pylib/gyp/generator/ninja.py
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,11 @@ def WriteSourcesForArch(self, ninja_file, config_name, config, sources,
os.environ.get('CFLAGS', '').split() + cflags_c)
cflags_cc = (os.environ.get('CPPFLAGS', '').split() +
os.environ.get('CXXFLAGS', '').split() + cflags_cc)
elif self.toolset == 'host':
cflags_c = (os.environ.get('CPPFLAGS_host', '').split() +
os.environ.get('CFLAGS_host', '').split() + cflags_c)
cflags_cc = (os.environ.get('CPPFLAGS_host', '').split() +
os.environ.get('CXXFLAGS_host', '').split() + cflags_cc)

defines = config.get('defines', []) + extra_defines
self.WriteVariableList(ninja_file, 'defines',
Expand Down Expand Up @@ -1672,7 +1677,7 @@ def CommandWithWrapper(cmd, wrappers, prog):

def GetDefaultConcurrentLinks():
"""Returns a best-guess for a number of concurrent links."""
pool_size = int(os.getenv('GYP_LINK_CONCURRENCY', 0))
pool_size = int(os.environ.get('GYP_LINK_CONCURRENCY', 0))
if pool_size:
return pool_size

Expand All @@ -1696,8 +1701,10 @@ class MEMORYSTATUSEX(ctypes.Structure):
stat.dwLength = ctypes.sizeof(stat)
ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))

mem_limit = max(1, stat.ullTotalPhys / (4 * (2 ** 30))) # total / 4GB
hard_cap = max(1, int(os.getenv('GYP_LINK_CONCURRENCY_MAX', 2**32)))
# VS 2015 uses 20% more working set than VS 2013 and can consume all RAM
# on a 64 GB machine.
mem_limit = max(1, stat.ullTotalPhys / (5 * (2 ** 30))) # total / 5GB
hard_cap = max(1, int(os.environ.get('GYP_LINK_CONCURRENCY_MAX', 2**32)))
return min(mem_limit, hard_cap)
elif sys.platform.startswith('linux'):
if os.path.exists("/proc/meminfo"):
Expand Down Expand Up @@ -2275,7 +2282,11 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params,
if flavor == 'mac':
gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec)

build_file = gyp.common.RelativePath(build_file, options.toplevel_dir)
# If build_file is a symlink, we must not follow it because there's a chance
# it could point to a path above toplevel_dir, and we cannot correctly deal
# with that case at the moment.
build_file = gyp.common.RelativePath(build_file, options.toplevel_dir,
False)

qualified_target_for_hash = gyp.common.QualifiedTarget(build_file, name,
toolset)
Expand Down
20 changes: 12 additions & 8 deletions tools/gyp/pylib/gyp/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def IsPathSection(section):
# If section ends in one of the '=+?!' characters, it's applied to a section
# without the trailing characters. '/' is notably absent from this list,
# because there's no way for a regular expression to be treated as a path.
while section[-1:] in '=+?!':
while section and section[-1:] in '=+?!':
section = section[:-1]

if section in path_sections:
Expand Down Expand Up @@ -893,20 +893,24 @@ def ExpandVariables(input, phase, variables, build_file):
else:
# Fix up command with platform specific workarounds.
contents = FixupPlatformCommand(contents)
p = subprocess.Popen(contents, shell=use_shell,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,
cwd=build_file_dir)
try:
p = subprocess.Popen(contents, shell=use_shell,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,
cwd=build_file_dir)
except Exception, e:
raise GypError("%s while executing command '%s' in %s" %
(e, contents, build_file))

p_stdout, p_stderr = p.communicate('')

if p.wait() != 0 or p_stderr:
sys.stderr.write(p_stderr)
# Simulate check_call behavior, since check_call only exists
# in python 2.5 and later.
raise GypError("Call to '%s' returned exit status %d." %
(contents, p.returncode))
raise GypError("Call to '%s' returned exit status %d while in %s." %
(contents, p.returncode, build_file))
replacement = p_stdout.rstrip()

cached_command_results[cache_key] = replacement
Expand Down
10 changes: 10 additions & 0 deletions tools/gyp/pylib/gyp/msvs_emulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,7 @@ def GetCflags(self, config):
cl('FloatingPointModel',
map={'0': 'precise', '1': 'strict', '2': 'fast'}, prefix='/fp:',
default='0')
cl('CompileAsManaged', map={'false': '', 'true': '/clr'})
cl('WholeProgramOptimization', map={'true': '/GL'})
cl('WarningLevel', prefix='/W')
cl('WarnAsError', map={'true': '/WX'})
Expand Down Expand Up @@ -593,6 +594,15 @@ def GetLdflags(self, config, gyp_to_build_path, expand_special,
'2': 'WINDOWS%s' % minimum_required_version},
prefix='/SUBSYSTEM:')

stack_reserve_size = self._Setting(
('VCLinkerTool', 'StackReserveSize'), config, default='')
if stack_reserve_size:
stack_commit_size = self._Setting(
('VCLinkerTool', 'StackCommitSize'), config, default='')
if stack_commit_size:
stack_commit_size = ',' + stack_commit_size
ldflags.append('/STACK:%s%s' % (stack_reserve_size, stack_commit_size))

ld('TerminalServerAware', map={'1': ':NO', '2': ''}, prefix='/TSAWARE')
ld('LinkIncremental', map={'1': ':NO', '2': ''}, prefix='/INCREMENTAL')
ld('BaseAddress', prefix='/BASE:')
Expand Down
4 changes: 3 additions & 1 deletion tools/gyp/pylib/gyp/win_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,9 @@ def ExecLinkWrapper(self, arch, use_separate_mspdbsrv, *args):
stderr=subprocess.STDOUT)
out, _ = link.communicate()
for line in out.splitlines():
if not line.startswith(' Creating library '):
if (not line.startswith(' Creating library ') and
not line.startswith('Generating code') and
not line.startswith('Finished generating code')):
print line
return link.returncode

Expand Down
20 changes: 17 additions & 3 deletions tools/gyp/pylib/gyp/xcode_emulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -1032,7 +1032,23 @@ def _AdjustLibrary(self, library, config_name=None):
sdk_root = self._SdkPath(config_name)
if not sdk_root:
sdk_root = ''
return l.replace('$(SDKROOT)', sdk_root)
# Xcode 7 started shipping with ".tbd" (text based stubs) files instead of
# ".dylib" without providing a real support for them. What it does, for
# "/usr/lib" libraries, is do "-L/usr/lib -lname" which is dependent on the
# library order and cause collision when building Chrome.
#
# Instead substitude ".tbd" to ".dylib" in the generated project when the
# following conditions are both true:
# - library is referenced in the gyp file as "$(SDKROOT)/**/*.dylib",
# - the ".dylib" file does not exists but a ".tbd" file do.
library = l.replace('$(SDKROOT)', sdk_root)
if l.startswith('$(SDKROOT)'):
basename, ext = os.path.splitext(library)
if ext == '.dylib' and not os.path.exists(library):
tbd_library = basename + '.tbd'
if os.path.exists(tbd_library):
library = tbd_library
return library

def AdjustLibraries(self, libraries, config_name=None):
"""Transforms entries like 'Cocoa.framework' in libraries into entries like
Expand Down Expand Up @@ -1479,8 +1495,6 @@ def _GetXcodeEnv(xcode_settings, built_products_dir, srcroot, configuration,
sdk_root = xcode_settings._SdkRoot(configuration)
if not sdk_root:
sdk_root = xcode_settings._XcodeSdkPath('')
if sdk_root is None:
sdk_root = ''
env['SDKROOT'] = sdk_root

if not additional_settings:
Expand Down