Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/build
AgeCommit message (Collapse)Author
2021-11-20Remove netcore sources and arcade eng/common files (#21315)Alexander Köplinger
They are no longer needed here.
2021-02-27Remove .csproj files from mcs/ build, they were never used (#20883)Alexander Köplinger
This allows us to remove a lot of cruft and simplifies our CI build.
2020-03-11Avoid passing /features:peverify-compat to csc, it generates very ↵Zoltan Varga
inefficient code in some cases. (#19144) See https://github.com/mono/mono/issues/18572#issuecomment-595924767. Fixes https://github.com/mono/mono/issues/18572. Disable the IL verifier for now, it can't handle code compiled without /features:peverify-compat.
2020-02-25Bump linker. (#19006)Zoltan Varga
* Bump linker. * Bump linker tools framework version * [csproj] Update project files Co-authored-by: Marek Safar <marek.safar@gmail.com> Co-authored-by: monojenkins <jo.shields+jenkins@xamarin.com>
2020-01-29[corlib] Split corlib xunit tests even more for iOS (#18619)Alexander Köplinger
Follow-up to https://github.com/mono/mono/pull/18228 since two parts wasn't enough to fix the size issue on 32bits devices. We now use three parts. Fixes https://github.com/mono/mono/issues/18614
2019-12-18[bcl] Split corlib and System.Core xunit test assemblies for monotouch ↵Alexander Köplinger
profiles (#18228) They cannot deal with large test assemblies so we need to split them. We're doing this by introducing a new `#skip <PROFILE>` directive in the .sources format which defines where to split the assembly. The logic is very simple: files up until the first `#skip` are common files which get included in each part, subsequent files are only in the respective part assembly. Fixes https://github.com/mono/mono/issues/18213
2019-11-20enable gss on android (#17838)Egor Bogatov
2019-10-19Remove the Legacy TLS Provider. (#17391)Martin Baulig
* `MonoTlsProviderFactory` now treats "legacy" as an alias for "default". * `Mono.Net.Security/LegacySslStream`: Removed. This class also wasn't using the `MobileAuthenticatedStream` base class, thus preventing cleanups simplifications in that area. * `Mono.Net.Security/LegacyTlsProvider`: Removed. * `Mono.Security/Mono.Security.Protocol.Tls*`: Removed all the old legacy code. * `Mono.Security.Interface.MonoTlsProviderFactory`: Bump internal version to 4.
2019-10-18Enable GSS on Linux and Android (#17223)Egor Bogatov
2019-10-14[System.Net.Http] Clean up HttpMessageHandler setup (#17252)Marek Safar
* [System.Net.Http] Clean up HttpMessageHandler setup to avoid reflection and not to be recursive Superseded #15051 and #15922 * [csproj] Update project files
2019-10-02[mini] Use clr memory model by default (#17136)Vlad Brezae
* [mini] Use clr memory model by default Otherwise we can have potential crashes in the bcl on arm targets, since a lot of code that assumes this memory model is now shared with mono. Keep the old clr-memory-model option alive for now, to avoid potential build problems, if building older mono with newer mono. * [build] Remove clr-memory-model option It is default now * [man] Add entry for weak-memory-model
2019-09-17[corlib] Fix building nunit-lite twice (#16894)Alexander Köplinger
We sometimes saw the following build error in Mono SDKs builds on Jenkins: ``` [2019-09-16T01:03:30.709Z] CSC [xammac] nunit-lite-console.exe [2019-09-16T01:03:30.709Z] error CS0009: Metadata file '/Users/builder/jenkins/workspace/archive-mono/2019-08/mac/release/mcs/class/lib/xammac/nunitlite.dll' could not be opened -- PE image doesn't contain managed metadata. ``` Taking a closer look we found out that nunit-lite was trying to be built twice for the same profile which caused a race where the file was corrupted. The reason for this is that the corlib Makefile defines two test assemblies: the normal PROFILE_corlib_test.dll and BinarySerializationOverVersionsTest.dll and integrating the BinarySerializationOverVersionsTest.dll via the `test-vts` target incorrectly overwrote the `test` target instead of using `test-local`.
2019-08-09[build] Remove ILDISASM variable from platform MakefilesAlexander Köplinger
It was written by configure.ac to config.make and is unused anyway.
2019-08-09[build] Remove PLATFORM_CORLIB from platform MakefilesAlexander Köplinger
Changing the corlib assembly name isn't supported anywhere else in the build.
2019-08-09[build] Remove MBAS from the platform MakefilesAlexander Köplinger
It no longer exists.
2019-08-09[build] Remove EXTERNAL_MCS setting in platform MakefilesAlexander Köplinger
Setting an explicit mcs is no longer supported by the rest of the build scripts.
2019-08-09[build] Remove confusing commented out codeAlexander Köplinger
2019-08-09[build] Remove PLATFORM_MAKE_CORLIB_CMPAlexander Köplinger
The corlib_cmp doesn't exist anymore.
2019-08-09[build] Replace PLATFORM_ ifdefs with HOST_PLATFORM checksAlexander Köplinger
Building Linux BCL assemblies from a macOS machine didn't work since we were enabling some Apple features if the build machine was macOS.
2019-08-06Bump api-doc-tools to latest master (#16035)Alexander Köplinger
* Bump api-doc-tools to latest master Disable building mdoc.exe in mcs mode since it no longer builds because of new C# features. * Fix mcs build by disabling more mdoc invocations * Bump monodroid_tools to compile against v4.7 reference assemblies mdoc needs ValueTuple which is not in v4.6. * [csproj] Update project files
2019-07-09Make RemoteExecutor a no-op on all mobile profiles (#15611)Alexander Köplinger
Starting another Mono process for the remote executor doesn't work on any of them. Helps with https://github.com/mono/mono/issues/15328
2019-06-28Pass the --clr-memory-model flag on the command line instead of MONO_DEBUG ↵Zoltan Varga
so its not inherited by child processes. (#15447)
2019-06-25Fix tarball build and refresh monolite due to memory model change (#15370)Jay Krell
* Revise monolite due to memory model change. * Fix tarball builds wrt netcore/config.make. * Remove System.Private.CoreLib from mcs/class/Makefile, it was moved to netcore/ * Bump min_mono_version in basic-profile-check The new MONO_DEBUG=clr-memory-model runtime option isn't available in earlier Mono versions.
2019-06-25[bcl] Move MONO_DEBUG env variable after Q_MCSAlexander Köplinger
Otherwise we'd get "/bin/sh: @echo: command not found" errors.
2019-06-20[jit] Add debug option for using clr memory model (#15019)Vlad Brezae
* [jit] Move value storing in a new write barrier emitting method Brings together ref storing and the write barrier generation. * [jit] Add debug option to attempt using the CLR memory model Which prevents reordering of stores. Part of the way this is done on CoreCLR is by adding memory barriers to the write barrier, so we attempt a similar behavior. This is not a complete implementation. * [build] Add memory model flag to csc when building the bcl This should prevent random crashes during the build * [build] Add memory model flag to compiler server * [build] Add memory model flag to test building
2019-06-20Add Windows x64 Full AOT Interpreter support on CI. (#15127)Johan Lorensson
Add support to run full interpreter test suite on CI for Windows x64 Full AOT. Since Windows x64 Full AOT uses a different full AOT profile WinAOT a separate testing profile was setup for the interpreter testing. NOTE, this profile is pure for testing, inline with the other testing profiles. It is also reusing most of its sources from other sources files (mainly WinAOT) to reduce maintenance of the profile. Commit also includes some smaller adjustments needed in order to get full pass rate for Windows x64 Full AOT + Interpreter on CI.
2019-06-13Ensure start-compiler-server.sh is in tarballs (#15071)Jo Shields
2019-06-05[tests] Exclude more nunit categories on ios/mac (#14807)Alexander Köplinger
A few more that we missed adding to the exclude file in the sdks archive. (cherry picked from commit 3d9513efd4372636313240c2a1477734ddde6f2e)
2019-05-31Add CI test coverage for compiler server (#14145)Katelyn Gadd
* Add a warning to the gensources Makefile so it's not confusing when it fails to compile in non-build profiles * Add CI test script that verifies the compiler server functions * Fix bugs * Add compiler server tag to jenkins script * Add +x * Rename compiler server test tag
2019-05-29[bcl] Add nunit exclude categories for monotouch/monodroid profiles (#14695)Alexander Köplinger
We didn't set all the categories that the products used in our profiles. Now that the products can consume the exclude categories from mono we need to unify the values. Removed ValueAdd since it's not used anymore and combined MacNotWorking into NotOnMac.
2019-05-29Infrastructure support / fixes for making compiler server the default (#14279)Katelyn Gadd
* Fix enabling the compiler server using autogen, and force it off if mcs is being used * autogen updates * Formatting fixes * Fix vbcs getting turned on if unspecified even if mcs was selected * Dynamically evaluate ENABLE_COMPILER_SERVER each time we compile instead of evaluating it once at some arbitrary point during makefile evaluation * More detailed comment based on testing * Handle the /shared option in genproj so it doesn't fail * Raise basic profile check requirement to 6.2 and hopefully assert that named pipes work * Default compiler server to off for now.
2019-05-28[bcl] Write newline-separated nunit/xunit excludes file for sdks archive ↵Alexander Köplinger
(#14681) During XI integration we noticed that just using the verbatim commandline -exclude or -notrait is not ideal since XI uses the nunit/xunit APIs to pass that information and not the command line parser. Instead we now write the exclude categories/traits as a newline-separated file.
2019-05-23[tests] Add xunit.execution.dotnet.dll to tests directory (#14595)Alexander Köplinger
So it gets included in the sdks archive
2019-05-22[tests] Add Xunit.NetCore.Extensions.dll to tests directory (#14571)Alexander Köplinger
So it gets included in the sdks archive
2019-05-21Removing some remoting and multi-appdomain APIs on wasm and the AOT test ↵Martin Baulig
profiles. Build / profile changes: ------------------------ * `build/profiles/testing_aot_common.make`: define `DISABLE_REMOTING = yes` and `NO_MULTIPLE_APPDOMAINS = yes`. * `mcs/class/corlib/Makefile`: check `DISABLE_REMOTING` when setting `REFERENCE_SOURCES_FLAGS` (and don't define `FEATURE_REMOTING`, `MONO_COM` and `FEATURE_COMINTEROP`). * added new `testing_aot_common_corlib.dll.exclude.sources`. Several types in the `System.Runtime.Remoting.Messaging` namespace are used by the runtime in non-remoting scenarios, so those need to be preserved. For all other remoting namespaces, we only need a few stripped down stub versions of the some of the types; those have been added to a new `legacy` directory, so we can wildcard-exclude all the files here. * added new `testing_aot_common_corlib.dll.sources`; this currently only contains `legacy/*.cs` to list above mentioned stub versions. * added new `testing_aot_common_corlib_test.dll.exclude.sources` as a common test excludes file. API Changes (conditional to `DISABLE_REMOTING`): ------------------------------------------------ * `mcs/class/corlib/legacy/`: add stub-versions for some of the remoting-related classes that are used by the runtime (so we can't completely remove those types): - `System.MarshalByRefObject`. - `System.Runtime.Remoting.IRemotingTypeInfo`. - `System.Runtime.Remoting.ObjectHandle`. - `System.Runtime.Remoting.RemotingServices`. - `System.Runtime.Remoting.Activation.ActivationServices`. - `System.Runtime.Remoting.Contexts.Context`. - `System.Runtime.Remoting.Messaging.ILogicalThreadAffinative`. - `System.Runtime.Remoting.Messaging.LogicalCallContext`. - `System.Runtime.Remoting.Proxies.TransparentProxy`. - `System.Runtime.Remoting.Proxies.RealProxy`. some of these have fields that need to be preserved; these are marked with appropriate `#region` pragmas. All changes below are conditional to `DISABLE_REMOTING`. * `System.Runtime.Remoting.Messaging.AsyncResult`: this class is used by some of the async code, so we can't completely remove it. However, we can remove the `MonoMethodMessage call_message` field when `DISABLE_REMOTING`. * `System.Runtime.Remoting.Messaging.MonoMethodMessage`: this class is also used by some runtime code and thus needs to be preserved. However, when `DISABLE_REMOTING` is defined, then we make some changes to it: - remove all iterfaces (`IMethodCallMessage`, `IMethodReturnMessage`, and `IInternalMessage`). - `Properties` throws `PlatformNotSupportedException`. * `System.Runtime.InteropServices.Marshal`: disable some COM-related code. * `System.Threading.Thread`: remove `CurrentContext` property. * `System.Threading.ExecutionContext`: adjust conditional logic; don't define `FEATURE_REMOTING` if `DISABLE_REMOTING`. * `System.Activator`: add `DISABLE_REMOTING` to the existing `#if FEATURE_REMOTING || MOBILE_LEGACY` conditional in this class. * `System.AppDomain`: since we only have one domain, `DefaultDomain` will always return the root domain; comment out the call to `RemotingServices.GetDomainProxy` as well as some internal methods. * `System.__ComObject`: stub out on `DISABLE_REMOTING` as well as `!FULL_AOT_RUNTIME`. * `System.Runtime.Serialization.Formatters.Binary.BinaryFormatter`: adjust `IFormatter` versus `IRemotingFormatter` interface logic to use the former when `DISABLE_REMOTING`. * `System.Runtime.Serialization.Formatters.Binary.BinaryObjectReader`: adjust existing `#if FEATURE_REMOTING || MOBILE_LEGACY` conditional to add `DISABLE_REMOTING` to it. * `System.Diagnostics.CorrelationManager`: comment out some `CallContext.LogicalGetData()` and `CallContext.LogicalSetData`. * `System.Diagnostics.TraceEventCache`: likewise. Test changes: ------------- * `mono/tests/Makefile.am`: conditionally disable some remoting tests. * `corlib/Test/System.Runtime.Serialization/SerializationTest.cs`: conditionally disable all tests requiring remoting. * `corlib/Test/System/ActivatorTest.cs`: same; trying to preserve as much as possible in this test. * added some `DISABLE_REMOTING` and `DISABLE_SECURITY` conditionals to some of the tests.
2019-05-16[monodroid] Introduce 'win32 host' BCL build (#14424)Alexis Christoforides
* [monodroid] Introduce 'win32 host' BCL build * [sdks] Add _bcl_$(1)_BUILD_FLAGS variable to BclTemplate build step Allows Android SDK on Windows to pass PROFILE_PLATFORM=win32 * [sdks] Pass _bcl_$(1)_BUILD_FLAGS when building the tests, too * Copy test source exclusion files from the general monodroid profile Apparently we don't fall back to the general exclusion sources for tests if the platorm-specific exclusion file does not exist. * Also add win32 copies of the nunit exclude files: files=$(find . -name "monodroid*_test*exclude.sources") for file in $files do name=$(basename $file) pushd $(dirname $file) cp $name win32_$name git add win32_$name popd done * [csproj] Update project files
2019-05-06[tests] Write nunit/xunit exclude categories to a file (#14281)Alexander Köplinger
So we can include it in the SDKs archive.
2019-04-30Add minimal COM support into WinAOT BCL profile and Windows Mono runtime.lateralusX
Technologies like SharpDX uses a minimal set of COM support from runtime and System.Runtime.InteropServices.Marshal: AddRef Release QueryInterface All these are low level wrappers around methods in IUknown interface and doesn't need any of the additional runtime COM support enabled to work. Technologies like CoreRT includes these methods in their full AOT profile, meaning that SharpDX can run on CoreRT on Windows platforms. Mono's WinAOT profile and runtime currently don't, making it impossible to use SharpDX. This PR adds the needed methods into WinAOT profile and also make sure corresponding icalls always gets included on Windows build Mono runtime.
2019-04-29Define `DISABLE_SECURITY` and `DISABLE_REMOTING` on wasm and testing_aot.Martin Baulig
2019-04-25Remove `DISABLE_REMOTING` conditional.Martin Baulig
2019-04-19Fix start-compiler-server (#14117)Katelyn Gadd
2019-04-02[bcl] Fix compiling nunitlite when PARENT_PROFILE is defined (#13791)Alexander Köplinger
In this case we relied on nunitlite to be compiled when the parent profile is compiled. That doesn't work however if we compile the child profile first (e.g. during a parallel make) since it'll complain about missing nunitlite.dll. We now compile nunitlite in the child profiles too even though we don't use it. This is an alternative solution to what I tried in https://github.com/mono/mono/pull/5357 since I couldn't get it to work and this should be the easier fix. It allows us to finally remove the `-i` (ignore errors) from the CI scripts and catch test assembly breakages in mobile profiles which we ignored before.
2019-03-29[wasm]: Disable managed collation on wasm. (#13684)Martin Baulig
* The `SimpleCollator` class now implements a new internal interface `ISimpleCollator`. In `CompareInfo`, we reference it by that interface everywhere except `GetCollator ()`, so we can `#if`-def it out. Later on, we will use the linker to do this dynamically with some sort of conditional, but even then the interface is required to limit references to the `SimpleCollator` type to one single method. * Add `Mono.Globalization.Unicode/SimpleCollator.cs` to `wasm_corlib.dll.exclude.sources`. * `corlib/Makefile`: remove collation resources on WASM. * Added new `[Category ("ManagedCollator")]` to the relevant tests.
2019-03-26Cosmetic: remove accidentally added gensources debugging flag. (#13678)Martin Baulig
2019-03-19[sdks] Build mac in Mono SDKs (#13535)Alexander Köplinger
Enables building of the xammac runtime and BCL/tests into the SDKs archive. Contributes to #11397
2019-03-07Remove code moved to sharedMarek Safar
2019-03-06Introducing `HttpClient.CreateDefaultHandler()`. (#13305)Martin Baulig
* The default `HttpClient` constructor now calls a static method `CreateDefaultHandler()`; we provide a platform-specific implementation of it. * Replaced `HeaderUtils` with `PlatformHelper` and removed the `LEGACY_HTTPCLIENT` conditional. * Added a new `socketshandler.sources` file to keep the sources in one place. * Use a reflection check in the tests instead of the `LEGACY_HTTPCLIENT` conditional. * This allows us to also get rid of the `SOCKETSHTTPHANDLER` define.
2019-03-01[android] Fix Mono.Debugger.Soft tests with Android SDKs (#13218)Ludovic Henry
* [android] Fix Mono.Debugger.Soft tests with Android SDKs * [android] Fix connecting with LLDB * [android] Add scaffolding to run profiler tests * [android] Fix some corlib tests * [android] Fix Mono.DebuggerTests.ExceptionFilter2 * [csproj] Update project files
2019-02-27[ci] Add new mode of execution for nunit tests on Android (#13098)Ludovic Henry
* [ci] Add new mode of execution for nunit tests on Android This makes it possible to run the `nunit-lite-console.exe` on the host, while the tests still run on the device. This makes it transparent wherever the tests are running, giving us a seamless integration with the existing infrastructure based around nunit. * [android] Fix System.Net.Http test suite * [android] Fix System.ServiceModel.Web test suite * [android] Fix Mono.Security test suite * fixup! [ci] Add new mode of execution for nunit tests on Android * [ci] Disable failing tests * [csproj] Update project files
2019-02-20[ci] Prefer gmake over make for SDKs build (#13091)Alexander Köplinger
Apple's make doesn't support the --output-sync option and Homebrew's make is installed as gmake. Also fixed a few places in the repo where we directly invoked make instead of $(MAKE).