mirror of git://gcc.gnu.org/git/gcc.git
Add support for unique sections in arm-linux target.
From-SVN: r40632
This commit is contained in:
parent
085072bbd3
commit
77af5c469c
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue