Skip to content

Commit a8d21ee

Browse files
Merge branch 'master' into OVMF_Memory_Debug_Logging4
Signed-off-by: Aaron Young <[email protected]>
2 parents f3d0af4 + 5bc52de commit a8d21ee

File tree

85 files changed

+2533
-521
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2533
-521
lines changed

ArmVirtPkg/ArmVirt.dsc.inc

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
133133

134134
# Flattened Device Tree (FDT) access library
135-
FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
135+
FdtLib|MdePkg/Library/BaseFdtLib/BaseFdtLib.inf
136136

137137
# PCI Libraries
138138
PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf

ArmVirtPkg/ArmVirtCloudHv.dsc

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
!include MdePkg/MdeLibs.dsc.inc
6262

6363
[LibraryClasses.common.PEIM]
64+
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
6465
ArmVirtMemInfoLib|ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf
6566

6667
[LibraryClasses.common.DXE_DRIVER]

ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoLib.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
#include <PiPei.h>
1010

1111
#include <Base.h>
12-
#include <libfdt.h>
1312
#include <Library/ArmLib.h>
1413
#include <Library/BaseMemoryLib.h>
1514
#include <Library/DebugLib.h>
15+
#include <Library/FdtLib.h>
1616
#include <Library/MemoryAllocationLib.h>
1717
#include <Library/PcdLib.h>
1818

@@ -68,32 +68,32 @@ CloudHvVirtMemInfoPeiLibConstructor (
6868
//
6969
// Make sure we have a valid device tree blob
7070
//
71-
if (fdt_check_header (DeviceTreeBase) != 0) {
71+
if (FdtCheckHeader (DeviceTreeBase) != 0) {
7272
return EFI_NOT_FOUND;
7373
}
7474

7575
//
7676
// Look for the lowest memory node
7777
//
7878
for (Prev = 0; ; Prev = Node) {
79-
Node = fdt_next_node (DeviceTreeBase, Prev, NULL);
79+
Node = FdtNextNode (DeviceTreeBase, Prev, NULL);
8080
if (Node < 0) {
8181
break;
8282
}
8383

8484
//
8585
// Check for memory node
8686
//
87-
Type = fdt_getprop (DeviceTreeBase, Node, "device_type", &Len);
87+
Type = FdtGetProp (DeviceTreeBase, Node, "device_type", &Len);
8888
if ((Type != 0) && (AsciiStrnCmp (Type, "memory", Len) == 0)) {
8989
//
9090
// Get the 'reg' property of this node. For now, we will assume
9191
// two 8 byte quantities for base and size, respectively.
9292
//
93-
RegProp = fdt_getprop (DeviceTreeBase, Node, "reg", &Len);
93+
RegProp = FdtGetProp (DeviceTreeBase, Node, "reg", &Len);
9494
if ((RegProp != 0) && (Len == (2 * sizeof (UINT64)))) {
95-
CurBase = fdt64_to_cpu (ReadUnaligned64 (RegProp));
96-
CurSize = fdt64_to_cpu (ReadUnaligned64 (RegProp + 1));
95+
CurBase = Fdt64ToCpu (ReadUnaligned64 (RegProp));
96+
CurSize = Fdt64ToCpu (ReadUnaligned64 (RegProp + 1));
9797

9898
DEBUG ((
9999
DEBUG_INFO,

ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
FdtLib
3636
MemoryAllocationLib
3737
PcdLib
38+
PrePiLib
3839

3940
[Pcd]
4041
gArmTokenSpaceGuid.PcdFdBaseAddress

ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
#include <Library/MemoryAllocationLib.h>
1616
#include <Library/DebugLib.h>
17+
#include <Library/FdtLib.h>
1718
#include <Library/HobLib.h>
1819
#include <Library/PcdLib.h>
1920
#include <Library/PeiServicesLib.h>
20-
#include <libfdt.h>
2121

2222
/** Initialise Platform HOBs
2323
@@ -39,20 +39,20 @@ PlatformPeim (
3939
UINT64 *UartHobData;
4040

4141
Base = (VOID *)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddress);
42-
if ((Base == NULL) || (fdt_check_header (Base) != 0)) {
42+
if ((Base == NULL) || (FdtCheckHeader (Base) != 0)) {
4343
ASSERT (0);
4444
return EFI_INVALID_PARAMETER;
4545
}
4646

47-
FdtSize = fdt_totalsize (Base) + PcdGet32 (PcdDeviceTreeAllocationPadding);
47+
FdtSize = FdtTotalSize (Base) + PcdGet32 (PcdDeviceTreeAllocationPadding);
4848
FdtPages = EFI_SIZE_TO_PAGES (FdtSize);
4949
NewBase = AllocatePages (FdtPages);
5050
if (NewBase == NULL) {
5151
ASSERT (0);
5252
return EFI_OUT_OF_RESOURCES;
5353
}
5454

55-
fdt_open_into (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages));
55+
FdtOpenInto (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages));
5656

5757
FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof (*FdtHobData));
5858
if (FdtHobData == NULL) {

ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c

+13-13
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
#include <Library/BaseMemoryLib.h>
1313
#include <Library/MemoryAllocationLib.h>
1414
#include <Library/DebugLib.h>
15+
#include <Library/FdtLib.h>
1516
#include <Library/HobLib.h>
1617
#include <Library/PcdLib.h>
1718
#include <Library/PeiServicesLib.h>
1819
#include <Library/FdtSerialPortAddressLib.h>
19-
#include <libfdt.h>
2020

2121
#include <Guid/EarlyPL011BaseAddress.h>
2222
#include <Guid/FdtHob.h>
@@ -59,13 +59,13 @@ PlatformPeim (
5959

6060
Base = (VOID *)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddress);
6161
ASSERT (Base != NULL);
62-
ASSERT (fdt_check_header (Base) == 0);
62+
ASSERT (FdtCheckHeader (Base) == 0);
6363

64-
FdtSize = fdt_totalsize (Base) + PcdGet32 (PcdDeviceTreeAllocationPadding);
64+
FdtSize = FdtTotalSize (Base) + PcdGet32 (PcdDeviceTreeAllocationPadding);
6565
FdtPages = EFI_SIZE_TO_PAGES (FdtSize);
6666
NewBase = AllocatePages (FdtPages);
6767
ASSERT (NewBase != NULL);
68-
fdt_open_into (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages));
68+
FdtOpenInto (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages));
6969

7070
FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof *FdtHobData);
7171
ASSERT (FdtHobData != NULL);
@@ -132,7 +132,7 @@ PlatformPeim (
132132
Parent = 0;
133133

134134
for (Prev = Depth = 0; ; Prev = Node) {
135-
Node = fdt_next_node (Base, Prev, &Depth);
135+
Node = FdtNextNode (Base, Prev, &Depth);
136136
if (Node < 0) {
137137
break;
138138
}
@@ -141,7 +141,7 @@ PlatformPeim (
141141
Parent = Node;
142142
}
143143

144-
Compatible = fdt_getprop (Base, Node, "compatible", &Len);
144+
Compatible = FdtGetProp (Base, Node, "compatible", &Len);
145145

146146
//
147147
// Iterate over the NULL-separated items in the compatible string
@@ -152,12 +152,12 @@ PlatformPeim (
152152
if (FeaturePcdGet (PcdTpm2SupportEnabled) &&
153153
(AsciiStrCmp (CompItem, "tcg,tpm-tis-mmio") == 0))
154154
{
155-
RegProp = fdt_getprop (Base, Node, "reg", &Len);
155+
RegProp = FdtGetProp (Base, Node, "reg", &Len);
156156
ASSERT (Len == 8 || Len == 16);
157157
if (Len == 8) {
158-
TpmBase = fdt32_to_cpu (RegProp[0]);
158+
TpmBase = Fdt32ToCpu (RegProp[0]);
159159
} else if (Len == 16) {
160-
TpmBase = fdt64_to_cpu (ReadUnaligned64 ((UINT64 *)RegProp));
160+
TpmBase = Fdt64ToCpu (ReadUnaligned64 ((UINT64 *)RegProp));
161161
}
162162

163163
if (Depth > 1) {
@@ -168,7 +168,7 @@ PlatformPeim (
168168
// tuple, where the child base and the size use the same number of
169169
// cells as the 'reg' property above, and the parent base uses 2 cells
170170
//
171-
RangesProp = fdt_getprop (Base, Parent, "ranges", &RangesLen);
171+
RangesProp = FdtGetProp (Base, Parent, "ranges", &RangesLen);
172172
ASSERT (RangesProp != NULL);
173173

174174
//
@@ -189,16 +189,16 @@ PlatformPeim (
189189
}
190190

191191
if (Len == 8) {
192-
TpmBase -= fdt32_to_cpu (RangesProp[0]);
192+
TpmBase -= Fdt32ToCpu (RangesProp[0]);
193193
} else {
194-
TpmBase -= fdt64_to_cpu (ReadUnaligned64 ((UINT64 *)RangesProp));
194+
TpmBase -= Fdt64ToCpu (ReadUnaligned64 ((UINT64 *)RangesProp));
195195
}
196196

197197
//
198198
// advance RangesProp to the parent bus address
199199
//
200200
RangesProp = (UINT32 *)((UINT8 *)RangesProp + Len / 2);
201-
TpmBase += fdt64_to_cpu (ReadUnaligned64 ((UINT64 *)RangesProp));
201+
TpmBase += Fdt64ToCpu (ReadUnaligned64 ((UINT64 *)RangesProp));
202202
}
203203
}
204204

ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
#include <Pi/PiMultiPhase.h>
1111
#include <Library/BaseLib.h>
1212
#include <Library/DebugLib.h>
13+
#include <Library/FdtLib.h>
1314
#include <Library/HobLib.h>
14-
#include <libfdt.h>
1515

1616
RETURN_STATUS
1717
EFIAPI
@@ -37,30 +37,30 @@ QemuVirtMemInfoPeiLibConstructor (
3737
//
3838
// Make sure we have a valid device tree blob
3939
//
40-
ASSERT (fdt_check_header (DeviceTreeBase) == 0);
40+
ASSERT (FdtCheckHeader (DeviceTreeBase) == 0);
4141

4242
//
4343
// Look for the lowest memory node
4444
//
4545
for (Prev = 0; ; Prev = Node) {
46-
Node = fdt_next_node (DeviceTreeBase, Prev, NULL);
46+
Node = FdtNextNode (DeviceTreeBase, Prev, NULL);
4747
if (Node < 0) {
4848
break;
4949
}
5050

5151
//
5252
// Check for memory node
5353
//
54-
Type = fdt_getprop (DeviceTreeBase, Node, "device_type", &Len);
54+
Type = FdtGetProp (DeviceTreeBase, Node, "device_type", &Len);
5555
if (Type && (AsciiStrnCmp (Type, "memory", Len) == 0)) {
5656
//
5757
// Get the 'reg' property of this node. For now, we will assume
5858
// two 8 byte quantities for base and size, respectively.
5959
//
60-
RegProp = fdt_getprop (DeviceTreeBase, Node, "reg", &Len);
60+
RegProp = FdtGetProp (DeviceTreeBase, Node, "reg", &Len);
6161
if ((RegProp != 0) && (Len == (2 * sizeof (UINT64)))) {
62-
CurBase = fdt64_to_cpu (ReadUnaligned64 (RegProp));
63-
CurSize = fdt64_to_cpu (ReadUnaligned64 (RegProp + 1));
62+
CurBase = Fdt64ToCpu (ReadUnaligned64 (RegProp));
63+
CurSize = Fdt64ToCpu (ReadUnaligned64 (RegProp + 1));
6464

6565
DEBUG ((
6666
DEBUG_INFO,

ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939

4040
[LibraryClasses]
4141
BaseLib
42+
BaseMemoryLib
4243
DebugLib
4344
FdtLib
4445
ArmLib

ArmVirtPkg/PrePi/FdtParser.c

+15-14
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
*/
66

77
#include <Uefi.h>
8-
#include <Include/libfdt.h>
8+
#include <Library/BaseMemoryLib.h>
9+
#include <Library/FdtLib.h>
910

1011
BOOLEAN
1112
FindMemnode (
@@ -20,14 +21,14 @@ FindMemnode (
2021
INT32 Length;
2122
CONST INT32 *Prop;
2223

23-
if (fdt_check_header (DeviceTreeBlob) != 0) {
24+
if (FdtCheckHeader (DeviceTreeBlob) != 0) {
2425
return FALSE;
2526
}
2627

2728
//
2829
// Look for a node called "memory" at the lowest level of the tree
2930
//
30-
MemoryNode = fdt_path_offset (DeviceTreeBlob, "/memory");
31+
MemoryNode = FdtPathOffset (DeviceTreeBlob, "/memory");
3132
if (MemoryNode <= 0) {
3233
return FALSE;
3334
}
@@ -39,36 +40,36 @@ FindMemnode (
3940
AddressCells = 1;
4041
SizeCells = 1;
4142

42-
Prop = fdt_getprop (DeviceTreeBlob, 0, "#address-cells", &Length);
43+
Prop = FdtGetProp (DeviceTreeBlob, 0, "#address-cells", &Length);
4344
if (Length == 4) {
44-
AddressCells = fdt32_to_cpu (*Prop);
45+
AddressCells = Fdt32ToCpu (*Prop);
4546
}
4647

47-
Prop = fdt_getprop (DeviceTreeBlob, 0, "#size-cells", &Length);
48+
Prop = FdtGetProp (DeviceTreeBlob, 0, "#size-cells", &Length);
4849
if (Length == 4) {
49-
SizeCells = fdt32_to_cpu (*Prop);
50+
SizeCells = Fdt32ToCpu (*Prop);
5051
}
5152

5253
//
5354
// Now find the 'reg' property of the /memory node, and read the first
5455
// range listed.
5556
//
56-
Prop = fdt_getprop (DeviceTreeBlob, MemoryNode, "reg", &Length);
57+
Prop = FdtGetProp (DeviceTreeBlob, MemoryNode, "reg", &Length);
5758

5859
if (Length < (AddressCells + SizeCells) * sizeof (INT32)) {
5960
return FALSE;
6061
}
6162

62-
*SystemMemoryBase = fdt32_to_cpu (Prop[0]);
63+
*SystemMemoryBase = Fdt32ToCpu (Prop[0]);
6364
if (AddressCells > 1) {
64-
*SystemMemoryBase = (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1]);
65+
*SystemMemoryBase = (*SystemMemoryBase << 32) | Fdt32ToCpu (Prop[1]);
6566
}
6667

6768
Prop += AddressCells;
6869

69-
*SystemMemorySize = fdt32_to_cpu (Prop[0]);
70+
*SystemMemorySize = Fdt32ToCpu (Prop[0]);
7071
if (SizeCells > 1) {
71-
*SystemMemorySize = (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1]);
72+
*SystemMemorySize = (*SystemMemorySize << 32) | Fdt32ToCpu (Prop[1]);
7273
}
7374

7475
return TRUE;
@@ -80,6 +81,6 @@ CopyFdt (
8081
IN VOID *FdtSource
8182
)
8283
{
83-
fdt_pack (FdtSource);
84-
CopyMem (FdtDest, FdtSource, fdt_totalsize (FdtSource));
84+
FdtPack (FdtSource);
85+
CopyMem (FdtDest, FdtSource, FdtTotalSize (FdtSource));
8586
}

BaseTools/Conf/tools_def.template

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>
2+
# Copyright (c) 2006 - 2025, Intel Corporation. All rights reserved.<BR>
33
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
44
# Portions copyright (c) 2011 - 2019, ARM Ltd. All rights reserved.<BR>
55
# Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>
@@ -868,7 +868,7 @@ RELEASE_VS2022_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4
868868
NOOPT_VS2022_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /WX /IGNORE:4210
869869

870870
# BaseTools cannot handle XIP modules with different section and file alignment
871-
*_VS2022_ARM_DLINK_XIPFLAGS = /ALIGN:32
871+
*_VS2022_ARM_DLINK_XIPFLAGS = /ALIGN:64
872872

873873
#####################
874874
# AARCH64 definitions
@@ -896,12 +896,12 @@ NOOPT_VS2022_AARCH64_ASM_FLAGS = /nologo
896896
# Linker warning 4210 is disabled globally, because it checks if static initializers are present and the VCRuntime is
897897
# linked. We do not link the VCRuntime (except for HOST_APPLICATIONs) so this warning can be generated erroneously
898898
# whenever there are static initializers, because we will always fail the VCRuntime linking check
899-
DEBUG_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG /WX /IGNORE:4210
900-
RELEASE_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data /WX /IGNORE:4210
901-
NOOPT_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG /WX /IGNORE:4210
899+
DEBUG_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4226 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG /WX /IGNORE:4210
900+
RELEASE_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4226 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data /WX /IGNORE:4210
901+
NOOPT_VS2022_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4226 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG /WX /IGNORE:4210
902902

903903
# BaseTools cannot handle XIP modules with different section and file alignment
904-
*_VS2022_AARCH64_DLINK_XIPFLAGS = /ALIGN:32
904+
*_VS2022_AARCH64_DLINK_XIPFLAGS = /ALIGN:64
905905

906906
####################################################################################
907907
# GCC Common
@@ -943,7 +943,7 @@ DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS) -Wl,--e
943943
DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
944944
DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h
945945
DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h
946-
DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
946+
DEFINE GCC_VFRPP_FLAGS = -x c -E -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
947947
DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h
948948
DEFINE GCC_ASLCC_FLAGS = -x c
949949
DEFINE GCC_WINDRES_FLAGS = -J rc -O coff

0 commit comments

Comments
 (0)