94 Commits
Author SHA1 Message Date
Timo Kreuzer 81b230dc80 [CRT] Fix c++ overload 2026-05-07 06:27:58 +00:00
Timo Kreuzer 0c23c312cb [CRT] Add C++ overload for swprintf_s 2026-05-07 06:27:58 +00:00
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Hermès Bélusca-Maïto 51d7aeb3ea [SDK] crt/sys/stat.h: Import MinGW-w64 patch "Change _S_IFBLK from 0x3000 to 0x6000"
Mingw-w64 commit id 850703ae46e1971c5789fa1bdd802fb9692c41c9 by Daniel Starke via Mingw-w64-public <[email protected]>

headers: Change _S_IFBLK from 0x3000 to 0x6000

The _S_IFBLK macro, used to identify block special files in file systems, is
being updated from 0x3000 to 0x6000. This change aligns mingw-w64 with the more
commonly used value across Unix-like systems and other C libraries.

The old value of 0x3000 may have caused compatibility issues when working with
code that assumes the standard 0x6000 value for S_IFBLK.

This update improves cross-platform compatibility and consistency with other
systems, making it easier to write portable code that deals with file type
identification. It also reduces potential confusion and errors that might arise
from the non-standard value.

One of these is for example python. This is only an example. It does not change
the fact that python should be more careful about actual value implementation.

Note that the current value implies character device + FIFO instead of
character device + directory.

Link: https://github.com/python/cpython/blob/f81990024554a75e2ab31133a72d9f0954690435/Python/fileutils.c#L1197
Link: https://github.com/torvalds/linux/blob/81e4f8d68c66da301bb881862735bd74c6241a19/include/uapi/linux/stat.h#L13
Signed-off-by: Daniel Starke <[email protected]>
Signed-off-by: LIU Hao <[email protected]>
2025-10-05 20:38:41 +02:00
Timo Kreuzer 736fea6c44 [CRT] math.h: fix definition of NAN
- Use positive NAN by default
- add support for _UCRT_NEGATIVE_NAN to legacy CRT headers
- Use __builtin_nanf() on GCC/Clang
2025-02-12 16:54:45 +02:00
Timo Kreuzer a6a07059c1 [CRT] crtdbg.h: Add missing inttrin.h include for __debugbreak() 2025-01-19 09:02:58 +02:00
Timo Kreuzer 78417c5532 [CRT] Fix build with clang-cl 17
#pragma function(llabs) causes an error: "error: no_builtin attribute has no effect on defaulted or deleted functions"
This is probably a bug in clang, see https://github.com/llvm/llvm-project/issues/116256
2025-01-14 13:34:24 +02:00
Timo Kreuzer 3bd9ddca94 [CRT] corecrt.h: add secure function overload macros
Taken from MIT release of UCRT (https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3). These are used by newer mingw headers, which we include when compiling C++ code. Fixes build with GCC 13 based RosBE.
2024-12-04 08:13:49 +02:00
Timo Kreuzer 9dedcb67e9 [VCRUNTIME][CRT] Change WCHAR_MIN/WCHAR_MAX to match native headers
This avoids conflicting definitions with MS CRT headers.
2024-11-16 20:01:49 +02:00
Timo Kreuzer 84344399b5 [VCRUNTIME] Move compiler runtime headers into their own folder
These headers come with the MS compiler. Some of them are standard, like emmintrin.h, others are MS specific like crtdefs.h
This separation will allow using MS CRT headers. Eventually it can allow compiling with the compilers' runtime headers.
2024-11-02 12:52:59 +02:00
Hermès Bélusca-Maïto 90aee8453f [SDK:CRT] Reenable malloc.h inclusion in xmmintrin.h (#6464)
Addendum to commit 318d696f0
2024-10-24 12:06:38 +02:00
Timo Kreuzer 8ba61029e1 [CRT] Add C++ const correct overloads 2024-10-22 08:17:45 +03:00
Timo Kreuzer 6f6b831722 [CRT] Introduce corecrt.h
Include this instead of crtdefs.h.
This is for compatibility with MS headers.
2024-10-21 14:53:29 +03:00
Timo Kreuzer bf95874c2d [REACTOS] Improve handling of non-standard names
- Link oldnames instead of defining names
- Define _CRT_DECLARE_NONSTDC_NAMES to 1 where needed
- Remove header hacks
2024-10-20 14:12:25 +03:00
Timo Kreuzer b707be90a1 [REACTOS] Use standard conforming names
- Use _alloca instead of non-standard alloca
- Use _TCHAR instead of non-standard TCHAR
- Use _off_t instead of deprecated off_t
- Use _O_BINARY instead of O_BINARY
2024-10-20 14:12:25 +03:00
Timo Kreuzer a3bab12b50 [OLDNAMES] Add _CRT_NONSTDC_NO_DEPRECATE interface definitions 2024-10-20 14:12:25 +03:00
Timo Kreuzer 439e67d1d8 [CRT] vadefs.h: Fix name of __crt_va_*
This is to be compatible with native CRT headers.
2024-10-13 11:57:35 +03:00
Timo Kreuzer 0c2cdcae83 [REACTOS] Add missing line breaks at end of file 2024-10-06 10:47:11 +03:00
Timo Kreuzer 45aa8f8111 [CRT] Remove useless #undef abort from process.h 2024-04-26 15:16:31 +02:00
Timo Kreuzer 6beff505d7 [CRT] Add _Exit to process.h
This is already done this way in our stdlib.h. It is needed by GCC 13 C++ headers. The problem happens like this:
- telnet/precomp.h includes fstream from GCC
- fstream includes pthread.h from GCC
- pthread.h includes process.h from ReactOS
- process.h defines _CRT_TERMINATE_DEFINED, but doesn't declare _Exit
- fstream includes cstdlib from GCC
- cstdlib includes stdlib.h from GCC (#include_next)
- stdlib.h doesn't declare _Exit, because _CRT_TERMINATE_DEFINED is defined
- cstdlib uses _Exit
2024-04-26 15:16:31 +02:00
Timo Kreuzer 95bf896b10 [CRT] crtdefs.h: Wrap localeinfo_struct in ifdef
This prevents a redefinition error, when GCC 13 host headers are included when compiling c++ code.
2024-04-16 20:10:38 +02:00
Timo Kreuzer 2f03b146da [CRT] intrin_x86.h: Use movsl instead of movsd to fix a GCC 13 warning 2024-03-19 07:44:40 +01:00
Hermès Bélusca-Maïto 864aed6bcd [SDK:CRT] malloc.h: Use MS PSDK-compatible guard name instead of MinGW one.
Use the MS PSDK-compatible name _INC_MALLOC, instead of the MinGW one
_MALLOC_H_, so that code that may depend on this to determine whether
malloc.h functions are defined, can compile without problems.
2024-02-08 17:48:58 +01:00
Hermès Bélusca-Maïto f49e213943 [CRT][MSVCRT] Implement _CrtDbgReport(W)V and redefine _CrtDbgReport(W) around those (#5678)
Also add the internal _VCrtDbgReportA and _VCrtDbgReportW functions listed in
https://learn.microsoft.com/en-us/cpp/c-runtime-library/internal-crt-globals-and-functions?view=msvc-170

CORE-11835, CORE-15517
2023-11-14 12:23:51 +01:00
Hermès Bélusca-Maïto ee11747527 [CRT] Fix "wcsat_s" typo... 2023-11-11 21:30:09 +01:00
Katayama Hirofumi MZ 85377ee3db [SDK][CRT][MSVCRT] Implement _CrtSetReportMode and _CrtSetReportFile (#5662)
- Implement reporting to file.
CORE-11835, CORE-15517, ROSTESTS-386
2023-09-11 04:37:27 +09:00
Joachim Henze 09dde2cff9 [REACTOS] "http://www.reactos" -> "https://reactos" (#5043)
To harmonize, to save some bytes, and last but not least for security reasons.
This can be understood as an addendum to (#2619).
2023-02-06 17:01:52 +03:00
Timo Kreuzer 06f1ac5fa4 [CRT] Add a workaround for CORE-18255 2022-12-01 15:21:59 +02:00
Timo Kreuzer 20a6cff4dd [CRT] Implement _InterlockedCompareExchange128 intrinsic for GCC 2022-11-24 21:17:58 +02:00
Timo Kreuzer 76086220fa [CRT] Fix amd64 floating point control functions 2022-08-22 11:22:08 +02:00
Timo Kreuzer bc9409daba [CRT] Add round and roundf and add it to msvcrtex to make clang v14 happy 2022-07-17 17:32:32 +02:00
Timo Kreuzer ba0d16f3b3 [CRT] Add missing OP_* constants in fpieee.h 2022-06-26 23:08:14 +02:00
Timo Kreuzer b7c6170a5f [CRT] Add emmintrin.h
Implementations are taken from clang.
2022-06-26 19:59:41 +02:00
Timo Kreuzer 8a67170616 [CRT_APITEST] Implement tests for fabs/fabsf 2022-06-26 19:13:47 +02:00
Timo Kreuzer 318d696f0e [CRT] Implement xmmintrin.h
This includes inline functions for GCC/Clang.
Note: the previous GCC definition of __m128 was broken and didn't work.
2022-06-10 23:21:41 +02:00
Timo Kreuzer 9c8a2bbc81 [CRT] Implement mmintrin.h
This includes inline functions for GCC/Clang.
2022-06-10 23:21:41 +02:00
Timo Kreuzer c34c5e29f0 [CRT] Move __INTRIN_INLINE to mingw32.h to be available everywhere
Also use __attribute__((artificial)) for clang, too.
2022-06-10 23:21:41 +02:00
Justin Miller 4363e74ddc [REACTOS] Finally get some ARM64 applications building (#4517)
- Add some missing ARM64 exports to ntdll, kernel32 and user32
- Create mmtypes header file based on WoA debug symbols
- Get the remaining headers in order, so we can build ARM64 apps
- Adjust subsystem version for binaries so they can run on WoA host
- Get calc, notepad and more base apps to build for ARM64 platform

CORE-17518

Reviewed-by: Hermès Bélusca-Maïto <[email protected]>
Reviewed-by: Stanislav Motylkov <[email protected]>
2022-05-25 17:06:32 +03:00
Julen Urizar Compains 748d5c694e [CRT] Fix MinGW-arm intrin minor bug in _byteswap_ushort (#4475)
A little bug were in the CRT, found with RosBE and cegcc compiler:

../sdk/include/crt/mingw32/intrin_arm.h:44:32: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]

Thanks to @HBelusca for suggesting the fix. CORE-17604
2022-04-30 01:24:49 +03:00
Justin Miller 2204695f0a [SDK] Fix some arm64 stuff that was discovered during testing
Addendum to 6dfc13e4. CORE-17518
2022-04-07 19:50:43 +03:00
Mark Jansen f1132155d9 [SDK][CRT] Add _CRT_NON_CONFORMING_SWPRINTFS support
This allows us to easier port wine changes, where swprintf with a size is used a lot
2022-03-20 19:28:22 +01:00
Thomas Faber b72efb6ca8 [CRT] Fix some inconsistent annotations in CRT headers.
This fixes about 5000 VS analysis warnings.
2022-02-17 22:01:37 -05:00
Serge Gautherie 9a523c8135 [CRT/arm64] Fix handling of intrinsics
Fix msvc14.1-arm64-Release build.

Follow-up to db41787 (0.4.15-dev-2914).
CORE-17518
2022-01-11 20:52:48 +03:00
Justin Miller 6dfc13e411 [CRT] Add vadefs macros for arm64 (#4123)
CORE-17621 CORE-17518
2021-12-09 17:16:20 +03:00
Justin Miller 51ce0c5150 [CRT] Add setjmp for the arm64 architecture (#4088)
CORE-17622 CORE-17518
2021-11-17 14:24:07 +03:00
Roman Masanin 554bbb6bab [CRT/ARM] Floating point control functions implementation (#3870)
Implement controlfp, statusfp, fpreset, clearfp. CORE-17757 CORE-17604
2021-09-08 16:04:48 +03:00
Timo Kreuzer 379957424c [CRT] Fix some _CRTIMP
Get rid of the ugly __MINGW_IMP_SYMBOL hacks.
2021-08-04 02:03:07 +02:00
Timo Kreuzer b05cc36208 [CRT] Fix CRT headers a bit
* Remove unused internal version of float.h
* Define _STATIC_ASSERT in crtdefs.h
* Add some missing declarations
2021-08-04 02:03:07 +02:00
Timo Kreuzer 486a4d93ed [CRT] Define NULL in crtdefs.h 2021-07-27 22:08:58 +02:00
Timo Kreuzer db41787951 [CRT] Fix handling of intrinsics and inline functions 2021-07-11 21:45:29 +02:00