Commit graph

209 commits

Author SHA1 Message Date
Victor Perevertkin 447ef2aa4a
[CMAKE] Do not use USE_CLANG_CL variable in CMake scripts 2022-05-27 01:37:37 +03:00
Victor Perevertkin f155b9377f
[CMAKE] Elimitate the use of GCC and CLANG variables 2022-05-27 01:37:34 +03: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 <hermes.belusca-maito@reactos.org>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
2022-05-25 17:06:32 +03:00
Victor Perevertkin 8f40fc7ede
[CMAKE] Build GCC and Clang builds with -fno-common 2022-04-26 04:22:27 +03:00
Hermès Bélusca-Maïto ea3e4bb4cb
[CMAKE:MSVC] Refine ASM16 ml.exe path selection. Addendum to commit 60733590. 2022-04-17 19:31:48 +02:00
Serge Gautherie 0c5fc49f82 [CMAKE] msvc.cmake: Enable C4090 warning as error
C4090: different 'modifier' qualifiers

Follow-up to 42d2d5e (0.4.14-dev-847) and 41bc57d (0.4.15-dev-2952),
which silenced affected modules.
CORE-7538
2022-04-12 02:08:45 +03:00
Joachim Henze 493bb8de46
[CMAKE] msvc.cmake: Remove redundant '/Gy' (#4424)
* [CMAKE] msvc.cmake: Remove redundant '/Gy'

Function-level-Linking '/Gy' is already enabled unconditionally
at line 26. So no need to enable it here another time.
Makes the differences between the multiple OPTIMIZE-levels more obvious.

* [CMAKE] msvc.cmake: Fix typo in comment
2022-03-31 21:18:26 +02:00
Serge Gautherie 665dac03b8
[CMAKE] msvc.cmake: Remove add_definitions(/D__arm__) (#3710) 2021-12-28 02:12:25 +03:00
Hermès Bélusca-Maïto 957e566a23
[APITESTS][NTVDM][SPOOLSV] Add the missing ENABLE_EXPORTS property as these EXE targets have function exports.
This became a requirement, following a previous CMake update.
Otherwise the built EXEs would not export their intended functions.

Addendum to commit d8e92b5a (see PR #1335)
CORE-15406

[LOADCONFIG] The GCC rant had nothing to do with GCC, but everything with CMake...

[SPOOLSV] Add the missing exported stubs.
2021-12-04 01:17:32 +01:00
Konrad Dybcio b5e57a8523
[SDK][CMAKE] config.cmake: Add ARM64 compiler options (#4050)
Add generic compiler options for ARM64.

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
2021-11-17 14:18:06 +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
Justin Miller be223b9de7
[SDK] Allow ARM64 MSVC to complete configuration (#4045)
- Add some of the missing CMake adjustments to continue the configure and compile process with ARM64 MSVC
- Created quick stubs for the functions in SDK needed to finish the configuration process
- Put in an ARM64 option for spec2def

CORE-17518 CORE-17615
2021-10-22 18:52:32 +03:00
Stanislav Motylkov b3b1bd66a0
[CONFIGURE][CMAKE] Add support for MSVC ARM64 target
Addendum to e4feaa1a and 51e2ab52. CORE-17518
2021-10-16 16:30:36 +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
Konrad Dybcio 30c7c161fc
[SDK] host-tools.cmake: Allow cross-compilation from aarch64 (#4013)
Some compilers call it 'arm64', while others prefer 'aarch64'. It's a big mess,
thanks Arm Ltd...

Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
Reviewed-by: Serge Gautherie <reactos-git_serge_171003@gautherie.fr>
Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
2021-10-16 01:38:33 +03:00
Serge Gautherie 51e2ab52af [CMAKE] msvc.cmake: Add arm64 CMAKE_ASM_MASM_COMPILER option support
CORE-17518
2021-10-11 15:24:30 +03:00
Konrad Dybcio 3c36cde874
[SDK] config.cmake: Fix generic mtune flag (#4017) 2021-10-11 03:46:12 +03:00
Victor Perevertkin 62d1a2c884
[CMAKE] Fixes for clang-cl build
- User lib.exe instead of llvm-lib due to incompatibility
- Avoid wrapping resource compiler with cmcldeps
- Fix several conditional flags
2021-09-14 17:58:23 +03:00
Victor Perevertkin 4e389a992d
[CMAKE] Fix invalid usage of list()
list() functions expects numerical indices for modification operations
and silently converts everything else to a number (old behaviour).

CMake 3.21 now checks this and throws a warning
2021-09-14 17:58:22 +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
Julio Carchi 2268b33e18
[CMAKE][BOOTDATA] Fix LiveCD does not import caroots.inf into registry CORE-17739 CORE-17735 (#3930)
It regressed by 0.4.9-dev-82-g 6158207c31

KVM https://reactos.org/testman/compare.php?ids=78729,78730 LGTM
VBox https://reactos.org/testman/compare.php?ids=78728,78731 LGTM
2021-08-30 13:07:12 +02:00
Jérôme Gardou c6d08c4828 [CMAKE] Update DLL base addresses 2021-08-03 10:36:32 +02:00
Victor Perevertkin 5176f580e5
[CMAKE] Add memcmp to libntoskrnl for both clang and clang-cl 2021-08-02 20:23:22 +03:00
Victor Perevertkin 49cfac17c5
[FFS] Remove the FFS/UFS driver
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at 3a3ef631d1

The driver is written by Lee Jae-Hong, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/

FS Recognizer code is left to keep the FS support as an
installable driver.

CORE-11040
2021-07-30 17:14:57 +03:00
Victor Perevertkin 2e2190df57
[REISERFS] Remove the ReiserFS driver
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at e308102f4a

The driver is written by Mark W Piper, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/

FS Recognizer code is left to keep the FS support as an
installable driver.

CORE-11005
2021-07-30 17:14:53 +03:00
Timo Kreuzer cb9b538725 [CMAKE] Turn all warnings into errors on MSVC x86 2021-07-23 22:03:48 +02:00
Timo Kreuzer f4de12e9f4 [CMAKE] Don't turn C4101 (unreferenced local variable) into an error on release builds 2021-07-11 21:45:29 +02: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
Victor Perevertkin 1c7f3476a0
[CMAKE] Use BUILD_MP CMake option correctly 2021-06-28 17:54:09 +03: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 8939abf113 [ISAPNP] Disable bus scan on unsupported platforms
This speeds up boot a bit and also decreases binary size.

- Introduce a new CMake define ISAPNP_ENABLE that defined only in x86 platform
  when ISA PnP is supported.
2021-06-20 19:24:32 +06:00
Serge Gautherie c2317d773e [CMAKE] host-tools: Define ROS_SAVED_* for MSVC_IDE only
Addendum to 18e95f5.
ROSBE-174
2021-06-11 02:08:12 +03:00
Mark Jansen 64d3a54de9
[HOST-TOOLS] Block sending telemetry when spawning a new shell 2021-06-06 00:43:05 +02:00
Mark Jansen 5f94b23d2b
[HOST-TOOLS] Configure environment for MSVC cross-compiling
This makes ARM builds on a non-arm host work again.

CORE-17542
CORE-17517
2021-05-24 17:34:49 +02:00
Mark Jansen 0911e8f457
[CMAKE] Add some arm/arm64 specific paths
CORE-17517 CORE-17518
2021-05-24 17:34:28 +02:00
Mark Jansen 18e95f5a4e
[CMAKE] Store and re-use M4 and BISON_PKGDATADIR env variables
ROSBE-174
2021-05-22 16:38:17 +02:00
Jérôme Gardou 8d1e01be0e [NLS] Use files provided by Microsoft to generate most of our NLS files
Instead of binary blobs coming from who-knows-where
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 0f723105c6 [CMAKE] Allow compiling amd64 port with GCC on Windows
Dedicated to Daniel
2021-05-19 14:13:51 +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 aa51bcfbcb [CMAKE] Do not use a flag which clang doesn't know 2021-05-03 22:00:57 +02:00
Jérôme Gardou 7197620b89 [CMAKE] Always use cl to build host tools 2021-05-03 22:00:57 +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 ba74a05a17 [PSEH] Add implementation for GCC amd64
Also, put include directory next to the library and use
target_include_directories(.. INTERFACE ..) to get this right.
This is because :
 - Having includes & implementation in two different places buggers me
 - This makes sure that there is no "if it compiles everything is fine" behaviour from anyone
   because now even static libraries need it for GCC amd64 build
Also add __USE_PSEH2__ define for the non SEH-aware compilers out there and use it in a few headers
where we define macros involving __try
2021-04-28 13:10:23 +02:00
Jérôme Gardou 37bc01f42b [CMAKE] Introduce a GCC plugin for helping with amd64 SEH implementation
\#pragma REACTOS SEH(except)
\#pragma REACTOS SEH(finally)
What it does is counting the number of SEH __try blocks and emit the proper assembly statements at function prologue
It also checks for mixing C++ & SEH exception handling, which wouldn't work
2021-04-28 13:10:23 +02:00
Jérôme Gardou 97a8953538 [CMAKE:GCC] Enforce file alignment on driver & kernel images 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
Serge Gautherie c41007624f [CMAKE] config.cmake: Fix 'STEQUAL' typo, in a comment
Addendum to e90b6bb.
2021-04-27 10:36:54 +03:00
Victor Perevertkin d10728a645
[CMAKE] Rely less on CMAKE_BUILD_TYPE variable
Having conditional statements with CMAKE_BUILD_TYPE is an antipattern
See https://stackoverflow.com/questions/66079007/having-conditional-statements-on-build-type-variable-a-good-design

We use both single- and multi-config generators (Ninja and VS), so we
can't really rely on CMAKE_BUILD_TYPE, because it's not always set.

This commit alters some conditional flags to use <$CONFIG:...>
generator expression, but is still not complete. Also, our default
optimization level (4) now has what was always a de-facto flags
2021-04-15 06:44:56 +03:00