-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Revive #48505 #54914
Revive #48505 #54914
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
Internal build which should then contain the binlog: https://dnceng.visualstudio.com/internal/_build/results?buildId=1211606&view=results. |
@ericstj the binlog is available in case you want to take a look. |
Thanks @ViktorHofer! Does it fix the official build issue which was encountered previously (#48647)?
|
FreeBSD error is due to crossgen2's dependency on internal property, the one which starts with underscore (which as I understood it, is discouraged)
changing this line to <AppHostRuntimeIdentifier>$(PackageRID)</AppHostRuntimeIdentifier> fixes the error on FreeBSD cross leg.
|
Great observation. Feel free to push into the branch if you want to :) |
I do not have push access to this branch's remote, pushed to mine am11@f7a6ca2. |
Co-authored-by: Adeel Mujahid <[email protected]>
To make the test legs green, we would still need to apply the modified form of that patch to make it propagate /p:CrossBuild which we set in top level shell script (eng/build.sh) and want it to be available in all child contexts: --- a/src/tests/build.sh
+++ b/src/tests/build.sh
@@ -573,6 +573,10 @@ if [[ "${__BuildArch}" != "${__HostArch}" ]]; then
__CrossBuild=1
fi
+if (( __CrossBuild == 1 )); then
+ __UnprocessedBuildArgs+=("/p:CrossBuild=true")
+fi
+ |
Applied a minor variation of your patch. Does that look right? |
Yup, yours is more consistent with the repo style 👍 (it was just numerical comparison instead of string-y one but consistency takes precedence) |
Co-authored-by: Adeel Mujahid <[email protected]>
Remaining failures are unrelated to PR changes. It also does not break the developer workflow, including Windows/VisualStudio and Alpine Linux.
@ViktorHofer, (since I cannot access this link) could you please paste the build command which fails on that leg? I will also have a look. |
One difference between public CI legs and internal build could be that public CI is passing This change is:
(without any weird exceptional cases, like we have in main branch..) If you could cherry-pick am11@c01d07c commit on your PR's branch. that should fix the internal build without modifying its .yml file. If not, then I would need binlog / more info to understand the problem. |
Triggered a new internal build: https://dnceng.visualstudio.com/internal/_build/results?buildId=1220899&view=results. I don't think sharing the internal binlog is a good idea because of potential secrets/env vars but will at least share the command output to let you know if the patch was successful. Thanks @am11 for your continuous help :) |
Will this also resolve the issue of native builds (in my case FreeBSD) trying to restore Linux ILASM/ILDASM instead of FreeBSD? |
Awesome, the internal build succeeded 💯 |
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.
Looks like a good step in the right direction, but would love to simplify it even more :)
<_hostOS Condition="'$(TargetOS)' == 'Browser'">Browser</_hostOS> | ||
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS> |
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.
from what I understood _hostOS
is the OS where the build runs right? in that case Browser doesn't make sense here (I assume we have some other wrong assumption about this somewhere else so this is needed right now).
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.
Makes sense. Let's untangle this when we eliminate remaining properties which are conflicting with each other.
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 in case of browser, value of _hostOS
is used in PackageRID
below. For other platforms, it is also used to calculate OutputRid
(through _portableOS
) and MicrosoftNetCoreIlasmPackageRuntimeId
when cross-building.
I see a lot work items stopping during execution and the console log doesn't tell what went wrong. @dotnet/dnceng can you please take a look? |
Thank you for letting us know. I have created https://github.com/dotnet/core-eng/issues/13596 to investigate this. |
<TargetArchitectureAppHost Condition="'$(TargetArchitectureAppHost)'=='armel'">arm</TargetArchitectureAppHost> | ||
|
||
<AppHostRuntimeIdentifier>$(_runtimeOS)-$(TargetArchitectureAppHost)</AppHostRuntimeIdentifier> | ||
<AppHostRuntimeIdentifier>$(PackageRID)</AppHostRuntimeIdentifier> |
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.
ARMEL build is broken because target architecture is not updated to arm for crossgen2.
Please fix it. Thank you.
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.
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.
armel is another community supported platform, which gets broken time to time. For community related things to sustain in the continuous development (for the busy repo like runtime), there should be a CI leg IMO (as we added one last year for GCC build validation). I have the next batch of changes in progress, and will fix it in in that batch soon. Meanwhile, you can apply a local patch and get by it (and please consider adding CI leg as it won't be the last armel breakage otherwise).
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.
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.
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 fine to add an armel CI build that just does a traversal build. Maybe in the dev-innerloop pipeline?
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.
Adding armel + Tizen CI build leg is tracked by #2394
As @safern said, we are open to adding CI build legs to protect community supported configurations. We expect the community to set them up. The steps for how to do that are in #2394 (comment)
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.
LGTM
Revive #48505 and try to find out why the change caused official builds to break.
I couldn't apply the patch in src/tests/build.sh as sources changed: https://github.com/dotnet/runtime/pull/48505/files#diff-056300437704f257a4c8567b61dfdb647da75c5ef93baefec47709796792f182.
cc @am11 @ericstj