RESOLVED WORKSFORME 87790
MSVCX64SPINLOCK WTF TCSpinLock.h doesn't compile for x64 with Visual Studio
https://bugs.webkit.org/show_bug.cgi?id=87790
Summary WTF TCSpinLock.h doesn't compile for x64 with Visual Studio
Alex Christensen
Reported 2012-05-29 16:08:59 PDT
The file Source/WTF/wtf/TCSpinLock.h contains assembly code with an __asm keyword that compiles with Visual Studio for x86, but not for x64. Code that uses the intrinsic InterlockedExchange function has already been written below, but the #if incorrectly does not use it when MSVC is compiling for a 64 bit machine. This can be fixed by changing line 37 from #if (CPU(X86) || CPU(X86_64) || CPU(PPC)) && (COMPILER(GCC) || COMPILER(MSVC)) to #if (CPU(X86) || CPU(X86_64) || CPU(PPC)) && COMPILER(GCC) || CPU(X86) && COMPILER(MSVC)
Attachments
patch for Source/WTF/wtf/TCSpinLock.h (495 bytes, patch)
2012-05-30 08:40 PDT, Alex Christensen
no flags
patch (540 bytes, patch)
2012-05-30 08:45 PDT, Alex Christensen
no flags
Patch (1.10 KB, patch)
2012-06-05 09:34 PDT, Alex Christensen
no flags
Patch (1.13 KB, patch)
2012-06-14 08:49 PDT, Alex Christensen
no flags
Patch (1.14 KB, patch)
2012-06-14 09:11 PDT, Alex Christensen
bfulgham: review+
webkit.review.bot: commit-queue-
Alex Christensen
Comment 1 2012-05-30 08:40:50 PDT
Created attachment 144829 [details] patch for Source/WTF/wtf/TCSpinLock.h
Alex Christensen
Comment 2 2012-05-30 08:45:12 PDT
Patrick R. Gansterer
Comment 3 2012-05-30 09:18:29 PDT
Every patch needs a ChangeLog entry: See http://www.webkit.org/coding/contributing.html for more information about this.
Alex Christensen
Comment 4 2012-06-05 09:34:22 PDT
Brent Fulgham
Comment 5 2012-06-13 09:15:15 PDT
Comment on attachment 145821 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=145821&action=review Thanks for looking into this! I have a couple of minor requests, otherwise this looks great. > Source/WTF/ChangeLog:8 > + * wtf/TCSpinLock.h: Please state here that you modified the test for MSVC suitability. > Source/WTF/wtf/TCSpinLock.h:-37 > -#if (CPU(X86) || CPU(X86_64) || CPU(PPC)) && (COMPILER(GCC) || COMPILER(MSVC)) I don't care for the reformatting of these tests, since it loses the distinction between architecture and compiler. I would prefer to see something along the lines of: #if ((CPU(X86) || CPU(X86_64) || CPU(PPC)) && COMPILER(GCC)) || (CPU(X86) && COMPILER(MSVC))
Alex Christensen
Comment 6 2012-06-14 08:49:13 PDT
WebKit Review Bot
Comment 7 2012-06-14 08:52:22 PDT
Attachment 147592 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WTF/ChangeLog', u'Source/WTF/wtf/TC..." exit_code: 1 Source/WTF/ChangeLog:9: Line contains tab character. [whitespace/tab] [5] Total errors found: 1 in 2 files If any of these errors are false positives, please file a bug against check-webkit-style.
Alex Christensen
Comment 8 2012-06-14 09:11:19 PDT
Brent Fulgham
Comment 9 2012-06-14 09:18:29 PDT
Comment on attachment 147595 [details] Patch Looks great! Thanks for helping out with 64-bit work :-)
WebKit Review Bot
Comment 10 2012-06-14 13:37:43 PDT
Comment on attachment 147595 [details] Patch Rejecting attachment 147595 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: , u'--reviewer', u'Brent Fulg..." exit_code: 1 cwd: /mnt/git/webkit-commit-queue/ Parsed 2 diffs from patch file(s). patching file Source/WTF/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file Source/WTF/wtf/TCSpinLock.h Hunk #1 FAILED at 34. 1 out of 1 hunk FAILED -- saving rejects to file Source/WTF/wtf/TCSpinLock.h.rej Failed to run "[u'/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply', u'--force', u'--reviewer', u'Brent Fulg..." exit_code: 1 cwd: /mnt/git/webkit-commit-queue/ Full output: http://queues.webkit.org/results/12960357
Alex Christensen
Comment 11 2012-06-14 13:48:47 PDT
what does this mean?
Patrick R. Gansterer
Comment 12 2012-06-14 15:52:57 PDT
(In reply to comment #11) > what does this mean? That's usually a merge conflict. If you want you can rebase you patch and upload it again, or I can commit it manually for you.
Patrick R. Gansterer
Comment 13 2012-06-17 14:15:20 PDT
This isn't needed any more since r120356.
Note You need to log in before you can comment on or make changes to this bug.