Commit graph

74012 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 53abbb06b5
[MOUNTMGR][MUP] Use global definition of INIT_FUNCTION/INIT_SECTION (Addendum to 71fefa32). 2019-01-27 02:40:11 +01:00
Hermès Bélusca-Maïto 19f6fc2525
[MVDM] Use again the correct CMAKE_C_COMPILER to pre-process the ASM code (addendum to 09c06a2f). 2019-01-27 02:40:10 +01:00
Hermès Bélusca-Maïto 6b1e1df5c9
[FREELDR] Re-integrate the ASM files (and corresponding C code) in MSVC builds, that were previously compiled just for GCC builds. (#1224)
- Multiboot support added back in FreeLdr MSVC builds so that it can be
  booted using e.g. GRUB. See CORE-15563.

- Re-introduce the disk drive mapper code.
2019-01-27 00:51:26 +01:00
Hermès Bélusca-Maïto ed83552229
[FREELDR] Introduce a MSVC "linker script" file that centralizes the commands for defining section-limit symbols, and the ordering and merging of PE sections, and the necessary CMake code to use it. (#1224)
As the MSVC linker alone doesn't permit such control, the file uses
ASM language (C can alternatively be used), together with extra linker
command-line switches.

It is pre-processed 3 times: first for generating the ASM code, second
for the C code and the third time for generating the linker response
file.

In our case, the ASM code defines the __bss_start__ and __bss_end__
symbols that allow us to find the limits of the .bss section (which is
by the way automatically appended to the .data section by the MSVC linker).
The C code is used to specify the list of linker switches that can be
passed through the `#pragma comment(linker, ...)' directive (the can be
alternatively specified in the linker response section).
Finally the linker response section contains all the linker switches
that cannot be specified with the `#pragma comment(linker, ...)'
directive.

Using all this we can recycle the BSS initialization code, that has been
written originally for GCC only, also for the MSVC builds.

Also, remove the outdated .text16 section merging.
2019-01-27 00:51:25 +01:00
Hermès Bélusca-Maïto aaee856cea
[FREELDR] Minor code maintenance.
- Whitespace;

- Explicitly use string pooling (option "/GF"), so that even if it's
  used globally in the main ReactOS CMAKE file or not, we still have it
  there, because we are quite size-constrained;

- Rename the source lists (OK, we understand it's _COMMON_ ...);
- Remove redundant double inclusion of linuxboot.c;
- In the 'freeldr_common' static library, compile the ASM code first.
2019-01-27 00:51:19 +01:00
Hermès Bélusca-Maïto 0ee02b2c4d
[SDK/INCLUDE] Fix the .code16 macro definition for MASM/ML.
Modify the .code16 macro so that the 16-bit code segment can get a
chance to be correctly merged with other (possibly 32-bit) code
segments, without keeping generating multiple .text segments with
different attributes and generating the corresponding LNK4078 warning.

This fixes the warning when compiling NTOSKRNL on MSVC:
"v86.S.obj : warning LNK4078: multiple '.text' sections found with different attributes (C0520040)".
2019-01-27 00:51:00 +01:00
Amine Khaldi c90b53d5ad [MSADP32.ACM] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:18:47 +01:00
Amine Khaldi 3ea8528909 [MSACM32] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:18:13 +01:00
Amine Khaldi 127d443593 [MMDEVAPI_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:17:35 +01:00
Amine Khaldi 31d268d584 [MMDEVAPI] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:17:08 +01:00
Amine Khaldi 0a904ca409 [MLANG_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:16:35 +01:00
Amine Khaldi ccc3eeaea8 [MLANG] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:15:35 +01:00
Amine Khaldi bca17f6bf6 [MCIWAVE] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:15:03 +01:00
Amine Khaldi a9e6e64fa5 [MAPI32_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:14:31 +01:00
Amine Khaldi dd78a4bf83 [MAPI32] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:13:59 +01:00
Amine Khaldi 2ea897da44 [LOCALUI_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:13:30 +01:00
Amine Khaldi 792a2286d8 [JSPROXY] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:12:47 +01:00
Amine Khaldi 20f9fb6150 [JSCRIPT_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:12:15 +01:00
Amine Khaldi 660f7b9090 [JSCRIPT] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:11:40 +01:00
Amine Khaldi 9a0babd145 [INETMIB1_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:11:11 +01:00
Amine Khaldi 4973a53fc3 [INETCOMM] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:10:33 +01:00
Amine Khaldi c0deab6d9d [IMM32] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:10:01 +01:00
Amine Khaldi 2653fad683 [IMAADP32.ACM] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:09:32 +01:00
Amine Khaldi ec33091a1d [IEFRAME] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:08:54 +01:00
Amine Khaldi d03e237837 [IMAGEHLP_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:08:26 +01:00
Amine Khaldi bd88475d94 [ICCVID] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:07:54 +01:00
Amine Khaldi 99138ae93e [HLINK_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:07:24 +01:00
Amine Khaldi 07e4452656 [HLINK] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:06:56 +01:00
Amine Khaldi 279107d5cf [HID_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:06:23 +01:00
Amine Khaldi 066d754700 [HHCTRL] Sync with Wine Staging 4.0. CORE-15682 2019-01-26 13:05:48 +01:00
Katayama Hirofumi MZ f9037bd33f
[WIN32KNT_APITEST] Improve NtGdiSetBitmapBits testcase more and more (#1307)
CORE-15657
2019-01-26 20:28:40 +09:00
Katayama Hirofumi MZ 82c7571e43
[WIN32KNT_APITEST] NtGdiSetBitmapBits: Expand tabs to spaces (#1306)
Expand Tabs to Spaces in NtGdiSetBitmapBits testcase. Follow-up of #1304.
2019-01-26 19:10:23 +09:00
Katayama Hirofumi MZ 13a6583fa0
[WIN32KNT_APITEST] Improve NtGdiSetBitmapBits more (#1304)
Add some tests. CORE-15657
2019-01-26 11:38:42 +09:00
Katayama Hirofumi MZ 08d72bd076 [WIN32KNT_APITEST] Fix NtGdiGetFontResourceInfoInternalW message 2019-01-25 23:01:07 +09:00
Amine Khaldi 7d57324d5d [GDIPLUS_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:23:03 +01:00
Amine Khaldi 07c408ae72 [PSDK] Update gdiplusflat.h. CORE-15682 2019-01-25 13:22:24 +01:00
Amine Khaldi 89f10a28f7 [GDIPLUS] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:21:54 +01:00
Amine Khaldi 4d5fa2bac7 [DNSAPI_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:21:12 +01:00
Amine Khaldi 20c427d29e [CRYPTUI] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:20:18 +01:00
Amine Khaldi b807af385e [CRYPT32_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:19:36 +01:00
Amine Khaldi b1b70ef9ed [CRYPT32] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:19:03 +01:00
Amine Khaldi 9755a82226 [PSDK] Update wincrypt.h. CORE-15682 2019-01-25 13:18:23 +01:00
Amine Khaldi 8767115816 [CREDUI] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:17:45 +01:00
Amine Khaldi 90f41ebb28 [COMDLG32] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:17:07 +01:00
Amine Khaldi 5f7243b577 [COMCTL32_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:16:18 +01:00
Amine Khaldi 07f4be3faf [PSDK] Update commctrl.h. CORE-15682 2019-01-25 13:15:42 +01:00
Amine Khaldi 58aee30e99 [CMD_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:15:06 +01:00
Amine Khaldi 379c53db18 [AVIFIL32] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:14:32 +01:00
Amine Khaldi 0d35c5159b [ATL100_WINETEST] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:14:00 +01:00
Amine Khaldi f9fd4bbc7c [ATL] Sync with Wine Staging 4.0. CORE-15682 2019-01-25 13:13:28 +01:00