Skip to content

Add riscv64 build support #3192

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 12, 2025
Merged

Add riscv64 build support #3192

merged 5 commits into from
Mar 12, 2025

Conversation

kasperk81
Copy link
Contributor

Description of Change

Add linux-riscv64 and linux-musl-riscv64 support. Debian 12 with clang 19 and libfontconfig1_2.15.0-2 (http://deb.debian.org/debian/pool/main/f/fontconfig/) is a good baseline to start.

Bugs Fixed

API Changes

None.

Behavioral Changes

None.

Required skia PR

None.

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of main at time of PR
  • Merged related skia PRs
  • Changes adhere to coding standard
  • Updated documentation

@mattleibow
Copy link
Contributor

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

mattleibow
mattleibow previously approved these changes Mar 10, 2025
@mattleibow
Copy link
Contributor

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@mattleibow
Copy link
Contributor

While we wait for the build to run again, are you able to confirm that the artifacts work in the first run? https://dev.azure.com/xamarin/public/_build/results?buildId=137319&view=results

@mattleibow
Copy link
Contributor

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

Copy link
Contributor

@mattleibow mattleibow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for getting this PR up and iterating on it. So far CI has been green all the way.

This is looking done, except for 2 small issues:

  • the other 2 targets files also need the risc items
  • there are double files in the nuget (not because of this PR) and if you are able to just fix the wildcards

@mattleibow
Copy link
Contributor

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@mattleibow
Copy link
Contributor

mattleibow commented Mar 11, 2025

I see all the linux tests are failing with :

System.TypeInitializationException : The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.
---- System.DllNotFoundException : Unable to load shared library 'libSkiaSharp' or one of its dependencies. 

It could either be that the so is truly not there OR it may be the so is depending on something that is not there.

@mattleibow
Copy link
Contributor

Actually, all of my CI is failing with that - even those with no changes... I wonder if the azure devops image is broken somehow.

Let me rebuild main and see what happens.

@kasperk81
Copy link
Contributor Author

the fix is #3194

@mattleibow mattleibow merged commit e5f74e7 into mono:main Mar 12, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from Changes Requested to Done in SkiaSharp Backlog Mar 12, 2025
@mattleibow
Copy link
Contributor

Thanks for the work on this PR!

@mattleibow
Copy link
Contributor

This build should be on the preview feed as nightly 19

@aicynide
Copy link

@kasperk81 please add linux-bionic build support also 🙏 for arm64, x64 and x86 Architectures
Please

@kasperk81
Copy link
Contributor Author

@aicynide
Copy link

@aicynide, android has its own package https://www.nuget.org/packages/SkiaSharp.NativeAssets.Android

Yes you are I think SkiaSharp my work under linux-bionic but issue is with sqlitePCL.raw libe_sqlite.so https://github.com/termux/termux-packages/actions/runs/13115509057/job/36588727595?pr=23074#step:6:2786
linux-bionic-{arch} is somewhat different from android. android-{arch} is for android but linux-bionic-{arch} is for Termux
I'm a termux package contributor and package maintainer, currently I'm working on porting jellyfin to termux and some dependencies of jellyfin like SQLITEPCL.raw nuget is available for linux-bionic

It would be a huge help if you can provide SQLITEPCL.raw 's libe_sqlite.so for linux-bionic

Thank you

@mattleibow
Copy link
Contributor

@aicynide please open a new issue.

@mattleibow
Copy link
Contributor

Hi folks,

The builds are now available on the preview feed: https://aka.ms/skiasharp-eap/index.json
Let me know if version 3.119.0-preview.0.38 is now working again for you.

As soon as you let me know, I can release this to NuGet and then hopefully a stable version shortly afterwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[FEATURE] riscv64 flavor of libSkiaSharp and libHarfBuzzSharp
3 participants