sys: rework ffi layout#13
Merged
Merged
Conversation
Allow external access to `abi::shared`, but mark it as hidden. This allows `sys` to meddle with the native abi but re-use `abi::shared`. Signed-off-by: David Rheinsberg <[email protected]>
Add the Sys-V ABI of Aarch64. Signed-off-by: David Rheinsberg <[email protected]>
Use the canonical name `target` rather than the otherwise unused term `auto` to refer to the compilation target platform. Signed-off-by: David Rheinsberg <[email protected]>
Extend the wishlist with a new item for documentation of re-exports of other modules. So far, rustdoc does not allow documenting them, yet the way our platform aliases work would really benefit from documentation on re-exports. Signed-off-by: David Rheinsberg <[email protected]>
Rework the sys::ffi file-system layout and platform generation. This makes it a lot easier to add new platforms, and no longer requires patching multiple places. This also adds aarch64 support, showing how new platforms can be easily added. Signed-off-by: David Rheinsberg <[email protected]>
Fix a couple of rustdoc references, which are either redundant, unresolved, or not available in no_std. Signed-off-by: David Rheinsberg <[email protected]>
Use a proper module doc header. Signed-off-by: David Rheinsberg <[email protected]>
Add sys::ffi::elf with common definitions of the executable and linkable format. Signed-off-by: David Rheinsberg <[email protected]>
Avoid comparing alignments of foreign types against libc. The types in `libc` are not correctly aligned, unless they a native to the target platform. Hence, only compare alignment for native types. Signed-off-by: David Rheinsberg <[email protected]>
Fix the alignment of i128 and u128 to 16 for i686. This was already fixed for x86-64, but not for x86 proper. This changed semi-recently in rustc and now matches the respective ABI. Unfortunately, x86 does not define 128-bit integers in its ABI and likely never will. But all compilers now agree to use 16-byte alignment for them, given that 128-bit floating points do so on x86. Signed-off-by: David Rheinsberg <[email protected]>
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.
Rework the ffi layout of sys::ffi, and add an elf module to show how this is supposed to work.