Known conditionals:

* MONO_FEATURE_WEB_STACK: when we have the full web stack.

* MONO_FEATURE_NEW_TLS: we are using the new TLS implementation.

* MONO_FEATURE_LOGGING: whether we want the internal logging API.

* MONO_NOT_SUPPORTED: not supported in Mono.

* MONO_NOT_IMPLEMENTED: not yet implemented in Mono.

Other defines which are used when building the BCL and tests:

* MONO_INSIDE_SYSTEM: we're building System.dll.

* MONO_INSIDE_MONO_SECURITY: we're building Mono.Security.dll.

Extern aliases:

* MONO_SECURITY_ALIAS: we're using Mono.Security from the "MonoSecurity" extern alias.

## How to import new version update

```
wget https://patch-diff.githubusercontent.com/raw/Microsoft/referencesource/pull/{pull-request-number}.patch
patch -p1 <{pull-request-number}.patch
```

After that manually review .rej files generated during patching (they are hidden by .gitignore)