blob: 2bfa7579448ab553457c1cb450a25697204dc8b2 [file] [log] [blame] [edit]
diff -Naur node-v11.15.0-orig/configure.py node-v11.15.0/configure.py
--- node-v11.15.0-orig/configure.py
+++ node-v11.15.0/configure.py
@@ -1687,7 +1687,7 @@
if options.use_ninja:
gyp_args += ['-f', 'ninja']
-elif flavor == 'win' and sys.platform != 'msys':
+elif flavor == 'win' and sys.platform != 'msys' and not ('GCC' in sys.version):
gyp_args += ['-f', 'msvs', '-G', 'msvs_version=auto']
else:
gyp_args += ['-f', 'make-' + flavor]
diff -Naur node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/make.py node-v11.15.0/tools/gyp/pylib/gyp/generator/make.py
--- node-v11.15.0-orig/tools/gyp/pylib/gyp/generator/make.py 2019-04-30 20:31:53.000000000 +0300
+++ node-v11.15.0/tools/gyp/pylib/gyp/generator/make.py 2019-06-28 08:07:23.053184000 +0300
@@ -94,6 +94,8 @@
default_variables.setdefault('OS', operating_system)
if flavor == 'aix':
default_variables.setdefault('SHARED_LIB_SUFFIX', '.a')
+ elif flavor == 'win':
+ default_variables.setdefault('SHARED_LIB_SUFFIX', '.dll')
else:
default_variables.setdefault('SHARED_LIB_SUFFIX', '.so')
default_variables.setdefault('SHARED_LIB_DIR','$(builddir)/lib.$(TOOLSET)')
@@ -172,6 +174,26 @@
cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS)
"""
+LINK_COMMANDS_WINMINGW = """\
+quiet_cmd_alink = AR($(TOOLSET)) $@
+cmd_alink = rm -f $@ && echo $(filter %.o,$^) >> $(@).rsp && $(AR.$(TOOLSET)) crs $@ @$(@).rsp
+
+quiet_cmd_alink_thin = AR($(TOOLSET)) $@
+cmd_alink_thin = rm -f $@ && echo $(filter %.o,$^) >> $(@).rsp && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) @$(@).rsp
+
+# Due to circular dependencies between libraries :(, we wrap the
+# special "figure out circular dependencies" flags around the entire
+# input list during linking.
+quiet_cmd_link = LINK($(TOOLSET)) $@
+cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
+
+quiet_cmd_solink = SOLINK($(TOOLSET)) $@
+cmd_solink = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(@F).a -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS)
+
+quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
+cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(@F).a -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS)
+"""
+
LINK_COMMANDS_MAC = """\
quiet_cmd_alink = LIBTOOL-STATIC $@
cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^)
@@ -1354,6 +1376,8 @@
target_prefix = 'lib'
if self.flavor == 'aix':
target_ext = '.a'
+ elif self.flavor == 'win':
+ target_ext = '.dll'
else:
target_ext = '.so'
elif self.type == 'none':
@@ -2060,6 +2084,11 @@
header_params.update({
'copy_archive_args': copy_archive_arguments,
})
+ elif flavor == 'win':
+ copy_archive_arguments = '-pPRf'
+ header_params.update({
+ 'link_commands': LINK_COMMANDS_WINMINGW,
+ })
elif flavor == 'aix':
copy_archive_arguments = '-pPRf'
header_params.update({