7effaa882a
Being the foundation for reliable stack unwinding, this fixes CFI unwind annotations in many low-level x86_64 routines, plus a config option (available to all architectures, and also present in the previously sent patch adding such annotations to i386 code) to enable them separatly rather than only along with adding full debug information. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
#ifndef _DWARF2_H
|
|
#define _DWARF2_H 1
|
|
|
|
#include <linux/config.h>
|
|
|
|
#ifndef __ASSEMBLY__
|
|
#warning "asm/dwarf2.h should be only included in pure assembly files"
|
|
#endif
|
|
|
|
/*
|
|
Macros for dwarf2 CFI unwind table entries.
|
|
See "as.info" for details on these pseudo ops. Unfortunately
|
|
they are only supported in very new binutils, so define them
|
|
away for older version.
|
|
*/
|
|
|
|
#ifdef CONFIG_DEBUG_INFO
|
|
|
|
#define CFI_STARTPROC .cfi_startproc
|
|
#define CFI_ENDPROC .cfi_endproc
|
|
#define CFI_DEF_CFA .cfi_def_cfa
|
|
#define CFI_DEF_CFA_REGISTER .cfi_def_cfa_register
|
|
#define CFI_DEF_CFA_OFFSET .cfi_def_cfa_offset
|
|
#define CFI_ADJUST_CFA_OFFSET .cfi_adjust_cfa_offset
|
|
#define CFI_OFFSET .cfi_offset
|
|
#define CFI_REL_OFFSET .cfi_rel_offset
|
|
#define CFI_REGISTER .cfi_register
|
|
#define CFI_RESTORE .cfi_restore
|
|
#define CFI_REMEMBER_STATE .cfi_remember_state
|
|
#define CFI_RESTORE_STATE .cfi_restore_state
|
|
|
|
#else
|
|
|
|
/* use assembler line comment character # to ignore the arguments. */
|
|
#define CFI_STARTPROC #
|
|
#define CFI_ENDPROC #
|
|
#define CFI_DEF_CFA #
|
|
#define CFI_DEF_CFA_REGISTER #
|
|
#define CFI_DEF_CFA_OFFSET #
|
|
#define CFI_ADJUST_CFA_OFFSET #
|
|
#define CFI_OFFSET #
|
|
#define CFI_REL_OFFSET #
|
|
#define CFI_REGISTER #
|
|
#define CFI_RESTORE #
|
|
#define CFI_REMEMBER_STATE #
|
|
#define CFI_RESTORE_STATE #
|
|
|
|
#endif
|
|
|
|
#endif
|