Hello, I'm trying to build with VC++ 2005 Express and WinXP SP3 PC (actually I've tried using 2 different PCs). After I fix the path to the print-vse-failure-logs (please see the other bug reported by me: https://bugs.webkit.org/show_bug.cgi?id=53590 ) the build still fails, but I don't see why: afarber@AFARBER-DT:~> ./WebKit/Tools/Scripts/build-webkit WebKitSupportLibrary is up-to-date. Building results into: /home/afarber/WebKit/WebKitBuild WEBKITOUTPUTDIR is set to: C:\cygwin\home\afarber\WebKit\WebKitBuild WEBKITLIBRARIESDIR is set to: C:\cygwin\home\afarber\WebKit\WebKitLibraries\win /cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe win\WebKit.vcproj\WebKit.sln /build Release Found 0 Visual Studio Express Build Logs: ===== BUILD FAILED ====== Please ensure you have run WebKit/Tools/Scripts/update-webkit to install dependencies. You can view build errors by checking the BuildLog.htm files located at: /home/afarber/WebKit/WebKitBuild/obj/<project>/<config>. afarber@AFARBER-DT:~> ll /home/afarber/WebKit/WebKitBuild/obj/ ls: cannot access /home/afarber/WebKit/WebKitBuild/obj/: No such file or directory I've been suggested by aroben@apple.com on the mailing list to submit this situation as bug report. At the same time, I've been able to build WebKit on Mac. So it must be something related to WinXP + VC++ 2005 Express Regards Alex
At the same time C:\cygwin\home\afarber\WebKit\WebKitBuild\Release\obj\WebKit\BuildLog.htm says: Performing Pre-Build Event... /usr/bin/bash Project : error PRJ0002 : Error result 1 returned from 'C:\WINDOWS\system32\cmd.exe'. Project : warning PRJ0018 : The following environment variables were not found: $(PRODUCTION) so there is a build failure, but print-vse-failure-logs fails to report it
I think print-vse-failure-logs needs to be updated now that the layout of WebKitBuild has changed.
I tried to execute print-vse-failure-logs (after tried to build webkit) and got this error: Traceback (most recent call last): File "WebKit/Tools/Scripts/print-vse-failure-logs", line 113, in <module> PrintVisualStudioExpressLogs().main() File "WebKit/Tools/Scripts/print-vse-failure-logs", line 102, in main build_log_paths = self._sort_buildlogs(self._find_buildlogs(self._obj_directory())) File "WebKit/Tools/Scripts/print-vse-failure-logs", line 67, in _sort_buildlogs build_order = self._build_order() File "WebKit/Tools/Scripts/print-vse-failure-logs", line 60, in _build_order sln_path = os.path.join(scm.find_checkout_root(), "WebKit", "win", "WebKit.vcproj", "WebKit.sln") File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 50, in find_checkout_root scm_system = default_scm() File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 66, in default_scm scm_system = detect_scm_system(cwd, patch_directories) File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 86, in detect_scm_system if Git.in_working_directory(absolute_path): File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/checkout/scm.py", line 632, in in_working_directory return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true" File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/system/executive.py", line 101, in run_command return Executive().run_command(*args, **kwargs) File "/home/Felipe/WebKit/Tools/Scripts/webkitpy/common/system/executive.py", line 354, in run_command close_fds=self._should_close_fds()) File "/usr/lib/python2.6/subprocess.py", line 633, in __init__ errread, errwrite) File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory
(In reply to comment #3) > return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true" It's trying to execute git. Felipe, do you have git installed? Is it in your path? This seems like a different issue from the one the reporter described.
(In reply to comment #4) > (In reply to comment #3) > > return run_command(['git', 'rev-parse', '--is-inside-work-tree'], cwd=path, error_handler=Executive.ignore_error).rstrip() == "true" > > It's trying to execute git. Felipe, do you have git installed? Is it in your path? > > This seems like a different issue from the one the reporter described. OK, I installed git now and run print-vse-failure-logs again, and got: The current directory (/home/Felipe) is not a WebKit checkout, using /home/Felipe/WebKit Found 0 Visual Studio Express Build Logs: I think it seems now the same "issue from the one the reporter described". Thank you.
A. Farber, You are sure: there's no a Webkit/WebKitBuild/obj directory. The possible directories you'll find are WebKit/WebKitBuild/Release/obj or WebKit/WebKitBuild/Debug/obj, depending the options passed to build-webkit (--release (default) or --debug). Happens that build-webkit doesn't pass this option to print-vse-failure-logs (as well as print-vse-failure-logs doesn't read such an option). So there's no way to print-vse-failure-logs know correctly in what directory it should search for logs.
Created attachment 83192 [details] Patched print-vse-failure-logs Patch for print-vse-failure-logs accept now options "--debug" or "--release". Lines 114-128 read this possible option, printing help if an error occurs. Class PrintVisualStudioExpressLogs now take one argument "mode", wich can be "--debug" or "--release" or "" (default is "") and is stored as a new attribute self._mode , so the constructor of the class was changed (lines 47, 49) as well as the call to the class in line 129. Options "--configuration" (instead of "--top-level") and self._mode are passed to the script webkit-build-directory in line 86. A "# NOTE:" in method "_obj_directory" was removed, since it's obsolete. New copyright line was added.
Attachment 83192 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files']" exit_code: 1 Total errors found: 0 in 0 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 83196 [details] For compatibility with former patch This patch for build-webkit is for compatibility with the patched print-vse-failure-logs. Now it takes the $configuration (line 582) and pass the correct option to print-vse-failure-logs, depending on $configuration (lines 586-590). Also line 596 was changed to show the correct directory for build logs.
Attachment 83196 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files']" exit_code: 1 Total errors found: 0 in 0 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 83414 [details] *This* is the patch Sorry, I was not attempt in how to create a patch. This file contains the desired patches, and I marked old files as obsolete.
Comment on attachment 83414 [details] *This* is the patch Can we make print-vse-failure-logs respect the current configuration? I.e., this: set-webkit-configuration --debug print-vse-failure-logs …should cause the Debug logs to be printed.
Comment on attachment 83414 [details] *This* is the patch View in context: https://bugs.webkit.org/attachment.cgi?id=83414&action=review How do we test this? We have unit testing for Python and perl, seems we should use it. > Tools/Scripts/build-webkit:590 > + if ($configuration eq 'Debug') { > + system(File::Spec->catfile($scriptDir, "print-vse-failure-logs"), '--debug'); > + } else { > + system(File::Spec->catfile($scriptDir, "print-vse-failure-logs"), '--release'); > + } I'm pretty sure that wkdirs.pm has a function for returning --debug or --release from the $configuration information. > Tools/Scripts/print-vse-failure-logs:126 > + elif len(sys.argv) == 2: > + if sys.argv[1] != "--release" and sys.argv[1] != "--debug": > + usage() > + option = sys.argv[1] Seems we should consider using optparse. It's very easy to do.
Thanks for the patch, btw!
>Can we make print-vse-failure-logs respect the current configuration? I.e., this: > >set-webkit-configuration --debug >print-vse-failure-logs I didn't find a module that could catch the default configuration and pass it to a python script. The only way I see to make print-vse-failure-logs respect the current configuration is making it find "manually" the configuration file, without using a module for it. >I'm pretty sure that wkdirs.pm has a function for returning --debug or --release from the $configuration information. Yes, I find a function argumentsForConfiguration, from webkitdirs.pm, that returns an array with configuration options. '--debug' or '--release' is the first element. >Seems we should consider using optparse. It's very easy to do. I'm implementing it.
(In reply to comment #15) > >Can we make print-vse-failure-logs respect the current configuration? I.e., this: > > I tried to compile webkit on win7 32bit with VC++ 2005 Express after patching the two patches from 53590 and 53591. But I still got failure, following is the output. $ ./build-webkit --debug WebKitSupportLibrary is up-to-date. Building results into: /home/Administrator/WebKit/WebKitBuild WEBKITOUTPUTDIR is set to: C:\cygwin\home\Administrator\WebKit\WebKitBuild WEBKITLIBRARIESDIR is set to: C:\cygwin\home\Administrator\WebKit\WebKitLibrarie s\win /cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe wi n\WebKit.vcproj\WebKit.sln /build Debug 3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren t: 0x2F0000 != 0x3C0000 3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren t: 0x2F0000 != 0x3C0000 Stack trace: Frame Function Args 0022A528 6102792B (0022A528, 00000000, 00000000, 00000000) 0022A818 6102792B (6117DC60, 00008000, 00000000, 6117F977) 0022B848 61004F3B (611A6FAC, 6124CABC, 002F0000, 003C0000) End of stack trace 2 [main] python 8020 fork: child 7512 - died waiting for dll loading, errn o 11 2 [main] python 8020 fork: child 7512 - died waiting for dll loading, errn o 11 Traceback (most recent call last): File "Tools/Scripts/print-vse-failure-logs", line 130, in <module> PrintVisualStudioExpressLogs(option).main() File "Tools/Scripts/print-vse-failure-logs", line 104, in main build_log_paths = self._sort_buildlogs(self._find_buildlogs(self._obj_direct ory())) File "Tools/Scripts/print-vse-failure-logs", line 87, in _obj_directory build_directory = os.path.dirname(self._executive.run_command([build_directo ry_script_path, "--configuration", self._mode]).rstrip()) File "/home/Administrator/WebKit/Tools/Scripts/webkitpy/common/system/executiv e.py", line 354, in run_command close_fds=self._should_close_fds()) File "/usr/lib/python2.6/subprocess.py", line 633, in __init__ errread, errwrite) File "/usr/lib/python2.6/subprocess.py", line 1049, in _execute_child self.pid = os.fork() OSError: [Errno 11] Resource temporarily unavailable ===== BUILD FAILED ====== Please ensure you have run Tools/Scripts/update-webkit to install dependencies. You can view build errors by checking the BuildLog.htm files located at: /home/Administrator/WebKit/WebKitBuild/Debug/obj/<project>.
(In reply to comment #16) > 3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to > remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren > t: 0x2F0000 != 0x3C0000 > 3 [main] python 7512 C:\cygwin\bin\python.exe: *** fatal error - unable to > remap \\?\C:\cygwin\lib\python2.6\lib-dynload\time.dll to same address as paren > t: 0x2F0000 != 0x3C0000 > Stack trace: > Frame Function Args > 0022A528 6102792B (0022A528, 00000000, 00000000, 00000000) > 0022A818 6102792B (6117DC60, 00008000, 00000000, 6117F977) > 0022B848 61004F3B (611A6FAC, 6124CABC, 002F0000, 003C0000) > End of stack trace This is a Cygwin issue, not an issue with the script. Follow these instructions: http://trac.webkit.org/wiki/BuildingOnWindows#ErrorlaunchingApachefromrun-webkit-testsonVista7orothererrorsthatmentionthewordremap