Add support for unique sections in arm-linux target.

From-SVN: r40632
This commit is contained in:
Philip Blundell 2001-03-19 19:56:37 +00:00 committed by Nick Clifton
parent 085072bbd3
commit 77af5c469c
2 changed files with 43 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-03-19 Philip Blundell <philb@gnu.org>
* arm/linux-elf.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define.
(UNIQUE_SECTION): Define.
2001-03-19 Mark Mitchell <mark@codesourcery.com>
* cse.c (find_comparison_args): Update documentation. Fix

View File

@ -235,6 +235,44 @@ const_section () \
go into the const section. */
#define SELECT_RTX_SECTION(MODE,RTX) const_section ()
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
#define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL))
#define UNIQUE_SECTION(DECL, RELOC) \
do \
{ \
int len; \
char *name; \
char *string; \
char *prefix; \
\
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
\
if (! DECL_ONE_ONLY (DECL)) \
{ \
prefix = "."; \
if (TREE_CODE (DECL) == FUNCTION_DECL) \
prefix = ".text."; \
else if (DECL_READONLY_SECTION (DECL, RELOC)) \
prefix = ".rodata."; \
else \
prefix = ".data."; \
} \
else if (TREE_CODE (DECL) == FUNCTION_DECL) \
prefix = ".gnu.linkonce.t."; \
else if (DECL_READONLY_SECTION (DECL, RELOC)) \
prefix = ".gnu.linkonce.r."; \
else \
prefix = ".gnu.linkonce.d."; \
\
len = strlen (name) + strlen (prefix); \
string = alloca (len + 1); \
sprintf (string, "%s%s", prefix, name); \
\
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} \
while (0)
/* On svr4, we *do* have support for the .init and .fini sections, and we
can put stuff in there to be executed before and after `main'. We let
crtstuff.c and other files know this by defining the following symbols.