Skip to content

Commit 6065242

Browse files
authored
[native] Use libc++ (#9558)
Always statically link libc++ into our runtime and enable C++ exceptions, needed for future work. Additionally, transition from traditional C `printf` style logging to C++ [`std::format`][0]. The advantages are: * the format string is more expressive (doesn't require knowing the argument type, allows for positional placeholders as well as extra formatting specifiers, if needed), * safer (all arguments are type-checked at build time), and * faster (format strings are parsed and verified at build time, runtime involves only string rendering) Add a version script which hides all the symbols except for the handful we have to export. Remove C++ ABI compatibility sources. [0]: https://en.cppreference.com/w/cpp/utility/format/format
1 parent 208c529 commit 6065242

44 files changed

Lines changed: 998 additions & 947 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src-ThirdParty/llvm/verbose_abort.cpp

Lines changed: 0 additions & 77 deletions
This file was deleted.

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.apkdesc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,34 @@
55
"Size": 3036
66
},
77
"classes.dex": {
8-
"Size": 22488
8+
"Size": 22444
99
},
1010
"lib/arm64-v8a/lib__Microsoft.Android.Resource.Designer.dll.so": {
11-
"Size": 18208
11+
"Size": 18296
1212
},
1313
"lib/arm64-v8a/lib_Java.Interop.dll.so": {
14-
"Size": 86368
14+
"Size": 86352
1515
},
1616
"lib/arm64-v8a/lib_Mono.Android.dll.so": {
17-
"Size": 115752
17+
"Size": 116920
1818
},
1919
"lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": {
2020
"Size": 22408
2121
},
2222
"lib/arm64-v8a/lib_System.Console.dll.so": {
23-
"Size": 24384
23+
"Size": 24376
2424
},
2525
"lib/arm64-v8a/lib_System.Linq.dll.so": {
2626
"Size": 26480
2727
},
2828
"lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": {
29-
"Size": 633792
29+
"Size": 634384
3030
},
3131
"lib/arm64-v8a/lib_System.Runtime.dll.so": {
32-
"Size": 20048
32+
"Size": 20040
3333
},
3434
"lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": {
35-
"Size": 21592
35+
"Size": 21584
3636
},
3737
"lib/arm64-v8a/lib_UnnamedProject.dll.so": {
3838
"Size": 20024
@@ -44,10 +44,10 @@
4444
"Size": 87432
4545
},
4646
"lib/arm64-v8a/libmonodroid.so": {
47-
"Size": 485800
47+
"Size": 1501240
4848
},
4949
"lib/arm64-v8a/libmonosgen-2.0.so": {
50-
"Size": 3196336
50+
"Size": 3196512
5151
},
5252
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
5353
"Size": 67248
@@ -62,7 +62,7 @@
6262
"Size": 160232
6363
},
6464
"lib/arm64-v8a/libxamarin-app.so": {
65-
"Size": 17912
65+
"Size": 18264
6666
},
6767
"META-INF/BNDLTOOL.RSA": {
6868
"Size": 1221
@@ -98,5 +98,5 @@
9898
"Size": 1904
9999
}
100100
},
101-
"PackageSize": 2791957
101+
"PackageSize": 3111445
102102
}

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"Size": 6652
66
},
77
"classes.dex": {
8-
"Size": 9172800
8+
"Size": 9172764
99
},
1010
"kotlin/annotation/annotation.kotlin_builtins": {
1111
"Size": 928
@@ -29,16 +29,16 @@
2929
"Size": 2396
3030
},
3131
"lib/arm64-v8a/lib__Microsoft.Android.Resource.Designer.dll.so": {
32-
"Size": 19456
32+
"Size": 19544
3333
},
3434
"lib/arm64-v8a/lib_FormsViewGroup.dll.so": {
3535
"Size": 25424
3636
},
3737
"lib/arm64-v8a/lib_Java.Interop.dll.so": {
38-
"Size": 94768
38+
"Size": 94736
3939
},
4040
"lib/arm64-v8a/lib_Mono.Android.dll.so": {
41-
"Size": 523568
41+
"Size": 524256
4242
},
4343
"lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": {
4444
"Size": 22408
@@ -47,10 +47,10 @@
4747
"Size": 21432
4848
},
4949
"lib/arm64-v8a/lib_netstandard.dll.so": {
50-
"Size": 23080
50+
"Size": 23072
5151
},
5252
"lib/arm64-v8a/lib_System.Collections.Concurrent.dll.so": {
53-
"Size": 29808
53+
"Size": 29792
5454
},
5555
"lib/arm64-v8a/lib_System.Collections.dll.so": {
5656
"Size": 36288
@@ -59,7 +59,7 @@
5959
"Size": 25760
6060
},
6161
"lib/arm64-v8a/lib_System.Collections.Specialized.dll.so": {
62-
"Size": 23848
62+
"Size": 23840
6363
},
6464
"lib/arm64-v8a/lib_System.ComponentModel.dll.so": {
6565
"Size": 19584
@@ -71,31 +71,31 @@
7171
"Size": 42456
7272
},
7373
"lib/arm64-v8a/lib_System.Console.dll.so": {
74-
"Size": 24424
74+
"Size": 24416
7575
},
7676
"lib/arm64-v8a/lib_System.Core.dll.so": {
77-
"Size": 19456
77+
"Size": 19448
7878
},
7979
"lib/arm64-v8a/lib_System.Diagnostics.DiagnosticSource.dll.so": {
8080
"Size": 28440
8181
},
8282
"lib/arm64-v8a/lib_System.Diagnostics.TraceSource.dll.so": {
83-
"Size": 24696
83+
"Size": 24688
8484
},
8585
"lib/arm64-v8a/lib_System.dll.so": {
86-
"Size": 19856
86+
"Size": 19848
8787
},
8888
"lib/arm64-v8a/lib_System.Drawing.dll.so": {
89-
"Size": 19432
89+
"Size": 19424
9090
},
9191
"lib/arm64-v8a/lib_System.Drawing.Primitives.dll.so": {
92-
"Size": 30048
92+
"Size": 30040
9393
},
9494
"lib/arm64-v8a/lib_System.Formats.Asn1.dll.so": {
95-
"Size": 49936
95+
"Size": 49928
9696
},
9797
"lib/arm64-v8a/lib_System.IO.Compression.Brotli.dll.so": {
98-
"Size": 29488
98+
"Size": 29472
9999
},
100100
"lib/arm64-v8a/lib_System.IO.Compression.dll.so": {
101101
"Size": 33784
@@ -107,7 +107,7 @@
107107
"Size": 38736
108108
},
109109
"lib/arm64-v8a/lib_System.Linq.Expressions.dll.so": {
110-
"Size": 185816
110+
"Size": 185800
111111
},
112112
"lib/arm64-v8a/lib_System.Net.Http.dll.so": {
113113
"Size": 89488
@@ -116,55 +116,55 @@
116116
"Size": 41112
117117
},
118118
"lib/arm64-v8a/lib_System.Net.Requests.dll.so": {
119-
"Size": 21552
119+
"Size": 21544
120120
},
121121
"lib/arm64-v8a/lib_System.ObjectModel.dll.so": {
122-
"Size": 27072
122+
"Size": 27064
123123
},
124124
"lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": {
125-
"Size": 956368
125+
"Size": 956552
126126
},
127127
"lib/arm64-v8a/lib_System.Private.DataContractSerialization.dll.so": {
128-
"Size": 216688
128+
"Size": 216720
129129
},
130130
"lib/arm64-v8a/lib_System.Private.Uri.dll.so": {
131131
"Size": 62184
132132
},
133133
"lib/arm64-v8a/lib_System.Private.Xml.dll.so": {
134-
"Size": 237096
134+
"Size": 237120
135135
},
136136
"lib/arm64-v8a/lib_System.Private.Xml.Linq.dll.so": {
137-
"Size": 35592
137+
"Size": 35584
138138
},
139139
"lib/arm64-v8a/lib_System.Runtime.dll.so": {
140140
"Size": 20200
141141
},
142142
"lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": {
143-
"Size": 21592
143+
"Size": 21584
144144
},
145145
"lib/arm64-v8a/lib_System.Runtime.Numerics.dll.so": {
146-
"Size": 54400
146+
"Size": 54408
147147
},
148148
"lib/arm64-v8a/lib_System.Runtime.Serialization.dll.so": {
149-
"Size": 19360
149+
"Size": 19352
150150
},
151151
"lib/arm64-v8a/lib_System.Runtime.Serialization.Formatters.dll.so": {
152-
"Size": 20336
152+
"Size": 20328
153153
},
154154
"lib/arm64-v8a/lib_System.Runtime.Serialization.Primitives.dll.so": {
155-
"Size": 21456
155+
"Size": 21448
156156
},
157157
"lib/arm64-v8a/lib_System.Security.Cryptography.dll.so": {
158158
"Size": 80496
159159
},
160160
"lib/arm64-v8a/lib_System.Text.RegularExpressions.dll.so": {
161-
"Size": 183600
161+
"Size": 183584
162162
},
163163
"lib/arm64-v8a/lib_System.Xml.dll.so": {
164-
"Size": 19256
164+
"Size": 19248
165165
},
166166
"lib/arm64-v8a/lib_System.Xml.Linq.dll.so": {
167-
"Size": 19272
167+
"Size": 19264
168168
},
169169
"lib/arm64-v8a/lib_UnnamedProject.dll.so": {
170170
"Size": 22096
@@ -173,7 +173,7 @@
173173
"Size": 34960
174174
},
175175
"lib/arm64-v8a/lib_Xamarin.AndroidX.AppCompat.AppCompatResources.dll.so": {
176-
"Size": 24520
176+
"Size": 24512
177177
},
178178
"lib/arm64-v8a/lib_Xamarin.AndroidX.AppCompat.dll.so": {
179179
"Size": 163240
@@ -212,7 +212,7 @@
212212
"Size": 31592
213213
},
214214
"lib/arm64-v8a/lib_Xamarin.AndroidX.RecyclerView.dll.so": {
215-
"Size": 112256
215+
"Size": 112248
216216
},
217217
"lib/arm64-v8a/lib_Xamarin.AndroidX.SavedState.dll.so": {
218218
"Size": 23144
@@ -221,7 +221,7 @@
221221
"Size": 31952
222222
},
223223
"lib/arm64-v8a/lib_Xamarin.AndroidX.ViewPager.dll.so": {
224-
"Size": 38056
224+
"Size": 38048
225225
},
226226
"lib/arm64-v8a/lib_Xamarin.Forms.Core.dll.so": {
227227
"Size": 581000
@@ -245,10 +245,10 @@
245245
"Size": 87432
246246
},
247247
"lib/arm64-v8a/libmonodroid.so": {
248-
"Size": 485800
248+
"Size": 1501240
249249
},
250250
"lib/arm64-v8a/libmonosgen-2.0.so": {
251-
"Size": 3196336
251+
"Size": 3196512
252252
},
253253
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
254254
"Size": 67248
@@ -263,7 +263,7 @@
263263
"Size": 160232
264264
},
265265
"lib/arm64-v8a/libxamarin-app.so": {
266-
"Size": 349352
266+
"Size": 349440
267267
},
268268
"META-INF/androidx.activity_activity.version": {
269269
"Size": 6
@@ -416,7 +416,7 @@
416416
"Size": 6
417417
},
418418
"META-INF/BNDLTOOL.RSA": {
419-
"Size": 1221
419+
"Size": 1223
420420
},
421421
"META-INF/BNDLTOOL.SF": {
422422
"Size": 98577
@@ -2486,5 +2486,5 @@
24862486
"Size": 812848
24872487
}
24882488
},
2489-
"PackageSize": 10628363
2489+
"PackageSize": 10947851
24902490
}

0 commit comments

Comments
 (0)