Unbreak Linux binaries linked against new glibc, such as the ones
from recent Ubuntu versions. Without it they segfault on startup. Reviewed by: emaste MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D20687
This commit is contained in:
parent
97c1567f72
commit
541e57af0b
@ -343,6 +343,12 @@ linux_copyout_strings(struct image_params *imgp)
|
|||||||
*/
|
*/
|
||||||
vectp -= imgp->args->argc + 1 + imgp->args->envc + 1;
|
vectp -= imgp->args->argc + 1 + imgp->args->envc + 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Starting with 2.24, glibc depends on a 16-byte stack alignment.
|
||||||
|
* One "long argc" will be prepended later.
|
||||||
|
*/
|
||||||
|
vectp = (char **)((((uintptr_t)vectp + 8) & ~0xF) - 8);
|
||||||
|
|
||||||
/* vectp also becomes our initial stack base. */
|
/* vectp also becomes our initial stack base. */
|
||||||
stack_base = (register_t *)vectp;
|
stack_base = (register_t *)vectp;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user