From f1fdb5bc575728bd6c9f13a18939d9c271a74e83 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 29 Aug 2017 12:49:22 -0700 Subject: [PATCH] Align stack bottom properly. This is needed for gcc -Os -flto on x86-64 (Bug#28213). * src/emacs.c (main): Align stack-bottom variable as a pointer, since mark_memory requires this. --- src/emacs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/emacs.c b/src/emacs.c index 0fec7167588..44f6285795a 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -672,7 +672,10 @@ close_output_streams (void) int main (int argc, char **argv) { - char stack_bottom_variable; + /* Variable near the bottom of the stack, and aligned appropriately + for pointers. */ + void *stack_bottom_variable; + bool do_initial_setlocale; bool dumping; int skip_args = 0; @@ -688,7 +691,7 @@ main (int argc, char **argv) char *original_pwd = 0; /* Record (approximately) where the stack begins. */ - stack_bottom = &stack_bottom_variable; + stack_bottom = (char *) &stack_bottom_variable; #ifndef CANNOT_DUMP dumping = !initialized && (strcmp (argv[argc - 1], "dump") == 0 -- 2.39.2