-
-
Notifications
You must be signed in to change notification settings - Fork 419
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
Update Pony musl Docker images to Alpine 3.20 #4562
Conversation
This appears to need the following (or our equiv) LLVM patch: https://github.com/llvm/llvm-project-release-prs/pull/269/files |
83fb5e3
to
af74d8d
Compare
@chalcolith what am i doing wrong here with that patching? i seem to be getting a SHA related error. |
d7b30c1
to
6609fbd
Compare
@SeanTAllen you wiped out my fix for the hashing |
|
868494a
to
a18fad2
Compare
@chalcolith ill try that but i tried something like that already and it didnt work.
|
@chalcolith i'm not sure why your patch worked and mine didn't but thanks. |
Hi @SeanTAllen, The changelog - changed label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do. Release notes are added by creating a uniquely named file in the The basic format of the release notes (using markdown) should be:
Thanks. |
We currently include usage of lseek64 whenever we are building pony on Linux but alpine with musl is missing lseek64 in recent versions. Will need to address. |
I think the approach to fix this would be to add a new lseek function to the runtime. On Linux: IF GLIBC is defined, we call into lseek64, if not, we call into lseek We can pull in the other platforms as well. We probably need to do the same for ftruncate64 on Linux as I believe musl doesn't support it either. |
c28bd29
to
54ac08a
Compare
according to
maybe setting also, from what i understand, |
It won't help when compiling pony programs that require linking to the proper function from file.pony c-ffi.
We always require a 64 bit off_t which glib always supplies via the 64 functions and musl always provides. So checking the platform size doesn't help there. On a 32bit platform we might have 64 bit off_t which we need, but the function to call is not clear because a couple new runtime methods are inexpensive and quick to add without being a temporary hack. assuming the rest of @ponylang/committer agrees with the approach. another option is dropping support for 32 bit platforms. Then we can "just use lseek" for all Linux. |
blargh.. i always forget about this and the fancy preprocessor magic that happens in
or drop either way.. i'm sure you and the others will figure out the right way to move forward.. on an semi-unrelated note, apparently a lot of 32 bit distributions are working on switching |
Ill work on adding lseek and ftruncate wrappers to the runtime. |
b563989
to
d7d0d17
Compare
lseek64 is in place. "truncate64" is up next. |
50ff80c
to
6ff3071
Compare
@jemc can I get a review? |
This commit updates our CI to test using Alpine 3.20 for musl testing. It also updates our release and nightly alpine ponyc images to be based on Alpine 3.20. Due to a change in the version of musl in Alpine 3.20, this required a small patch LLVM 15 to compile. When we move to LLVM 16 or above, the patch shouldn't be needed. The new version of musl doesn't support LSF64 methods like lseek64. In order to keep the standard library working with the new musl, this commit adds a couple new "pony_os" functions for encapsulating lseek and ftruncate behavior that varies by OS and on Linux, between musl and Glibc.
6ff3071
to
041f6f4
Compare
This commit updates our CI to test using Alpine 3.20 for musl testing.
It also updates our release and nightly alpine ponyc images to be based
on Alpine 3.20.
Due to a change in the version of musl in Alpine 3.20, this required
a small patch LLVM 15 to compile. When we move to LLVM 16 or above,
the patch shouldn't be needed.