about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-11-12 02:06:05 -0500
committerUlrich Drepper <drepper@gmail.com>2011-11-12 02:06:05 -0500
commit874e05643b8bb121a69b672080c3e265a9fad926 (patch)
treedff29300d4722c981c760b8848d6ef0f8f7c8014
parent3a2edc79edb6c802679ac930f82ce1e261a2aabd (diff)
downloadglibc-874e05643b8bb121a69b672080c3e265a9fad926.tar.gz
glibc-874e05643b8bb121a69b672080c3e265a9fad926.tar.xz
glibc-874e05643b8bb121a69b672080c3e265a9fad926.zip
Avoid redefinition of DWARF constants
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/generic/dwarf2.h4
-rw-r--r--sysdeps/generic/sysdep.h119
3 files changed, 52 insertions, 76 deletions
diff --git a/ChangeLog b/ChangeLog
index 59d9157c1a..1b61bbf1d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2011-11-12  Ulrich Drepper  <drepper@gmail.com>
 
+	* sysdeps/generic/sysdep.h: Clean up, pretty print, use dwarf2.h for
+	DWARF definitions.
+	* sysdeps/generic/dwarf2.h: Don't define enums when using the file
+	for assembling.
+
 	* elf/dl-iteratephdr.c [!SHARED] (__dl_iterate_phdr): Don't iterate
 	over namespaces.
 
diff --git a/sysdeps/generic/dwarf2.h b/sysdeps/generic/dwarf2.h
index 9fca4c00e0..89ed0733e8 100644
--- a/sysdeps/generic/dwarf2.h
+++ b/sysdeps/generic/dwarf2.h
@@ -1,6 +1,6 @@
 /* Declarations and definitions of codes relating to the DWARF2 symbolic
    debugging information format.
-   Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000
+   Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000, 2011
    	Free Software Foundation, Inc.
    Contributed by Gary Funck (gary@intrepid.com).  Derived from the
    DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
@@ -31,6 +31,7 @@
 /* This file is shared between GCC and GDB, and should not contain
    prototypes.  */
 
+#ifndef __ASSEMBLER__
 /* Tag names and codes.  */
 
 enum dwarf_tag
@@ -560,6 +561,7 @@ enum dwarf_macinfo_record_type
     DW_MACINFO_vendor_ext = 255
   };
 
+#endif /* !ASSEMBLER */
 
 /* @@@ For use with GNU frame unwind information.  */
 
diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h
index 54884d9afe..2a5f5d4a19 100644
--- a/sysdeps/generic/sysdep.h
+++ b/sysdeps/generic/sysdep.h
@@ -1,5 +1,6 @@
 /* Generic asm macros used on many machines.
-   Copyright (C) 1991,92,93,96,98,2002,2003,2009 Free Software Foundation, Inc.
+   Copyright (C) 1991-1993,96,98,2002,2003,2009,2011
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,19 +21,19 @@
 #ifndef C_LABEL
 
 /* Define a macro we can use to construct the asm name for a C symbol.  */
-#ifdef	NO_UNDERSCORES
-#ifdef	__STDC__
-#define C_LABEL(name)		name##:
-#else
-#define C_LABEL(name)		name/**/:
-#endif
-#else
-#ifdef	__STDC__
-#define C_LABEL(name)		_##name##:
-#else
-#define C_LABEL(name)		_/**/name/**/:
-#endif
-#endif
+# ifdef	NO_UNDERSCORES
+#  ifdef __STDC__
+#   define C_LABEL(name)	name##:
+#  else
+#   define C_LABEL(name)	name/**/:
+#  endif
+# else
+#  ifdef __STDC__
+#   define C_LABEL(name)	_##name##:
+#  else
+#   define C_LABEL(name)	_/**/name/**/:
+#  endif
+# endif
 
 #endif
 
@@ -40,15 +41,17 @@
 /* Mark the end of function named SYM.  This is used on some platforms
    to generate correct debugging information.  */
 # ifndef END
-# define END(sym)
+#  define END(sym)
 # endif
 
 # ifndef JUMPTARGET
-# define JUMPTARGET(sym)	sym
+#  define JUMPTARGET(sym)	sym
 # endif
+#endif
 
 /* Makros to generate eh_frame unwind information.  */
-# ifdef HAVE_ASM_CFI_DIRECTIVES
+#ifdef HAVE_ASM_CFI_DIRECTIVES
+# ifdef __ASSEMBLER__
 #  define cfi_startproc			.cfi_startproc
 #  define cfi_endproc			.cfi_endproc
 #  define cfi_def_cfa(reg, off)		.cfi_def_cfa reg, off
@@ -67,29 +70,9 @@
 #  define cfi_window_save		.cfi_window_save
 #  define cfi_personality(enc, exp)	.cfi_personality enc, exp
 #  define cfi_lsda(enc, exp)		.cfi_lsda enc, exp
-# else
-#  define cfi_startproc
-#  define cfi_endproc
-#  define cfi_def_cfa(reg, off)
-#  define cfi_def_cfa_register(reg)
-#  define cfi_def_cfa_offset(off)
-#  define cfi_adjust_cfa_offset(off)
-#  define cfi_offset(reg, off)
-#  define cfi_rel_offset(reg, off)
-#  define cfi_register(r1, r2)
-#  define cfi_return_column(reg)
-#  define cfi_restore(reg)
-#  define cfi_same_value(reg)
-#  define cfi_undefined(reg)
-#  define cfi_remember_state
-#  define cfi_restore_state
-#  define cfi_window_save
-#  define cfi_personality(enc, exp)
-#  define cfi_lsda(enc, exp)
-# endif
 
-#else /* ! ASSEMBLER */
-# ifdef HAVE_ASM_CFI_DIRECTIVES
+# else /* ! ASSEMBLER */
+
 #  define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
 #  define CFI_STRINGIFY2(Name) #Name
 #  define CFI_STARTPROC	".cfi_startproc"
@@ -124,43 +107,29 @@
    ".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
 #  define CFI_LSDA(enc, exp) \
    ".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
-# else
-#  define CFI_STARTPROC
-#  define CFI_ENDPROC
-#  define CFI_DEF_CFA(reg, off)
-#  define CFI_DEF_CFA_REGISTER(reg)
-#  define CFI_DEF_CFA_OFFSET(off)
-#  define CFI_ADJUST_CFA_OFFSET(off)
-#  define CFI_OFFSET(reg, off)
-#  define CFI_REL_OFFSET(reg, off)
-#  define CFI_REGISTER(r1, r2)
-#  define CFI_RETURN_COLUMN(reg)
-#  define CFI_RESTORE(reg)
-#  define CFI_UNDEFINED(reg)
-#  define CFI_REMEMBER_STATE
-#  define CFI_RESTORE_STATE
-#  define CFI_WINDOW_SAVE
-#  define CFI_PERSONALITY(enc, exp)
-#  define CFI_LSDA(enc, exp)
 # endif
 
+#else
+
+# define CFI_STARTPROC
+# define CFI_ENDPROC
+# define CFI_DEF_CFA(reg, off)
+# define CFI_DEF_CFA_REGISTER(reg)
+# define CFI_DEF_CFA_OFFSET(off)
+# define CFI_ADJUST_CFA_OFFSET(off)
+# define CFI_OFFSET(reg, off)
+# define CFI_REL_OFFSET(reg, off)
+# define CFI_REGISTER(r1, r2)
+# define CFI_RETURN_COLUMN(reg)
+# define CFI_RESTORE(reg)
+# define CFI_UNDEFINED(reg)
+# define CFI_REMEMBER_STATE
+# define CFI_RESTORE_STATE
+# define CFI_WINDOW_SAVE
+# define CFI_PERSONALITY(enc, exp)
+# define CFI_LSDA(enc, exp)
+#endif
+
 #endif /* __ASSEMBLER__ */
 
-/* Values used for encoding parameter of cfi_personality and cfi_lsda.  */
-#define DW_EH_PE_absptr		0x00
-#define DW_EH_PE_omit		0xff
-#define DW_EH_PE_uleb128	0x01
-#define DW_EH_PE_udata2		0x02
-#define DW_EH_PE_udata4		0x03
-#define DW_EH_PE_udata8		0x04
-#define DW_EH_PE_sleb128	0x09
-#define DW_EH_PE_sdata2		0x0a
-#define DW_EH_PE_sdata4		0x0b
-#define DW_EH_PE_sdata8		0x0c
-#define DW_EH_PE_signed		0x08
-#define DW_EH_PE_pcrel		0x10
-#define DW_EH_PE_textrel	0x20
-#define DW_EH_PE_datarel	0x30
-#define DW_EH_PE_funcrel	0x40
-#define DW_EH_PE_aligned	0x50
-#define DW_EH_PE_indirect	0x80
+#include "dwarf2.h"