Repository navigation
0.29.5: i386 (i686-linux-musl) - #94
Merged
Merged
Conversation
musl 1.2.5's arch/i386 is vendored without PAGESIZE and its headers are generated into musl-generated/i386. The port's argument word is sixty-four bits wherever long is narrower, and musl's public syscall() reads its arguments at the width they were passed. A time is read at the width its number states; the time64 forms answer every clock but the two read directly. The thirty-two bit table's forms are answered (_llseek, mmap2, truncate64, fstat64, fcntl64, the getuid32 family, _newselect), and setjmp saves i386's preserved registers. openkal-linux ^0.26.3, whose processor time on i386 is read through the sixty-four bit clock.
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.
The C library for
i686-linux-musl(openkal 0.25.1, clause 5.5), above openkal-linux 0.26.2's i386.arch/i386vendored withoutPAGESIZE; headers generated intomusl-generated/i386(musl-generated/README.md).longis narrower, so a position or size reaches the dispatcher whole. musl's publicsyscall()reads its arguments at the width they were passed (musl/PATCHES.md, "i386 (0.29.5)"): read as the wider word, two arguments were one (renameat2reached the dispatcher with its directory as its name).okm_wide): the old numbers carry two words, the_time64numbers two sixty-four bit values; a 20 ms sleep read in the wrong width slept sixteen billion seconds.clock_gettimeof the other clocks asks the_time64number._llseek,mmap2,truncate64,fstat64,fcntl64, thegetuid32family,_newselect; the futex bound is read only for a wait.setjmpsaves i386's preserved registers.Measured locally with the family built for
i686-linux-musl: a C program (a file past 4 GiB, threads and thread-local storage, the clocks,posix_spawn), a C++23 program (import std, exceptions,std::jthread,std::format, file streams), and the examples posix, link-stubs, threads-cxx, threads-detached, stack-bounds, mmap, long-names, locks, grants, process-identity, malloc-threads, strings, subprocess (Linux's arguments) and net with no failure; wordcount agrees with wc. On the host the same examples are unchanged.