Y2038 support: Target Ubuntu 22.04 in arm build image#1037
Merged
sbomer merged 4 commits intodotnet:mainfrom May 8, 2024
Merged
Y2038 support: Target Ubuntu 22.04 in arm build image#1037sbomer merged 4 commits intodotnet:mainfrom
sbomer merged 4 commits intodotnet:mainfrom
Conversation
Which is the first ubuntu release to include a glibc that supports 64-bit time_t.
Member
|
Will you be able to merge this PR in time? |
Member
Author
|
Don't worry, I've got all the time in the world... Before: After: (Validated with a local arm32 build against this change. The openssl shim also is linked against 64-bit versions of the time symbols.) |
Member
|
Well played, sir. Context: This change is for Y2038 -> dotnet/core#9285 |
richlander
approved these changes
May 7, 2024
Member
|
That change was simpler than I was guessing, but makes sense in hindsight. |
agocke
reviewed
May 7, 2024
| RUN /scripts/eng/common/cross/build-rootfs.sh arm xenial --skipunmount | ||
| # The arm rootfs targets Ubuntu 22.04, which is the first version with a | ||
| # glibc that supports 64-bit time_t. See https://github.com/dotnet/core/discussions/9285. | ||
| RUN /scripts/eng/common/cross/build-rootfs.sh arm jammy no-lldb --skipunmount |
Member
There was a problem hiding this comment.
IIRC, this supports 64-bit time_t, but there's #define needed to actually use it. Do we need to set that somewhere? Or is it set by default?
Member
Author
There was a problem hiding this comment.
Yes, @am11 did this already in dotnet/runtime#100461.
Member
Author
|
Blocked on dotnet/arcade#14754 |
sbomer
added a commit
that referenced
this pull request
May 9, 2024
#1037 updated the glibc baseline for our arm32 images, but we were still running tests on Debian 11 which has an older version, causing the failures in dotnet/runtime#102030. This adds a new Debian 12 image.
sbomer
added a commit
to dotnet/runtime
that referenced
this pull request
May 22, 2024
This updates our linux arm32 build to build against a more recent glibc that supports _TIME_BITS (which we set to 64). Since openssl may be using either 32-bit or 64-bit time_t, this includes detection logic to determine which case we are in, and avoid passing time values that don't fit in 32 bits to openssl. The arm build image is updated to the latest version of the images added in dotnet/dotnet-buildtools-prereqs-docker#1037. The helix test images are updated to debian images added in dotnet/dotnet-buildtools-prereqs-docker#1041. Additional context: Additional context: Reintroduces the fix for Y2038 support on arm32 linux (#102059), which was reverted due to problems running against openssl built with _TIME_BITS=32. Fixes #101444 (both the originally reported issue, and the test failures mentioned in #101444 (comment)). Supports: #91826
steveharter
pushed a commit
to steveharter/runtime
that referenced
this pull request
May 28, 2024
This updates our linux arm32 build to build against a more recent glibc that supports _TIME_BITS (which we set to 64). Since openssl may be using either 32-bit or 64-bit time_t, this includes detection logic to determine which case we are in, and avoid passing time values that don't fit in 32 bits to openssl. The arm build image is updated to the latest version of the images added in dotnet/dotnet-buildtools-prereqs-docker#1037. The helix test images are updated to debian images added in dotnet/dotnet-buildtools-prereqs-docker#1041. Additional context: Additional context: Reintroduces the fix for Y2038 support on arm32 linux (dotnet#102059), which was reverted due to problems running against openssl built with _TIME_BITS=32. Fixes dotnet#101444 (both the originally reported issue, and the test failures mentioned in dotnet#101444 (comment)). Supports: dotnet#91826
Ruihan-Yin
pushed a commit
to Ruihan-Yin/runtime
that referenced
this pull request
May 30, 2024
This updates our linux arm32 build to build against a more recent glibc that supports _TIME_BITS (which we set to 64). Since openssl may be using either 32-bit or 64-bit time_t, this includes detection logic to determine which case we are in, and avoid passing time values that don't fit in 32 bits to openssl. The arm build image is updated to the latest version of the images added in dotnet/dotnet-buildtools-prereqs-docker#1037. The helix test images are updated to debian images added in dotnet/dotnet-buildtools-prereqs-docker#1041. Additional context: Additional context: Reintroduces the fix for Y2038 support on arm32 linux (dotnet#102059), which was reverted due to problems running against openssl built with _TIME_BITS=32. Fixes dotnet#101444 (both the originally reported issue, and the test failures mentioned in dotnet#101444 (comment)). Supports: dotnet#91826
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #1034
Fixes dotnet/runtime#96460
I'm still hitting some issues trying to validate this locally, so marking it no-merge for now.