summaryrefslogtreecommitdiff
path: root/gcc/defaults.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2001-01-23 14:29:30 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-01-23 14:29:30 -0800
commiteff01bb615f99284e9f67ca2ed08823944a9936e (patch)
tree5537b15d3e62ab8dbfc2b337aa92aa67ae85ca63 /gcc/defaults.h
parent7c01b2b5a879958a3a59d758e046e6cd2ec36e63 (diff)
downloadgcc-eff01bb615f99284e9f67ca2ed08823944a9936e.tar.gz
varasm.c (UNIQUE_SECTION): Move default implementation ...
* varasm.c (UNIQUE_SECTION): Move default implementation ... * defaults.h: ... here. From-SVN: r39213
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r--gcc/defaults.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 2aa5218d464..b0f3ce9fa6d 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -1,6 +1,4 @@
-/* Definitions of various defaults for how to do assembler output
- (most of which are designed to be appropriate for GAS or for
- some BSD assembler).
+/* Definitions of various defaults for tm.h macros.
Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com)
@@ -192,6 +190,33 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
# endif
#endif
+/* If we have no definition for UNIQUE_SECTION, but do have the
+ ability to generate arbitrary sections, construct something
+ reasonable. */
+#ifdef ASM_OUTPUT_SECTION_NAME
+#ifndef UNIQUE_SECTION
+#define UNIQUE_SECTION(DECL,RELOC) \
+do { \
+ int len; \
+ const char *name; \
+ char *string; \
+ \
+ name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
+ /* Strip off any encoding in name. */ \
+ STRIP_NAME_ENCODING (name, name); \
+ \
+ len = strlen (name) + 1; \
+ string = alloca (len + 1); \
+ sprintf (string, ".%s", name); \
+ \
+ DECL_SECTION_NAME (DECL) = build_string (len, string); \
+} while (0)
+#endif
+#ifndef UNIQUE_SECTION_P
+#define UNIQUE_SECTION_P(DECL) 0
+#endif
+#endif
+
/* By default, we generate a label at the beginning and end of the
text section, and compute the size of the text section by
subtracting the two. However, on some platforms that doesn't