Add Android Bionic Library build support#3217
Conversation
|
Thank you senpai |
|
@mattleibow fontconfig for loong64 only in 2.17.1-5, not 2.17.1-4. |
|
Delete directory to solve conflict
Delete directory to solve conflict
Delete directory to solve conflict
|
bionic build error: see:https://dev.azure.com/xamarin/public/_build/results?buildId=156659&view=results |
|
Also, build error in x64: |
build-essential contains binutils, which have ar
Android NDK r22+ use llvm-ar by default so have ar not found error
- reuse the same bionic binaries in the NoDependencies package - keep the bionic helper aligned with fontconfig-free verification - preserve Apple Silicon local Docker builds with linux/amd64 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
No pipelines are associated with this pull request. |
|
Lets see! I had to use the MCR images as that is what is allowed on the release builds - and also I fixed this for macOS ARM. The yaml was building the same thing twice, so I move the bionic into a separate native step |
| # Install the .NET SDK | ||
| ARG DOTNET_SDK_VERSION=10.0 | ||
| ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 | ||
| RUN curl https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh -L -o dotnet-install.sh \ | ||
| && bash dotnet-install.sh --channel ${DOTNET_SDK_VERSION} --install-dir /usr/share/dotnet --verbose \ |
There was a problem hiding this comment.
The default DOTNET_SDK_VERSION here is 10.0, but the other Linux build Docker images in this repo default to 10.0.1xx (e.g., scripts/Docker/alpine/Dockerfile:62, scripts/Docker/debian/10/Dockerfile:81, scripts/Docker/debian/13/Dockerfile:85). Using a different channel can make CI and local builds non-reproducible (different SDK feature bands) and can change restore/build behavior. Consider aligning the default to 10.0.1xx (or document why this image should intentionally use a different channel).
| <!-- Bionic --> | ||
| <PackageFile Include="..\..\output\native\bionic\x64\libSkiaSharp*.so" PackagePath="runtimes\linux-bionic-x64\native\%(Filename)%(Extension)" /> | ||
| <PackageFile Include="..\..\output\native\bionic\arm64\libSkiaSharp*.so" PackagePath="runtimes\linux-bionic-arm64\native\%(Filename)%(Extension)" /> |
There was a problem hiding this comment.
These new bionic assets are being added to the NoDependencies package, but this project’s PackageNotes currently enumerates glibc loader/libs (e.g., ld-linux-x86-64.so.2, libc.so.6) as the “complete dependency list”. That note will be incorrect for linux-bionic-* runtimes (which don’t use glibc). Please update the package notes to either describe bionic separately or avoid listing glibc-specific dependencies when bionic assets are included.
| - template: /scripts/azure-templates-jobs-linux-matrix.yml@self # Build Native Linux (Bionic) | ||
| parameters: | ||
| buildExternals: ${{ parameters.buildExternals }} | ||
| buildAgent: ${{ parameters.buildAgentLinuxNative }} | ||
| use1ESPipelineTemplates: ${{ parameters.use1ESPipelineTemplates }} | ||
| builds: | ||
| - name: '' | ||
| additionalArgs: --verifyExcluded=fontconfig | ||
| matrix: | ||
| - ${{ each arch in split('arm64,x64', ',') }}: | ||
| - arch: ${{ arch }} | ||
| variant: bionic | ||
| docker: scripts/Docker/bionic |
There was a problem hiding this comment.
The PR description says it adds Android API/reference docs (OmniSharp PR + NDK/ABI docs), but the actual changes in this PR appear to be build/packaging/pipeline updates only (no doc file updates shown). Please either update the PR description’s “API Changes” section to match the change set, or include the intended documentation updates in this PR.
UpdateDocs.cake have warming: /work/scripts/cake/UpdateDocs.cake(60,16): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. but this method is not async
|
No pipelines are associated with this pull request. |
|
Android test error: |
|
@mattleibow https://dev.azure.com/xamarin/public/_build/results?buildId=156672&view=results |
|
Linux test error: iOS test error: |
|
/azp run |
|
No pipelines are associated with this pull request. |
|
No pipelines are associated with this pull request. |







Description of Change
Add Android Bionic Library build support. Bionic is the Linux library which used by Android.
Support AArch64 and X64 architecture, Android 10+.
Bugs Fixed
API Changes
Add Android API reference from https://github.com/OmniSharp/omnisharp-roslyn/pull/2653/files , Android NDK and Android ABI docs.
Behavioral Changes
None.
Required skia PR
None.
PR Checklist