Timo Kreuzer
6a4dbedd1e
[CMAKE] Support WITH_DBG and NO_DBG overrides in spec2def
...
This is to be able to build ucrtbase without debug and later ucrtbased with debug.
2025-03-24 23:02:06 +00:00
Timo Kreuzer
4a5fdb9a3a
[RSYM64] Nuke rsym64
...
It's purpose was to create x64 unwind information from DWARF debug info, but it was never fully working and is pointless now anyway, because x64 GCC does this itself properly.
2025-03-24 18:05:28 +00:00
Justin Miller
6c7d2a2e25
[SDK] Fix RelWithDebInfo ( #7811 )
2025-03-22 23:12:52 +01:00
Timo Kreuzer
bb9392e4e1
[CMAKE] Define _CRT_SUPPRESS_RESTRICT on GCC builds
...
This prevents the use of __declspec(restrict) in UCRT headers.
2025-01-30 11:30:32 +02:00
Timo Kreuzer
0133dba0c6
[CMAKE] Disable GCC builtin math functions
2025-01-26 18:08:55 +02:00
Timo Kreuzer
82ef7b5df1
[CMAKE] Do not implicitly link libgcc/stdc++compat to msvcrt
...
This allows ucrtbase and modules linked to it to be linked to those helper libraries.
2025-01-26 18:08:55 +02:00
Timo Kreuzer
dc25409cbf
[SPEC2DEF] Implement support for debug-only exports
2025-01-19 09:02:58 +02:00
Timo Kreuzer
aa7ab16fd0
[CMAKE] Disable a number of warnings for clang
...
Also remove the totally useless and stupid -Werror=unknown-warning-option
2025-01-14 13:34:24 +02:00
Timo Kreuzer
c9a99bf63a
[CMAKE] Silence warnings about unused variables on release builds
2024-10-25 14:37:52 +03:00
Timo Kreuzer
a5c5c19bcf
[CMAKE] Fix warning about redefinition of NDEBUG on release builds
...
"-DNDEBUG" will result in NDEBUG being defined as 0. To define it to nothing, like we do in our code, it must be "-DNDEBUG="
2024-10-25 14:37:52 +03:00
Timo Kreuzer
81b8d07acd
[CPPRT] Add cpprt for GCC, tool
...
- Link it to libsup++
- Add __cxa_pure_virtual
2024-10-24 18:39:50 +03:00
Justin Miller
50647e58e4
[SDK] Disable the unknown-pragma for GCC
2024-10-19 13:45:59 -07:00
Timo Kreuzer
fcbccaa194
[GCC-COMPAT] Add support library for GCC's libsupc++ and libstdc++
...
__throw_out_of_range_fmt is implemented in libstdc++, but it is needed by libsupc++ and that would mean we would have to link all C++ code to libstdc++.
2024-07-09 12:01:24 +02:00
Timo Kreuzer
486a20dbc4
[CMAKE] Add imported library winpthread
2024-07-09 12:01:24 +02:00
Timo Kreuzer
6291c5325a
[CMAKE] Some compiler flags for GCC 13
2024-07-09 12:01:24 +02:00
Serge Gautherie
3cc4361cca
[CMAKE] Clang*: Add '-Werror=unknown-warning-option' for C/CXX ( #6383 )
...
* [UDFS] Clang: Fix a #pragma
'warning: unknown warning group '-Wstringop-overflow', ignored [-Wunknown-warning-option]'
Follow-up to 612b1f2e6
(0.4.15-dev-1129).
* [CREATESPEC] Clang: Fix a target_compile_options()
'warning: unknown warning option '-Wno-stringop-overflow'; did you mean '-Wno-shift-overflow'? [-Wunknown-warning-option]'
Addendum to 00ed72d7e
(0.4.15-dev-1169).
* [MSVCRT_WINETEST] Clang*: Fix a target_compile_options()
'warning: unknown warning option '-Wno-stringop-truncation'; did you mean '-Wno-string-concatenation'? [-Wunknown-warning-option]'
Addendum to commits 00ed72d7e
(0.4.15-dev-1169) then f155b9377
(0.4.15-dev-4612).
* [TELNET] Clang*: Fix a target_compile_options()
'warning: unknown warning option '-Wno-restrict' [-Wunknown-warning-option]'
Addendum to 447ef2aa4
(0.4.15-dev-4613).
2024-05-31 16:26:11 +02:00
Timo Kreuzer
9be24a9d51
[CMAKE] Add GCC options to make a long double 64 bits
...
This adds -mlong-double-64 to make the size of a long double 64 bits in GCC builds to match MSVC builds.
2024-01-07 11:03:08 +02:00
Timo Kreuzer
3b7c7d8e68
[CMAKE] Don't use precompiled headers for autogenerated stub files
2023-10-17 09:41:18 +03:00
Timo Kreuzer
3c2bfb570f
[CMAKE] Add DLL_EXPORT_VERSION config option
...
Set this to e.g. 0x600 to build with Vista exports
2023-08-11 19:00:42 +03:00
Timo Kreuzer
61cc62d1b2
[ASMPP] Implement asm preprocessor
...
This converts ML style assembly to GAS compatible syntax
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
Victor Perevertkin
f155b9377f
[CMAKE] Elimitate the use of GCC and CLANG variables
2022-05-27 01:37:34 +03:00
Victor Perevertkin
8f40fc7ede
[CMAKE] Build GCC and Clang builds with -fno-common
2022-04-26 04:22:27 +03:00
Victor Perevertkin
8ca4b0f257
[CMAKE] Remove __inline substitutions
...
All supported compilers can do C99 now, this is not needed anymore.
2021-10-26 22:51:03 +03:00
Konrad Dybcio
b7c1b95b45
[SDK] gcc.cmake: Only add -mstackrealign on i386 ( #4016 )
...
This option is only useful for the i386 architecture and breaks ARM builds.
Reviewed-by: Victor Perevertkin <victor.perevertkin@reactos.org>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
2021-10-16 11:58:08 +03:00
Victor Perevertkin
8e1fa03456
[CMAKE] Replace custom scripts in compilerflags with standard ones
...
- add_target_link_flags changed to target_link_options
- add_target_property changed to set_property(... APPEND ...)
2021-09-14 17:56:22 +03:00
Jérôme Gardou
54ecf703f2
[CMAKE:GCC] Produce RosSym data even when building with separate debug symbols
2021-06-29 11:49:20 +02:00
Jérôme Gardou
d1f5c31820
[SDK] Add GCC overrides for SAL annotations
...
GCC has some functions, variables & type attributes which can be used as aliases
for some of the SAL annotations. Although it's not as rich & precise, it's still useful
since we actually enable -Werror on GCC builds whereas we don't use such an option
on MSVC builds.
For now, _Must_inspect_result_ is aliased to warn_result_unused attribute.
2021-06-28 10:20:57 +02:00
Dmitry Borisov
6e33c8ffd3
[PEFIXUP] Fixup of resource sections in GCC builds. ( #3594 )
...
Make resource sections discardable for kernel-mode drivers and DLLs.
2021-05-10 00:36:38 +02:00
Jérôme Gardou
ec68a3311f
[CMAKE] Use SEH exceptions for c++ in clang amd64 build
2021-05-03 22:00:57 +02:00
Jérôme Gardou
b52ab2493b
Revert "[CMAKE] Disable SSE instruction on GCC amd64 builds"
...
The right fix is to ensure that the stack is properly 16-bit aligned
This reverts commit 63944988a2
.
2021-05-03 22:00:57 +02:00
Jérôme Gardou
63944988a2
[CMAKE] Disable SSE instruction on GCC amd64 builds
...
Except for user-mode modules
2021-04-28 13:10:23 +02:00
Jérôme Gardou
9ef5a7eb7a
[CMAKE] Fix compilation with newer windres versions
...
Also use clang as preprocessor when using it
Also, use *our* headers instead of the platform ones
2021-04-27 11:54:12 +02:00
Victor Perevertkin
72ad37c1cd
[CMAKE] Unify configs for architectures
...
config*.cmake files are constantly getting out of sync between
each other. Besides that, the parameters are not really dependent
on a target architecture, but rather on a compiler (except *ARCH)
This approach seems to be more future-prone, and allows to see
all the options in one file (there are really not that many of them)
2021-04-15 06:44:52 +03:00
Jérôme Gardou
83e1afe12a
[CMAKE] Do not call clang with unsupported arguments
2021-04-09 10:09:55 +02:00
Victor Perevertkin
c7d1ff4a9d
[SDK][NDK] Fix clang 12 compilation
2021-04-09 03:51:32 +03:00
Jérôme Gardou
9c4ae0d05e
[CMAKE] Honor CMAKE_EXE_LINKER_FLAGS_INIT in GCC build
2021-04-06 19:26:33 +02:00
Jérôme Gardou
f5bace8536
[CMAKE] Move toolchain specific handling to set_module_type_toolchain
...
+ style fixes
2021-03-23 11:18:43 +01:00
Jérôme Gardou
e55123a6a2
[CMAKE] Add the kernel module type
...
Take this as an occasion to use target_link_options more
2021-03-23 11:18:43 +01:00
Jérôme Gardou
812c9e5a11
[CMAKE] Fixup of driver sections in GCC builds
...
Also introduce a helper variable to list KMode modules
2021-03-23 11:18:43 +01:00
Jérôme Gardou
5489efcb1a
[SDK:TOOLS] Add --driver option to pefixup
...
For now, this adds IMAGE_SCN_MEM_DISCARDABLE to the INIT section, and IMAGE_SCN_MEM_NOT_PAGED to sections which are not named PAGE or .reloc
2021-03-23 11:18:43 +01:00
Jérôme Gardou
56b1baa3dd
[CMAKE] Restore using LD linker script with GCC
2021-03-23 11:18:43 +01:00
Hervé Poussineau
39545c3385
[CMAKE] Use -Wno-error when compiling with GCC x64
2021-01-05 14:19:45 +01:00
Jérôme Gardou
c8d07514c8
[CMAKE] Fix GCC -fstack-protector usage
2021-01-05 13:38:57 +01:00
Jérôme Gardou
b96e88894a
[CMAKE] Turn import libs into regular C static libs
...
Embed msvcrtex into libmsvcrt
Idea taken from Thomas Faber
2020-12-28 12:13:30 +01:00
Victor Perevertkin
16e5ce8fb1
[CMAKE] Use C_STANDARD property instead of command line option
...
Addendum to 64211aa696
and 19779b3f96
2020-12-05 15:35:06 +03:00
Hervé Poussineau
4469ab3620
[CMAKE] Disable compression of debug sections in GCC <= 7.0
...
We use MSVC, Clang or GCC > 7.0 these days.
2020-12-01 18:44:53 +01:00
Jérôme Gardou
edc1f3ca56
[CMAKE] Fix use of CLang
...
- Updated toolchain file
- set GCC variable when using CLang in "GCC mode"
- Properly retrieve GCC support libraries
- Various flags needed to get this going
2020-11-16 16:58:10 +01:00
Jérôme Gardou
bf04126e02
|CMAKE] Use RULE_LAUNCH_COMPILE property to handle ccache
2020-11-09 10:47:19 +01:00
Jérôme Gardou
bbe47e61b1
|CMAKE] Use ExternalProject for host-tools build
2020-10-22 09:31:11 +02:00