blob: e8aac58cd8fd6e55e5a3a69183e96d9191106a74 [file] [log] [blame] [view]
nodir62c9184e2015-08-25 00:57:461# Windows Split DLLs
andybons3322f762015-08-24 21:37:092
nodir62c9184e2015-08-25 00:57:463A build mode where chrome.dll is split into two separate DLLs. This was
4undertaken as one possible workaround for toolchain limitations on Windows.
andybons3322f762015-08-24 21:37:095
6## How
7
Daniel Bratellf73f0df2018-09-24 13:52:498Split DLL is now default on Windows and controlled by the
9`is_multi_dll_chrome` gn variable.
andybons3322f762015-08-24 21:37:0910
Daniel Bratellf73f0df2018-09-24 13:52:4911`is_multi_dll_chrome` applies only to chrome.dll (and not test binaries).
andybons3322f762015-08-24 21:37:0912
13## Details
14
nodir62c9184e2015-08-25 00:57:4615This forcible split is implemented by putting .lib files in either one DLL or
16the other, and causing unresolved externals that result during linking to be
17forcibly exported from the other DLL. This works relatively cleanly for function
18import/export, however it cannot work for data export.
andybons3322f762015-08-24 21:37:0919
nodir62c9184e2015-08-25 00:57:4620Some more details can be found on the initial commit of the split_link script
xiaoyin.l1003c0b2016-12-06 02:51:1721https://src.chromium.org/viewvc/chrome?revision=200049&view=revision and the
22associated bugs: https://crbug.com/237249 https://crbug.com/237267.