blob: 345c3e741b106f6c632821515e2520c9140a3e55 [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
Nico Weberc36b0152020-04-18 03:12:466We removed support for this again after the toolchain limitations were fixed,
7see https://crbug.com/726150.
8
andybons3322f762015-08-24 21:37:099## How
10
Nico Weberc36b0152020-04-18 03:12:4611Split DLL used to be controlled by the `is_multi_dll_chrome` gn variable.
andybons3322f762015-08-24 21:37:0912
13## Details
14
Nico Weberc36b0152020-04-18 03:12:4615This forcible split was implemented by putting .lib files in either one DLL or
nodir62c9184e2015-08-25 00:57:4616the 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
Nico Weberc36b0152020-04-18 03:12: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.