summaryrefslogtreecommitdiff
path: root/tools/gyp
diff options
context:
space:
mode:
authorDaniel Bevenius <daniel.bevenius@gmail.com>2017-04-18 02:20:56 -0400
committerRefael Ackermann <refack@gmail.com>2017-05-11 08:12:24 -0400
commit9fd22bc4d4a90a5cdbf6db4d61eb94179f136a12 (patch)
tree25a65b82045c8a2902e1a717b54a61940d266136 /tools/gyp
parentbb88caec0680d098f4de936e1b2d09756344fca1 (diff)
downloadandroid-node-v8-9fd22bc4d4a90a5cdbf6db4d61eb94179f136a12.tar.gz
android-node-v8-9fd22bc4d4a90a5cdbf6db4d61eb94179f136a12.tar.bz2
android-node-v8-9fd22bc4d4a90a5cdbf6db4d61eb94179f136a12.zip
build: fix ninja build failure (GYP patch)
Currently the files specified in libraries in node.gyp `cctest` target are getting a '.lib' extension on windows when generated with ninja. This commit adds a check to see if a file has a '.obj' extension and in that case no '.lib' extension will be added. Also, the LIBS specified in the 'libraries' section are not being included in the --start-group --end-group section which means that these libraries will not be searched causing issue with linkers where the order matters. PR-URL: https://github.com/nodejs/node/pull/12484 Fixes: https://github.com/nodejs/node/issues/12448 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'tools/gyp')
-rw-r--r--tools/gyp/pylib/gyp/generator/ninja.py4
-rw-r--r--tools/gyp/pylib/gyp/msvs_emulation.py3
2 files changed, 4 insertions, 3 deletions
diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py
index 0555a4a90d..1f67c94500 100644
--- a/tools/gyp/pylib/gyp/generator/ninja.py
+++ b/tools/gyp/pylib/gyp/generator/ninja.py
@@ -2148,13 +2148,13 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params,
restat=True,
command=mtime_preserving_solink_base % {'suffix': '@$link_file_list'},
rspfile='$link_file_list',
- rspfile_content='-Wl,--start-group $in -Wl,--end-group $solibs $libs',
+ rspfile_content='-Wl,--start-group $in $solibs $libs -Wl,--end-group',
pool='link_pool')
master_ninja.rule(
'link',
description='LINK $out',
command=('$ld $ldflags -o $out '
- '-Wl,--start-group $in -Wl,--end-group $solibs $libs'),
+ '-Wl,--start-group $in $solibs $libs -Wl,--end-group'),
pool='link_pool')
elif flavor == 'win':
master_ninja.rule(
diff --git a/tools/gyp/pylib/gyp/msvs_emulation.py b/tools/gyp/pylib/gyp/msvs_emulation.py
index e4a85a96e6..14daaec4c7 100644
--- a/tools/gyp/pylib/gyp/msvs_emulation.py
+++ b/tools/gyp/pylib/gyp/msvs_emulation.py
@@ -269,7 +269,8 @@ class MsvsSettings(object):
def AdjustLibraries(self, libraries):
"""Strip -l from library if it's specified with that."""
libs = [lib[2:] if lib.startswith('-l') else lib for lib in libraries]
- return [lib + '.lib' if not lib.endswith('.lib') else lib for lib in libs]
+ return [lib + '.lib' if not lib.endswith('.lib') \
+ and not lib.endswith('.obj') else lib for lib in libs]
def _GetAndMunge(self, field, path, default, prefix, append, map):
"""Retrieve a value from |field| at |path| or return |default|. If