Rollup merge of #152432 - fneddy:s390x_packed_stack_attribute, r=nikic
add rustc option -Zpacked-stack this enables `-Zpacked-stack` just as `-mpacked-stack` in clang and gcc. packed-stack is needed on s390x for kernel development. For reference: rust-lang/rust#151154 and rust-lang/rust#150766 look at @uweigand s post for full explanation of what this does. Here a wrap-up: https://github.com/rust-lang/rust/pull/150766#issuecomment-3729074303 > [...] > packed-stack [...] modifies how the compiler-generated function prolog/epilog code makes use of the 160 byte register save area provided by a caller to the callee [...] this variant is not actually incompatible with the ABI - packed-stack and regular functions can freely call each other without ABI issues. > [...] > combination of -mpacked-stack and -mbackchain [...] the location in the stack frame where the backchain link ought to be stored is not available. [...] is not supported at all with the default ABI > [...] > However, in the special case of also using soft-float, our (implied) soft-float ABI provides a different location for the backchain that is compatible with -mpacked-stack, so that combination should be supported > [...]
J
Jonathan Brouwer committed
f883d62ea5074b97f81369087652ffc5fa540e8d
Committed by GitHub <[email protected]>
on 3/31/2026, 1:27:18 PM