diff --git a/Documentation/docs-mobile/messages/index.md b/Documentation/docs-mobile/messages/index.md
index f1aec015287..23b0b20c6fc 100644
--- a/Documentation/docs-mobile/messages/index.md
+++ b/Documentation/docs-mobile/messages/index.md
@@ -164,7 +164,6 @@ Either change the value in the AndroidManifest.xml to match the $(SupportedOSPla
+ XA3001: Could not AOT the assembly: {assembly}
+ XA3002: Invalid AOT mode: {mode}
-+ XA3003: Could not strip IL of assembly: {assembly}
+ XA3004: Android NDK r10d is buggy and provides an incompatible x86_64 libm.so.
+ XA3005: The detected Android NDK version is incompatible with the targeted LLVM configuration.
+ XA3006: Could not compile native assembly file: {file}
@@ -275,7 +274,6 @@ and `NNN` is a 3 digit number indicating the type of the unhandled `Exception`.
* `CGJ` - `CopyGeneratedJavaResourceClasses`
* `CGS` - `CheckGoogleSdkRequirements`
* `CIC` - `CopyIfChanged`
-* `CIL` - `CilStrip`
* `CLC` - `CalculateLayoutCodeBehind`
* `CLP` - `ClassParse`
* `CLR` - `CreateLibraryResourceArchive`
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs b/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
index 82c813e76aa..e5d90261608 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
@@ -992,15 +992,6 @@ public static string XA3002 {
}
}
- ///
- /// Looks up a localized string similar to Could not strip IL of assembly: {0}.
- ///
- public static string XA3003 {
- get {
- return ResourceManager.GetString("XA3003", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Android NDK r10d is buggy and provides an incompatible x86_64 libm.so. See https://code.google.com/p/android/issues/detail?id=161422..
///
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.cs.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.cs.resx
index b032bb720a7..9571c3a4e30 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.cs.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.cs.resx
@@ -572,10 +572,6 @@ Buď změňte hodnotu v souboru AndroidManifest.xml tak, aby odpovídala hodnot
Neplatný režim AOT: {0}
The abbreviation "AOT" should not be translated.
-
- Nepovedlo se odebrat sestavení z IL: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d obsahuje chyby a poskytuje nekompatibilní knihovnu libm.so pro architekturu x86_64. Viz https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.de.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.de.resx
index 7108a20a22d..94202a52451 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.de.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.de.resx
@@ -572,10 +572,6 @@ Bitte ändern Sie den Wert in einen Assembly-basierten Typnamen, der von "System
Ungültiger AOT-Modus: {0}
The abbreviation "AOT" should not be translated.
-
- IL für Assembly konnte nicht entfernt werden: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d ist fehlerhaft und stellt eine inkompatible x86_64-Bibliothek "libm.so" bereit. Siehe https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.es.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.es.resx
index a8007296413..a139d616613 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.es.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.es.resx
@@ -572,10 +572,6 @@ Cambie el valor de AndroidManifest.xml para que coincida con el valor $(Supporte
Modo AOT no válido: {0}
The abbreviation "AOT" should not be translated.
-
- No se pudo quitar IL del ensamblado: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d ha dado error y proporciona un archivo x86_64 libm.so no compatible. Consulte https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.fr.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.fr.resx
index 00ed686c192..f336b08901e 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.fr.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.fr.resx
@@ -572,10 +572,6 @@ Modifiez la valeur dans AndroidManifest.xml pour qu’elle corresponde à la val
Mode de compilation AOT non valide : {0}
The abbreviation "AOT" should not be translated.
-
- Impossible de supprimer l'IL de l'assembly : {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d ne fonctionne pas correctement, et fournit une bibliothèque libm.so x86_64 incompatible. Consultez https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.it.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.it.resx
index 28ea7f4631e..2bba578a4c1 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.it.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.it.resx
@@ -572,10 +572,6 @@ Modificare il valore in AndroidManifest.xml in modo che corrisponda al valore $(
Modalità AOT non valida: {0}
The abbreviation "AOT" should not be translated.
-
- Non è stato possibile rimuovere IL dell'assembly: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d contiene bug e fornisce un file x86_64 libm.so incompatibile. Vedere https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ja.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ja.resx
index bc5515bcbb8..e2aa01a88c9 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ja.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ja.resx
@@ -573,10 +573,6 @@ $(SupportedOSPlatformVersion) 値に一致するように AndroidManifest.xml
無効な AOT モード: {0}
The abbreviation "AOT" should not be translated.
-
- アセンブリの IL を削除できませんでした: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d にはバグがあるため、互換性のない x86_64 libm.so が提供されます。https://code.google.com/p/android/issues/detail?id=161422 をご覧ください。
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ko.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ko.resx
index 44fac0c6832..f663b875edb 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ko.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ko.resx
@@ -572,10 +572,6 @@ AndroidManifest.xml의 값을 $(SupportedOSPlatformVersion) 값에 맞도록 변
잘못된 AOT 모드: {0}
The abbreviation "AOT" should not be translated.
-
- 어셈블리의 IL을 제거할 수 없음: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d는 버그가 있으며 호환되지 않는 x86_64 libm.so를 제공합니다. https://code.google.com/p/android/issues/detail?id=161422를 참조하세요.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.pl.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.pl.resx
index 8f6217b05cb..b200e61a22a 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.pl.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.pl.resx
@@ -572,10 +572,6 @@ Zmień wartość w pliku AndroidManifest.xml, aby odpowiadała wartości $(Suppo
Nieprawidłowy tryb AOT: {0}
The abbreviation "AOT" should not be translated.
-
- Nie można usunąć kodu IL zestawu: {0}
- The abbreviation "IL" should not be translated.
-
Zestaw Android NDK r10d zawiera wiele usterek i dostarcza niezgodną bibliotekę libm.so dla architektury x86_64. Zobacz https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.pt-BR.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.pt-BR.resx
index 2ac7888ef3c..a168392050d 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.pt-BR.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.pt-BR.resx
@@ -572,10 +572,6 @@ Altere o valor no AndroidManifest.xml para corresponder ao valor $(SupportedOSPl
Modo de AOT inválido: {0}
The abbreviation "AOT" should not be translated.
-
- Não foi possível remover o IL do assembly: {0}
- The abbreviation "IL" should not be translated.
-
O NDK r10d apresenta um bug e fornece um libm.so do x86_64 incompatível. Confira https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
index df1f9eef5a6..dff532b11c5 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
@@ -572,10 +572,6 @@ Either change the value in the AndroidManifest.xml to match the $(SupportedOSPla
Invalid AOT mode: {0}
The abbreviation "AOT" should not be translated.
-
- Could not strip IL of assembly: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d is buggy and provides an incompatible x86_64 libm.so. See https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ru.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ru.resx
index eb960c3b688..9c5eb850fc1 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.ru.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.ru.resx
@@ -572,10 +572,6 @@ In this message, the term "binding" means a piece of generated code that makes i
Недопустимый режим AOT: {0}
The abbreviation "AOT" should not be translated.
-
- Не удалось удалить промежуточный язык сборки: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d содержит ошибки и предоставляет несовместимый пакет x86_64 libm.so. См. https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.tr.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.tr.resx
index c434dd43549..b04b48eeecd 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.tr.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.tr.resx
@@ -572,10 +572,6 @@ AndroidManifest.xml dosyasındaki değeri $(SupportedOSPlatformVersion) değeriy
Geçersiz AOT modu: {0}
The abbreviation "AOT" should not be translated.
-
- Derlemenin IL'si ayrılamadı: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d hatalı olduğundan uyumsuz bir x86_64 libm.so dosyası sağlıyor. Bkz. https://code.google.com/p/android/issues/detail?id=161422.
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hans.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hans.resx
index b4f48046e2a..a2f6f23abc0 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hans.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hans.resx
@@ -572,10 +572,6 @@ In this message, the term "binding" means a piece of generated code that makes i
AOT 模式无效: {0}
The abbreviation "AOT" should not be translated.
-
- 无法提取程序集的 IL: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d 有 bug,且提供了不兼容的 x86_64 libm.so。请参阅 https://code.google.com/p/android/issues/detail?id=161422。
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hant.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hant.resx
index f618d1366d8..a225593d853 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hant.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.zh-Hant.resx
@@ -572,10 +572,6 @@ In this message, the term "binding" means a piece of generated code that makes i
AOT 模式無效: {0}
The abbreviation "AOT" should not be translated.
-
- 無法除去組件的 IL: {0}
- The abbreviation "IL" should not be translated.
-
Android NDK r10d 有錯誤,且會提供不相容的 x86_64 libm.so。請參閱 https://code.google.com/p/android/issues/detail?id=161422。
The following are literal names and should not be translated: NDK, r10d, x86_64, libm.so
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/CilStrip.cs b/src/Xamarin.Android.Build.Tasks/Tasks/CilStrip.cs
deleted file mode 100644
index 814b4d19226..00000000000
--- a/src/Xamarin.Android.Build.Tasks/Tasks/CilStrip.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-using Microsoft.Android.Build.Tasks;
-
-namespace Xamarin.Android.Tasks
-{
- public class CilStrip : AndroidTask
- {
- public override string TaskPrefix => "CIL";
-
- [Required]
- public string AndroidAotMode { get; set; } = "";
-
- [Required]
- public string ToolPath { get; set; } = "";
-
- [Required]
- public ITaskItem[] ResolvedAssemblies { get; set; } = [];
-
- [Required]
- public string StampFile { get; set; } = "";
-
- public CilStrip ()
- {
- }
-
- public override bool RunTask ()
- {
- return DoExecute ();
- }
-
- bool DoExecute () {
- Log.LogDebugTaskItems (" Targets:", ResolvedAssemblies);
-
- AotMode aotMode;
- bool hasValidAotMode = Aot.GetAndroidAotMode (AndroidAotMode, out aotMode);
- if (!hasValidAotMode) {
- Log.LogCodedError ("XA3002", Properties.Resources.XA3002, AndroidAotMode);
- return false;
- }
-
- // Create a directory to move the original non IL-stripped assemblies.
- string assembliesDir = Path.GetDirectoryName (ResolvedAssemblies.First ().ItemSpec);
- string nonstripDir = Path.Combine (assembliesDir, "non-stripped");
-
- if (!Directory.Exists (nonstripDir))
- Directory.CreateDirectory (nonstripDir);
-
- var timestampFileDate = File.GetLastWriteTimeUtc (StampFile);
-
- foreach (var assembly in ResolvedAssemblies) {
- string assemblyPath = Path.GetFullPath (assembly.ItemSpec);
- string nonstripPath = Path.Combine (nonstripDir, Path.GetFileName (assemblyPath));
-
- Log.LogDebugMessage ($"Moving {assemblyPath} to {nonstripPath}");
-
- var srcmodifiedDate = File.GetLastWriteTimeUtc (assemblyPath);
-
- if (srcmodifiedDate < timestampFileDate) {
- Log.LogDebugMessage ($"Skipping strip of IL for {assembly.ItemSpec}. Assembly has already been stripped.");
- continue;
- }
-
- File.Copy (assemblyPath, nonstripPath, overwrite: true);
-
- if (!RunCilStrip (nonstripPath, assemblyPath)) {
- Log.LogCodedError ("XA3003", Properties.Resources.XA3003, assembly.ItemSpec);
- return false;
- }
- }
-
- return true;
- }
-
- bool RunCilStrip (string assembly, string output)
- {
- Log.LogMessage (MessageImportance.High, "[cil-strip] " + assembly);
-
- var arguments = string.Format("{0} {1}", assembly, output);
-
- var psi = new ProcessStartInfo () {
- FileName = Path.Combine (ToolPath, "cil-strip.exe"),
- Arguments = arguments,
- UseShellExecute = false,
- RedirectStandardOutput = true,
- RedirectStandardError = true,
- CreateNoWindow = true,
- WindowStyle = ProcessWindowStyle.Hidden,
- };
-
- var proc = new Process ();
- proc.OutputDataReceived += OnOutputData;
- proc.ErrorDataReceived += OnErrorData;
- proc.StartInfo = psi;
- proc.Start ();
-
- proc.BeginOutputReadLine ();
- proc.BeginErrorReadLine ();
- proc.WaitForExit ();
-
- return proc.ExitCode == 0;
- }
-
- void OnOutputData (object sender, DataReceivedEventArgs e)
- {
- if (e.Data != null)
- Log.LogMessage ("[cil-strip stdout] {0}", e.Data);
- }
-
- void OnErrorData (object sender, DataReceivedEventArgs e)
- {
- if (e.Data != null)
- Log.LogMessage ("[cil-strip stderr] {0}", e.Data);
- }
- }
-}
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
index 1a8d4cb3463..2e7a5ae7cc0 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
@@ -30,7 +30,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
-