Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Issue 6676030: WinDDK ATL and MSVC express compatability (Closed)

Created:
9 years, 9 months ago by RN
Modified:
9 years, 7 months ago
CC:
chromium-reviews, pam+watch_chromium.org, amit, darin-cc_chromium.org, Paweł Hajdan Jr., jam, rdsmith+dwatch_chromium.org, brettw-cc_chromium.org
Visibility:
Public.

Description

WinDDK ATL and MSVC express 2008/2005 compatability Gives 'out of the box' compatability with VC2008 express - i.e. no modifications needed to system headers or .gyp* files or related hacks. Just set the GYP_MSVS_VERSION to 200Xe (e for express, same as the linked blog on the issue and first google hit as well). 1) Changes to build\common.gypi to turn off to define COMPILER_MSVC_EXPRESS if a express is detected (through the GYP_MSVC_VERSION environment variable), turn off the _SECURE_ATL define (which is flagged as an error with WinDDK's ATL, _SECURE_ATL adds [more] CRT checks to other ATL versions) and hard to link to the atl stdthunk library with express editions. Also, explicitly link to the base WinSDK libraries in common.gypi and mini_installer.gypi for MSVC 2005 express. 2) Fixes a few .cc files that have the wrong include order with the ATL headers when using the Windows DDK ATL. The Windows DDK ATL brings in intsafe.h (WinSDK, not WinDDK) with atlwin.h and generates multiple INTXX_MIN/MAX def warnings which get flagged as errors with the warnings as errors flag if not included before other libraries that have the same definitions like ICU. 3) Changes to .rc files to avoid pulling in afxres.h (an MFC header - it's available in the WinDDK) and winres.h which VCExpress doesn't have (it's available in a WinSDK sample, but that kind of the purpose of it). The main Chromium .rc files are already structured this way, I just changed the rest and changed the output of grit to do the same. 4) Removes the memset obj file linking in mini_installer.gyp and simply implements memset for mini_installer.cc. Only changes to the chromium branch now. There are some .rc files in the Python26, Native Client, and Angle in samples that could #3 changes. They are not required for Chromium, however. ------ VC2005SP1 can be downloaded at http://www.microsoft.com/downloads/en/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&displaylang=en (or non-SP1 at http://download.microsoft.com/download/8/3/a/83aad8f9-38ba-4503-b3cd-ba28c360c27b/ENU/vcsetup.exe) VC2008SP1 can be downloaded at http://www.microsoft.com/downloads/en/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569&displaylang=en currently. The base developer instructions work fine afterwards with a couple tweaks for express versions: http://www.chromium.org/developers/how-tos/build-instructions-windows Under "Additional (free) downloads" under step 2: X) Only the first 3 Non-SP KB Patches are needed for express. Don't forget to forget GYP_MSVS_VERSION environment as appropriate - 2008e for Visual C++ 2008 Express, for example. Under "Additional (free) downloads" after step 5 [These only apply to 2008 express, 2005 works fine out of the box]: 6A) Download the WinDDK for the atl headers and libs - http://msdn.microsoft.com/en-us/windows/hardware/gg487463.aspx. It works fine, but you do not need to install the whole DDK. In the WDK directory just install headers.msi, libs_x86fre.msi, and libs_x64fre.msi; just grab the atl headers and atl*.lib libs; right click the installers and uninstall afterwards. Add the appropriate include and lib paths to your global settings. 6B) To build x64 targets (x64 Native Client) download: http://www.cppblog.com/Files/xcpp/VCE64BIT_WIN7SDK.zip Follow the readme instructions. Further information behind that and x64 target building with express: - http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ - http://www.cppblog.com/xcpp/archive/2009/09/09/vc2008express_64bit_win7sdk.html ---------------- BUG=1433, 5026, 72885 TEST=Compiles in both Debug and Release mode in Visual C++ Express 2008/2005 and does not effect other build setups. In addition, the WinDDK ATL compiles with the secure_atl=0 in the GYP_DEFINES environment variable on non-express versions of MSVC. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=78921

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 28

Patch Set 3 : Address comments; add atl check #

Patch Set 4 : common.gypi: use gyp defines instead of direct compiler flags; _SECURE_ATL conditional handling #

Total comments: 16

Patch Set 5 : Address OS_WIN ifdefs in source files; update to 78547 and fix merge conflict #

Total comments: 2

Patch Set 6 : Address comments: -EXPRESS define, memset always implemented, coding style #

Total comments: 36

Patch Set 7 : Address comments; r78670; make atlcheck.h not pull in header #

Total comments: 6

Patch Set 8 : Address comments; more lint; AUTHORS #

Patch Set 9 : Take out atlcheck; VC2005e compat #

Unified diffs Side-by-side diffs Delta from patch set Stats (+167 lines, -53 lines) Patch
M AUTHORS View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M build/common.gypi View 1 2 3 4 5 6 7 8 5 chunks +35 lines, -2 lines 0 comments Download
M chrome/app/cf_resources.rc View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -1 line 0 comments Download
M chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -0 lines 0 comments Download
M chrome/default_plugin/plugin_database_handler.cc View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -1 line 0 comments Download
M chrome/installer/gcapi/gcapi_test.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/installer/mini_installer.gyp View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -15 lines 0 comments Download
M chrome/installer/mini_installer/mini_installer.cc View 1 2 3 4 5 6 7 8 4 chunks +43 lines, -14 lines 0 comments Download
M chrome/installer/setup/setup.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/installer/setup/setup_unittests.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/installer/tools/validate_installation.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/installer/util/installer_util_unittests.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/test/data/resource.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download
M chrome_frame/chrome_tab_version.rc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M chrome_frame/resources/tlb_resource.rc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M tools/grit/grit/format/rc.py View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -1 line 0 comments Download
M tools/grit/grit/tool/resize.py View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -1 line 0 comments Download
M views/controls/table/table_view_unittest.cc View 1 2 3 4 5 6 7 8 2 chunks +10 lines, -2 lines 0 comments Download
M webkit/plugins/npapi/test/npapi_test.rc View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -2 lines 0 comments Download

Messages

Total messages: 26 (0 generated)
RN
Take a look and let me know what you think. Original discuss thread where it ...
9 years, 9 months ago (2011-03-16 02:55:49 UTC) #1
RN
Updated description and patch; no modifications no longer needed to other repositories. The new changes ...
9 years, 9 months ago (2011-03-16 09:57:05 UTC) #2
Mark Mentovai
Overall, I think you’ve done a nice job. I’d like a Windows expert to comment ...
9 years, 9 months ago (2011-03-16 16:25:19 UTC) #3
M-A Ruel
For safety reasons, I'd prefer this patch to be split in two, having the gypi ...
9 years, 9 months ago (2011-03-16 17:48:55 UTC) #4
RN
New set uploaded that should the comments - thanks for the reviews. Let me know ...
9 years, 9 months ago (2011-03-17 06:33:24 UTC) #5
RN
Some final touchups to common.gypi to use it's built-in defines rather then the /D compiler ...
9 years, 9 months ago (2011-03-17 13:22:53 UTC) #6
M-A Ruel
http://codereview.chromium.org/6676030/diff/4039/build/common.gypi File build/common.gypi (right): http://codereview.chromium.org/6676030/diff/4039/build/common.gypi#newcode1467 build/common.gypi:1467: 'COMPILER_MSVC_EXPRESS', I prefer COMPILER_MSVC_EXPRESS to be set in build/build_config.h ...
9 years, 9 months ago (2011-03-17 14:01:24 UTC) #7
Mark Mentovai
http://codereview.chromium.org/6676030/diff/4039/build/common.gypi File build/common.gypi (right): http://codereview.chromium.org/6676030/diff/4039/build/common.gypi#newcode457 build/common.gypi:457: 'secure_atl%': 0, For my own benefit, what’s “secure” ATL? ...
9 years, 9 months ago (2011-03-17 16:45:10 UTC) #8
Mark Mentovai
http://codereview.chromium.org/6676030/diff/4039/build/common.gypi File build/common.gypi (right): http://codereview.chromium.org/6676030/diff/4039/build/common.gypi#newcode457 build/common.gypi:457: 'secure_atl%': 0, Mark Mentovai wrote: > For my own ...
9 years, 9 months ago (2011-03-17 16:49:48 UTC) #9
RN
New patch with merge conflict resolved and the platform independence in source files taken care ...
9 years, 9 months ago (2011-03-17 16:50:27 UTC) #10
Mark Mentovai
http://codereview.chromium.org/6676030/diff/16001/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc File chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc (right): http://codereview.chromium.org/6676030/diff/16001/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc#newcode7 chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc:7: #if defined(OS_WIN) http://www.chromium.org/developers/coding-style: #includes should be ordered per Google ...
9 years, 9 months ago (2011-03-17 16:54:18 UTC) #11
Randy Smith (Not in Mondays)
Ryan: This is a fairly large patch, and I don't see systems I have any ...
9 years, 9 months ago (2011-03-17 17:17:23 UTC) #12
RN
Yet another patch with most of the comments addressed I think. I can't address the ...
9 years, 9 months ago (2011-03-17 20:15:11 UTC) #13
Randy Smith (Not in Mondays)
On 2011/03/17 20:15:11, RN wrote: > On 2011/03/17 17:17:23, rdsmith wrote: > > Ryan: This ...
9 years, 9 months ago (2011-03-17 20:27:06 UTC) #14
Mark Mentovai
I suspect that my review and Marc-Antoine’s are all you’ll need. http://codereview.chromium.org/6676030/diff/16010/base/win/atlcheck.h File base/win/atlcheck.h (right): ...
9 years, 9 months ago (2011-03-17 20:43:42 UTC) #15
RN
Thanks for another detailed review. This should address the comments, and then some. I also ...
9 years, 9 months ago (2011-03-18 09:34:23 UTC) #16
Mark Mentovai
We’re down to the most minor of nits now. http://codereview.chromium.org/6676030/diff/16010/chrome/installer/mini_installer/mini_installer.cc File chrome/installer/mini_installer/mini_installer.cc (right): http://codereview.chromium.org/6676030/diff/16010/chrome/installer/mini_installer/mini_installer.cc#newcode842 chrome/installer/mini_installer/mini_installer.cc:842: ...
9 years, 9 months ago (2011-03-18 14:54:47 UTC) #17
Mark Mentovai
We’re down to the most minor of nits now.
9 years, 9 months ago (2011-03-18 14:55:04 UTC) #18
RN
Added a few related lint things in addition to the comments below: NOLINT to appease ...
9 years, 9 months ago (2011-03-18 16:39:55 UTC) #19
Mark Mentovai
LGTM (Still needs a try run before checking in. I can be your checkin-buddy if ...
9 years, 9 months ago (2011-03-18 16:49:25 UTC) #20
M-A Ruel
On 2011/03/18 16:49:25, Mark Mentovai wrote: > LGTM IMHO, I still think this change is ...
9 years, 9 months ago (2011-03-18 16:53:44 UTC) #21
RN
On 2011/03/18 16:49:25, Mark Mentovai wrote: > (Still needs a try run before checking in. ...
9 years, 9 months ago (2011-03-18 22:58:05 UTC) #22
Mark Mentovai
Sent out to the try server. Non-Windows may show a failure during the update/patch step ...
9 years, 9 months ago (2011-03-21 16:04:08 UTC) #23
RN
On 2011/03/21 16:04:08, Mark Mentovai wrote: > Sent out to the try server. Non-Windows may ...
9 years, 9 months ago (2011-03-21 16:31:12 UTC) #24
RN
Ok, patch uploaded and good to go; mind doing one more trybot round? Should be ...
9 years, 9 months ago (2011-03-21 17:02:12 UTC) #25
Mark Mentovai
9 years, 9 months ago (2011-03-21 21:00:18 UTC) #26
r78921, thanks for the patch!

Powered by Google App Engine
This is Rietveld 408576698