1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-11 18:20:26 +09:00
Commit graph

36 commits

Author SHA1 Message Date
Jo Shields
26000448d2
Enable tests for MacCatalyst x64 (#51139) 2021-05-08 08:30:58 -04:00
Jeremy Koritzinsky
8c2158f9fe
Make Ninja the default CMake generator on Windows for the repo (#49715)
Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
2021-04-05 09:28:04 -07:00
Jan Kotas
d47ea6a2b9
Fix x86 warning on latest VS dogfood (#50607)
* Fix x86 warning on latest VS dogfood

* Delete unnecessary warning disable
2021-04-01 16:21:35 -07:00
Jan Kotas
b1ebc548ef
Delete unnecessary linker options (#49938) 2021-03-20 19:10:42 -07:00
David Wrighton
7a94064774
Use arm jit for armel in crossgen2, and build the matching bits on all architectures (#49734)
- Use arm jit for armel in crossgen2, and build the matching bits on all architectures
2021-03-19 08:49:33 -07:00
Jan Kotas
c999ed4d26
Fix or disable warnings on latest VS dogfood (#49799)
* Fix or disable warnings on latest VS dogfood

* Delete JIT local warning disables
2021-03-18 20:20:53 -07:00
Jo Shields
44f8f0faee
Add Mac Catalyst (iOS API, Mac ABI) runtime (#47823)
Initial support for Mac Catalyst for mono subset. This enables building runtime packs and working jobs, but right now the `tests` subset needs some work to allow library test runs in CI
2021-02-08 14:26:14 -05:00
Gleb Balykov
9a283e1878
Fix armel build (#47771) 2021-02-04 16:05:37 -08:00
Adeel Mujahid
796cbeeec0
Prefer ucontext.h over sys/ucontext.h (#46790)
* Prefer ucontext.h over sys/ucontext.h

* Cleanup redundant _XOPEN_SOURCE definitions

* Remove unused makefile from PAL tests
2021-01-14 13:20:23 +01:00
Vladimir Sadov
e98fb61d8b
Moving the rest of Unix libraries to the 'overrider' mechanism when linked into static host. (#45995)
* System.Net.Security.Native

* System.Native

* fix for OSX

* fix for wasm

* fix for IOS

* Fix for FreeBSD

* System.Security.Cryptography.Native.OpenSsl

* fix OSX

* Add script to validate entrypoints.c against dll entries

* add missing CryptoNative entries

* Added verification in more projects

* Add missing entries in other files

* System.Security.Cryptography.Native.Apple

* fix for IOS/TVOS

* Change .py verification script to bash

* Update the verify_entrypoints.sh to not to use awk and work on macOS

* PR feedback

* reduce exports of System.IO.Compression.Native.dll on Windows to what is actually used and to match Unix.

* unixexports for System.IO.Compression.Native

* trying to fix IOS/TVOS

* move awk and linker flavor detection to configuretools.cmake

Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
2020-12-17 20:43:16 -08:00
Adeel Mujahid
216f96b8e8
Fix GNU linker detection on FreeBSD (#45664) 2020-12-07 09:54:54 -08:00
Vladimir Sadov
08ad834608
Static linking of native libs (#44505)
* from prototype

* fix OSX

* fix for Android

* treat "libSystem.Globalization.Native" as QCall in mono too (for now).

* fix for wasm

* fix pedantic errors on GCC

* delete gPalGlobalizationNative

* pass overrider from the host

* default override

* default PInvoke override runs after optional host-provided overrider.

* Some PR feedback   (mostly related to code, not the CMake stuff).

* more coding PR feedback

* Deleted "libraries-native" folder.

* unifying tryrun.cmake into 1 common file

* factor out adding lib-specific dependencies into one place (per native library)

* cleanup: entirely remove tryrun.cmake propagation in eng, gen-buildsys, build-commons, and build scripts

* remove "clrcompression.dll" and "libSystem.IO.Compression.Native.dylib" from single-file host packaging

* mono: refactor Globalization lookup into `default_resolve_dllimport`.

* set FEATURE_DISTRO_AGNOSTIC_SSL according to __PortableBuild

* CORECLR_CALLING_CONVENTION for the host callback types

* refactor common parts of entrypoints.c into entrypoints.h

* rename OverrideEntry -->  DllImportEntry

* extra libs as CMake functions

* use macros instead of functions in extra_libs.cmake

* mono formatting style in src/mono/mono/metadata/native-library.c

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>

* mono: Remaining stylistic nits.

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>

* do not set DFEATURE_DISTRO_AGNOSTIC_SSL on iOS, Android, tvOS

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
2020-12-06 20:08:41 -08:00
Jeremy Koritzinsky
598426c8cc
Set the MSVC RuntimeLibrary properties for ASM_MASM when we use MASM. (#44155) 2020-11-02 09:45:54 -08:00
Jeremy Koritzinsky
8c6a049cdb
Enable using the Ninja generator instead of Visual Studio on Windows builds. (#41897)
* Move DacTableGen out of the CMake build and into tools-local.

* Attempt: usenmakefiles means ninja.

* Make changes to Windows build to support non-VS generators like ninja.

* Use CMake 3.16 PCHs.

* Remove explicit process count.

* Build and run DacTableGen via the .NET CLI we pull down for the build instead of via CMake.

* Update configurecompiler.cmake to specify language (needed for Ninja).

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Get Ninja build working again.

* Pass configuration to cmake configure step for Ninja build.

* Rename flag

* Fix configure step for cross-arch native build

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Support building via Ninja for coreclr via an MSBuild property

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Implement support for opening the CoreCLR solution in VS via the -vs flag.

* Fix setting generator to Ninja.

* Merge libraries gen-buildsys-win.bat with runtime gen-buildsys.cmd to share windows cmake configure infra.

* Enable building libraries native build with ninja.

* Centralize setting CMAKE_SYSTEM_VERSION for windows builds.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Update host build to use shared gen-buildsys.cmd

* Fix multi-config generator detection.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Exit with success when we build successfully.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Enable and fix up Ninja build for hosts.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Only link delayimp.lib on Windows

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Remove "overriding /W3 with /W1" warning in Ninja build of hosts by turning on /W3 and disabling any new warnings we hit.

* Reduce command line override warnings by adopting the MSVC_RUNTIME_LIBRARY abstraction feature in CMake 3.14+ (below the minimum requirement on Windows).

* Use the delayed expansion syntax to correctly pass in the config to cmake.

* Move all usages of MSVC runtime library selection to the CMake abstraction to reduce console spew about overridden flags.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Condition the rest of the compiler options correctly so they don't show up as invalid parameter warnings for assembly builds.

* Correctly build DIALib and DacTableGen as AnyCPU

* Fix WRITE_BARRIER_CHECK define

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Fix passing arch for MSBuild build.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Configure ASM compiler command line format in configurecompiler.cmake and use CMake's assembly compilation step to build ASM files for ARM/ARM64 instead of manually building them and adding the generated files as additional sources.

* Cleanup after fixing ARM/ARM64 support.

* Rename variable

* Condition PCH's for C++-only as needed to fix using them on non-Windows (where we compile C as C instead of as C++).

* Fix CoreCLR native test build on windows to point to new gen-buildsys location.

* Add missing compilation options in Ninja build that are implicitly defined in the MSBuild build.

* Disable analyzers for DacTableGen. Remove /MAP linker flag (that's for local testing).

* Upgrade to CMake 3.16.4

* Don't warn on unused variables in CMake (these usually vary on platform/config)

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Manually compile ARM and ARM64 asm files when using the VS generator since it doesn't support emitting MARMASM item types in projects (and as a result cannot compile ARM or ARM64 asm without assistance).

* Enable CMake policy in test build to use CMAKE_MSVC_RUNTIME_LIBRARY variable.

* Update initially disabled warnings in host.

* Add -ninja arg to root scripts to enable using Ninja.

* Enable using Ninja in CoreCLR CI.

* Try to fix passing the -ninja arg in yaml.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Add ninja to the Windows invocation

* Fix 2-phase cross targeting to do one phase at a time and initialize the VC++ environment for the correct build tools each time instead of interleaving them and relying on Visual Studio to handle the differing targets.

* Restore old /Ox optimization setting for Release.

* Fix typos, don't pass exception flags to C files.

* Remove unneeded pragma.

* Fix .pgd file installation.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Add mention of the `-ninja` flag in the Building CoreCLR documentation.

Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>

* Mention installation locations for Ninja and warn while building if CMake is older than 3.16.0.

* Update docs/workflow/requirements/windows-requirements.md
2020-11-02 07:50:01 -08:00
t-mustafin
c06d053dfe
Fix crossgen2 armel build (#42811)
Build fails with libjitinterface_armel.so and libclrjit_unix_armel_x64.so was not found after #41126.

Signed-off-by: Timur <t.mustafin@partner.samsung.com>
2020-10-21 11:17:17 -07:00
Jan Vorlicek
dc7b1d2c94
Enable implicit fallthrough warning (#43397)
* Enable implicit fallthrough warning

This change enables warnings for implicit fallthrough in
switch cases and fixes all the cases where the warning
was reported.
It also fixes some places where the fall through was incorrect. 
Fortunately, these places were not causing functional issues.
2020-10-21 12:48:21 +02:00
Steve MacLean
fd094a92cd
Add initial support for Apple Silicon (#40435)
* Add CoreCLR compilation support for Apple Silicon
    * Use CMAKE_OSX_ARCH rework
    * Set clang -arch flag
    * Workaround uname arch reporting emulated arch

* Fix native code compilation issues
* Implement missing osx-arm64 functionality
* Prototype fix for write no execute issues
* Strip libunwind pointer authentication bits

* Review feedback
* Does not fix Arm64 ABI issues

Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
2020-10-07 21:01:28 -04:00
hev
036bb72b14
Fix build errors on GCC. (#42834)
* Fix build errors on GCC.

* Enable PGO on Clang.

* Fix build errors on GCC 10 and later.
2020-09-30 22:28:58 -07:00
David Wrighton
28e68bd70c
Build infra changes to enable building a more universal cross target jit builds (#41126)
This change is part of a larger effort to enable crossgen2 to perform general purpose cross compilation from any architecture to any other architecture. This portion of the change is to begin generating cross targeting jits with a consistent naming scheme with a minimal amount of code change.

The practical output of this change is replacement of the current practice of building protojit/protononjit/etc. with `clrjit_<targetos>_<target_arch>_<host_arch>` binaries.

In addition I've defined a couple of new subsets so that this can be less impactful to the inner dev loop.

clr.alljits, which will build all of the jits.
clr.jit, which will build only non-cross targeting jits.
clr.runtime which has been enhanced to not trigger the alljits build.

Current restrictions of the change:
1. This change does not support 32bit to 64bit compilation. I've built a larger change that includes the necessary work for that, but the changes are more disruptive, and I would prefer to scope this work to make it reviewable.
2. This work builds different compilers for the unix targetting and windows targetting compilers. This is due to the different ABIs that the architectures support. Upon investigation, I've determined that the actual product differences in these cases is small for ARM and ARM64. In the future, once we have testing, I believe it would be reasonable to unify the generated compiler binaries.
3. These changes do not build an armel targeting compiler for all scenarios, but it does build one with the current naming scheme as was done before. Again, like in condition 2, I believe we can make a single arm targetting compiler that will work.
4. These changes include changes to crossgen2 to use the new compiler binaries. However, there is no expanded testing to cover test the newly available cross compilation capabilities. That will appear in follow-on work.
2020-09-09 14:49:42 -07:00
Levi Broderick
1ccfb40830
Suppress C5105 warning on build (#41900) 2020-09-04 22:06:49 -07:00
Alexander Köplinger
56f80c7ab0
Make minimal OSX version consistent between build-native.sh and configurecompiler.cmake (#41435)
The latter still specified 10.12 but .NET Core 3+ actually only supports macOS 10.13 or later.
2020-08-27 20:38:25 +02:00
Alexander Köplinger
c6eac1f2d5
Cleanup old corefx/coreclr GitHub issue links (#40286)
Replace them with the current URL after the redirect.

Similar to https://github.com/dotnet/runtime/pull/2063.

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
2020-08-13 23:13:51 +02:00
Jeremy Koritzinsky
ece10adbdd
Minimum CMake downgrade for Linux (#39044)
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
2020-08-04 11:04:05 -07:00
Jan Kotas
e856fbfc1e
Delete redundant MSVC compiler options (#39901) 2020-07-24 15:29:24 -07:00
Ilia
cb817c7d1a
Fix build configs for macOS ARM64 on DTK (#39142)
Related issue: #39010
2020-07-11 10:27:05 -07:00
Sergey Andreenko
cbdc44b3c8
Enable warning 5038 on VS. (#38499)
* Enable w35038 on VS.

* fix for a contract.h

* FIx other places.

* another fix.
2020-06-30 16:03:42 -07:00
Adeel Mujahid
43ae9afecb
Add support for illumos cross-compilation (#37753) 2020-06-19 14:50:20 +02:00
Adeel Mujahid
5859dadf20
Add configurations for SunOS in installer (#36316) 2020-05-13 23:46:33 +02:00
Adeel Mujahid
8271d53e62
Add configurations for SunOS CoreCLR managed build (#36266) 2020-05-12 15:45:02 +02:00
Adeel
5e686687b5 Port CoreCLR to SunOS 2020-04-19 05:10:45 +00:00
Ivan Diaz Sanchez
62d8baf93a
Reenable some disabled warnings in CoreCLR (#34659)
* First fixes to print hex without silencing warning 4477.

* After the previous commit, dasm.cpp started showing abnormalities.

* Warning 4302 reenable iteration 1

* Warning 4302 reenable iteration 2

* Warning 4312 reenable: Iteration 1

* Warning 4312 reenable: Iteration 2

* Updated configurecompiler.cmake comments with newly reenabled warnings.

* Fixed a comment.

* Fixed a 32-bit issue with printing formats as well as a scope issue on Linux.

* Warning 4302/4311/4477 reenable: Fixed Checked Builds.

* Warning 4302/4311/4477 iteration 3

* Warning 4477 reenable iteration 4: ToString of bits.

* Fixed an unsigned long long for x86.

* Fixed 4477 on x86 for real this time.

* Changed two bitness checks for size_t usage instead.
2020-04-09 13:57:52 -07:00
Adeel Mujahid
9f0c54098a
Define dirent d_type for Solaris based OS (#34263) 2020-04-04 09:27:01 -07:00
Tomas Weinfurt
595a95c05b
add support for FreeBSD cross-compilation (#34000)
* add support for FreeBSD cross-compilation

* feedback from review

* update detection

* add openssl to docs

* feedback from reviews

* feedback from reviews

* final cleanup

* feedback from reviews

* simplify detection of route.h

* correct __CrossBuild detection

* use TargetOS for installer
2020-03-31 13:36:32 -07:00
Elinor Fung
ed2e6e2e48
Fix for changed host behaviour on app crash (#34224)
* Switch back to only handling synchronous exceptions in host components

Add native hosting tests for components with unhandled exceptions.

* Switch setting /EHa to be for coreclr instead of shared default
2020-03-30 09:47:26 -07:00
Alexander Köplinger
3d8073daba
Rename TARGET_DARWIN to TARGET_OSX (#33959)
https://github.com/dotnet/runtime/pull/33716 set TARGET_DARWIN for iOS too but most of the logic is really OSX-specific.
Unset TARGET_DARWIN for iOS and rename the rest of the occurrences to TARGET_OSX.
2020-03-24 11:44:34 +01:00
Adeel Mujahid
b0351370cc
Unify some cmake function definitions (#33716)
* Unify some cmake function definitions

* Address CR feedback

* Make installers /Zc:strictStrings compatible

* Make installer /Gz compatible

* Remove skip-strip internal implementation

* Use CLR_CMAKE_TARGET_DARWIN

* Establish iOS to Darwin relationship

* Simplify iOS conditions
2020-03-20 19:45:42 -07:00
Renamed from src/coreclr/configurecompiler.cmake (Browse further)