-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[Release/5.0] Fix Alpine 3.13 ARM build #50940
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
[Release/5.0] Fix Alpine 3.13 ARM build #50940
Conversation
* Fix Alpine 3.13 ARM build Alpine 3.13 is the first version of Alpine Linux that uses 64 bit time_t on both 64 and 32 bit platforms. That breaks the build as we assumed that 32 bit platforms use always 32 bit time_t. This change fixes it by making the PAL time_t type always 64 bit. Everything still works fine on non-Alpine ARM / x86 Linuxes, since it only changes the time_t type size outside of PAL. * Fix case when time function gets NULL argument
|
cc: @mthalman |
jeffschwMSFT
left a 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.
Approved. Please get a cr and we can take for consideration.
|
@janvorli Getting errors in the official build https://dev.azure.com/dnceng/internal/_build/results?buildId=1090566&view=results |
|
We have another Alpine 3/13 build fix coming #51188. |
|
@mmitche the iOS failures look unrelated: |
|
As far as I know, yes. |
|
any known compiler or linker change for iOS builds, since its also complaining for other libs which dont appear to be touched. Perhaps someone from Mono can help decipher whether the change to |
|
@akoeplinger was this related to your change? |
|
The error is |
|
I looked at the commits in release/5.0 and this just suddenly started appearing on a totally unrelated commit a few days ago. My guess is AzDO updated Xcode to a newer version on the hosted pool Macs which causes this. Given that we don't support iOS on 5.0 the fastest fix would be to simply disable it there. (I'm not at my computer right now so won't be able to do that in the next few hours) |
|
checking in whether the iOS issue is now resolved? |
|
It doesn't seem so. @akoeplinger, is #51481 what you had in mind? |
Port #50105 to Release/5.0
Alpine 3.13 is the first version of Alpine Linux that uses 64 bit time_t
on both 64 and 32 bit platforms. That breaks the build as we assumed
that 32 bit platforms use always 32 bit time_t.
This change fixes it by making the PAL time_t type always 64 bit.
Everything still works fine on non-Alpine ARM / x86 Linuxes, since
it only changes the time_t type size outside of PAL.
Customer Impact
Without this change, we cannot build MUSL ARM runtime on Alpine >= 3.13 and binaries built on Alpine < 3.13 don't work on 3.13+. We want to provide MUSL ARM Alpine 3.13 docker images for 5.0.
Testing
CoreCLR and libraries tests
Risk
Low, PAL defined time_t is used only to set timestamps in pewriter and ilasm and to name core dump in the createdump tool.
Regression
No