|
@@ -467,16 +467,6 @@ def use_windows_spawn_fix(self, platform=None):
|
|
if os.name != "nt":
|
|
if os.name != "nt":
|
|
return # not needed, only for windows
|
|
return # not needed, only for windows
|
|
|
|
|
|
- # On Windows, due to the limited command line length, when creating a static library
|
|
|
|
- # from a very high number of objects SCons will invoke "ar" once per object file;
|
|
|
|
- # that makes object files with same names to be overwritten so the last wins and
|
|
|
|
- # the library loses symbols defined by overwritten objects.
|
|
|
|
- # By enabling quick append instead of the default mode (replacing), libraries will
|
|
|
|
- # got built correctly regardless the invocation strategy.
|
|
|
|
- # Furthermore, since SCons will rebuild the library from scratch when an object file
|
|
|
|
- # changes, no multiple versions of the same object file will be present.
|
|
|
|
- self.Replace(ARFLAGS="q")
|
|
|
|
-
|
|
|
|
def mySubProcess(cmdline, env):
|
|
def mySubProcess(cmdline, env):
|
|
startupinfo = subprocess.STARTUPINFO()
|
|
startupinfo = subprocess.STARTUPINFO()
|
|
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
|
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
|
@@ -500,19 +490,17 @@ def use_windows_spawn_fix(self, platform=None):
|
|
return rv
|
|
return rv
|
|
|
|
|
|
def mySpawn(sh, escape, cmd, args, env):
|
|
def mySpawn(sh, escape, cmd, args, env):
|
|
|
|
+ # Used by TEMPFILE.
|
|
|
|
+ if cmd == "del":
|
|
|
|
+ os.remove(args[1])
|
|
|
|
+ return 0
|
|
|
|
+
|
|
newargs = " ".join(args[1:])
|
|
newargs = " ".join(args[1:])
|
|
cmdline = cmd + " " + newargs
|
|
cmdline = cmd + " " + newargs
|
|
|
|
|
|
rv = 0
|
|
rv = 0
|
|
env = {str(key): str(value) for key, value in iter(env.items())}
|
|
env = {str(key): str(value) for key, value in iter(env.items())}
|
|
- if len(cmdline) > 32000 and cmd.endswith("ar"):
|
|
|
|
- cmdline = cmd + " " + args[1] + " " + args[2] + " "
|
|
|
|
- for i in range(3, len(args)):
|
|
|
|
- rv = mySubProcess(cmdline + args[i], env)
|
|
|
|
- if rv:
|
|
|
|
- break
|
|
|
|
- else:
|
|
|
|
- rv = mySubProcess(cmdline, env)
|
|
|
|
|
|
+ rv = mySubProcess(cmdline, env)
|
|
|
|
|
|
return rv
|
|
return rv
|
|
|
|
|