Bug 22315
| Summary: | Adopt check-for-exit-time-destructors on Windows | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Adam Roben (:aroben) <aroben> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | bfulgham, darin, ddkilzer, pvollan |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=22314 https://bugs.webkit.org/show_bug.cgi?id=160302 |
||
Adam Roben (:aroben)
It would be good to adopt the check-for-global-initializers script on Windows. I've done a little investigation into what would have to change in the script to make it work on Windows. Here's what I've come up with (based on <http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/check-for-exit-time-destructors?rev=38476>):
1. Use of Xcode-specific environment variables
We can either set similar variables on Windows or pass the relevant values as parameters.
2. Use of a "link file list"
We can get the list of object files linked into the executable by using "dumpbin.exe /archivemembers".
3. Searching for "___cxa_atexit" to indicate an exit-time destructor
On Windows, "_atexit" is used instead.
4. List of files to skip uses .o extension
On Windows, these files have a .obj extension. We could just use the part of
the filename before the extension instead.
5. Use of otool to disassemble binaries
On Windows, we can use "dumpbin.exe /disasm" instead.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Adam Roben (:aroben)
See bug 22314 about adopting check-for-global-initializers as well.
David Kilzer (:ddkilzer)
NOTE: Bug 160302 is going to remove these scripts.
However, I think the scripts would have had to use different tools to make them work on Windows. (Maybe MSVC++ has a switch similar to -Wexit-time-destructors instead?)