-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Port Mono to Raspberry Pi, ship as new linux-armv6 RID #62594
Merged
Merged
Changes from all commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
8589f9e
Initial ARMv6 arch addition. Builds mono, not hosts or libs.native
directhex f8508a5
Fix libatomic linkage on ARMv6
directhex 5545a71
Ignore that CP15 sucks
directhex c01ac90
Update runtime.json
directhex 2a32b83
Deal with atomics linking issue
directhex eaae81e
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 7817d18
Start bringing up enough CoreCLR to build `ilasm`, like on s390x.
directhex 39a8287
Fix non-thumb asm
directhex aec66e9
Revert "Ignore that CP15 sucks"
directhex aed2956
Deal with /usr/include and /crossrootfs/x/usr/include differing signi…
directhex 6c9c51d
Use exact compiler flags for v6
directhex 1653948
Fix ARM -> ARMv6 in RuntimeInformation
directhex cf3c2e3
Add ARMv6 build to runtime-staging
directhex e456e4a
Get tests building
directhex f4cb981
Set endianness
directhex 31335fa
Force Hard Float ABI for ARMv6 (when do we use soft??!?!?!?)
directhex f661a0e
We don't support armel in dotnet - only Tizen does, and that's CoreCLR
directhex 7ea9115
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 03f7fe4
Merge branch 'joshield/armv6' of github.com:directhex/runtime into jo…
directhex bfa235a
Tpyo
directhex e8c6ec3
Update src/libraries/System.Runtime.InteropServices.RuntimeInformatio…
directhex 9d40250
Update src/libraries/System.Runtime.InteropServices.RuntimeInformatio…
directhex 954d59c
Update src/native/libs/System.Native/pal_runtimeinformation.h
directhex d34a413
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 8f9b7d8
Don't hardcode the FPU, since Android uses softfp ABI
directhex 725e1e9
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex ef756dc
Add a Helix queue on Pi?
directhex 67f67d2
tpyo
directhex baf6cc8
For now, unconditionally set Helix queue
directhex a299408
Merge branch 'joshield/armv6' of github.com:directhex/runtime into jo…
directhex f6b4be4
UseLiveBuilt
directhex 64ce768
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 80b7eaa
Merge branch 'joshield/armv6' of github.com:directhex/runtime into jo…
directhex 696efc8
Fix build
directhex 6739626
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 5f43ec0
Merge branch 'joshield/armv6' of github.com:directhex/runtime into jo…
directhex 6ccd698
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 4fa9287
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 31c9691
Get SDK building for armv6
directhex a8329a3
Instead of a whole separate folder for near-identical files, use defines
directhex d3b4f43
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex c82ed6e
Build clr subset on ARMv6, it's needed for SDK and we want to check i…
directhex 3aa30cc
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex c26c029
Cleanup from @am11
directhex 9d5028c
Merge remote-tracking branch 'origin/main' into joshield/armv6
directhex 7c4b261
Yes, it should be elseif
directhex File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is failing outerloop builds, e.g. https://dev.azure.com/dnceng/public/_build/results?buildId=1569496&view=logs&jobId=86b05f7f-a5b8-51f0-63db-a6d409e0da15&j=86b05f7f-a5b8-51f0-63db-a6d409e0da15&t=53a3521c-9616-50ba-cf1b-e3b67157a105
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why?
In
Subsets.props
,<PrimaryRuntimeFlavor Condition="'$(TargetArchitecture)' == 's390x' or '$(TargetArchitecture)' == 'armv6'">Mono</PrimaryRuntimeFlavor>
should be settingPrimaryRuntimeFlavor
toMono
, then<DefaultCoreClrSubsets Condition="'$(PrimaryRuntimeFlavor)' != 'CoreCLR'">clr.iltools+clr.packages</DefaultCoreClrSubsets>
should be setting it so theclr
subset only builds the supported CoreCLR componentsI may be failing to parse how coreclr/ci.yml works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the message, this should be
#0-#6
:runtime/src/coreclr/pal/inc/unixasmmacrosarm.inc
Line 261 in 57bfe47
Don't know what would be the implication of changing
#7
to#6
. cc @janvorliAlternatively, we can skip armv6 here:
runtime/src/coreclr/pal/inc/unixasmmacrosarm.inc
Line 258 in 57bfe47
to get by the error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@directhex hmm... I think it's this template eng/pipelines/coreclr/templates/build-job.yml invoking src/coreclr/build-runtime.sh directly, not using subsets
runtime/eng/pipelines/coreclr/templates/build-job.yml
Lines 199 to 202 in 66a4f23
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be invalid change.
We should not be compiling this file for arm v6 at all. These .s files would require substantial changes to work correctly on arm v6.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is done this way to match s390x coverage (which builds il{d}asm tools along with mono). However, s390x required libunwind updates and https://github.com/dotnet/runtime/blob/57bfe474518ab5b7cfe6bf7424a79ce3af9d6657/src/coreclr/pal/inc/unixasmmacross390x.inc to make those scenarios work. We would either need armv6 equivalent or disable
clr.iltools+clr.packages
subsets from building armv6. @directhex, per @jkotas' suggestion, we should disable those subsets armv6 for now (that will unblock the CI, outerloop legs).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clr.iltools
should not need any asm macros or libunwind to work. It is accidental dependency.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR made some assembly changes, those should be reverted too? I agree that
clr.iltools
alone does not require manyadd_subdirectory()
callssrc/coreclr/CMakeLists.txt
and changes injit
etc. which were made for armv6 and s390x shouldn't be needed.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A whole bunch of the iltools build fails without asm macros and libunwind, largely via coreclr pal/ and util/ dirs.