add support for -msave-args in gcc on amd64
authordlg <dlg@openbsd.org>
Thu, 27 Apr 2017 00:02:03 +0000 (00:02 +0000)
committerdlg <dlg@openbsd.org>
Thu, 27 Apr 2017 00:02:03 +0000 (00:02 +0000)
commitc31aa7c2c5b9bbd839a954f05d7fd1e547476e82
treedc0f92bdccc936da4c0faaf0f1997a14d69adf8a
parente768d0ed36fd8b7e974e44a0ea4aa88abd179623
add support for -msave-args in gcc on amd64

i got sick of not having arguments in ddb stack traces on amd64,
which is because amd64 passes arguments in registers, and it's
impossible to figure out where they go without dwarf info, and when
you have dwarf info it is complicated.

solaris has a simple solution for this. they tweaked their compilers
to accept an -msave-args option which makes functions store their
arguments on the stack, while maintaining compatability with the
System V AMD64 ABI. tools (eg, ddb) can then look at the stack to
get access to function arguments in traces.

this ports their changes to gcc 3 to our gcc.

ok deraadt@
gnu/gcc/gcc/config/i386/i386.c
gnu/gcc/gcc/config/i386/i386.opt
gnu/gcc/gcc/doc/invoke.texi
gnu/gcc/gcc/dwarf2.h
gnu/gcc/gcc/dwarf2out.c
share/man/man1/gcc-local.1