varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.

* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
	* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
	(TARGET_RWRELOC): Define.
	(ia64_rwreloc_section_type_flags): Delete.
	(ia64_section_type_flags): New function.
	* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
	(TARGET_RWRELOC): Define.

From-SVN: r93175
This commit is contained in:
Alan Modra 2005-01-11 04:07:28 +00:00 committed by Alan Modra
parent b1eae41634
commit abb8b19a1f
4 changed files with 41 additions and 22 deletions

View File

@ -1,3 +1,13 @@
2005-01-11 Alan Modra <amodra@bigpond.net.au>
* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
(TARGET_RWRELOC): Define.
(ia64_rwreloc_section_type_flags): Delete.
(ia64_section_type_flags): New function.
* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
(TARGET_RWRELOC): Define.
2005-01-10 David Mosberger <davidm@hpl.hp.com>
PR target/18987

View File

@ -1,5 +1,5 @@
/* Definitions of target machine GNU compiler. IA-64 version.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Contributed by Steve Ellcey <sje@cup.hp.com> and
Reva Cuthbertson <reva@cup.hp.com>
@ -193,8 +193,7 @@ do { \
#define TARGET_ASM_UNIQUE_SECTION ia64_rwreloc_unique_section
#undef TARGET_ASM_SELECT_RTX_SECTION
#define TARGET_ASM_SELECT_RTX_SECTION ia64_rwreloc_select_rtx_section
#undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS ia64_rwreloc_section_type_flags
#define TARGET_RWRELOC true
/* ia64 HPUX has the float and long double forms of math functions. */
#undef TARGET_C99_FUNCTIONS

View File

@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Contributed by James E. Wilson <wilson@cygnus.com> and
David Mosberger <davidm@hpl.hp.com>.
@ -258,9 +258,7 @@ static void ia64_rwreloc_unique_section (tree, int)
static void ia64_rwreloc_select_rtx_section (enum machine_mode, rtx,
unsigned HOST_WIDE_INT)
ATTRIBUTE_UNUSED;
static unsigned int ia64_rwreloc_section_type_flags (tree, const char *, int)
ATTRIBUTE_UNUSED;
static unsigned int ia64_section_type_flags (tree, const char *, int);
static void ia64_hpux_add_extern_decl (tree decl)
ATTRIBUTE_UNUSED;
static void ia64_hpux_file_end (void)
@ -387,6 +385,9 @@ static const struct attribute_spec ia64_attribute_table[] =
#undef TARGET_ENCODE_SECTION_INFO
#define TARGET_ENCODE_SECTION_INFO ia64_encode_section_info
#undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS ia64_section_type_flags
/* ??? ABI doesn't allow us to define this. */
#if 0
#undef TARGET_PROMOTE_FUNCTION_ARGS
@ -8796,10 +8797,27 @@ ia64_rwreloc_select_rtx_section (enum machine_mode mode, rtx x,
flag_pic = save_pic;
}
#ifndef TARGET_RWRELOC
#define TARGET_RWRELOC flag_pic
#endif
static unsigned int
ia64_rwreloc_section_type_flags (tree decl, const char *name, int reloc)
ia64_section_type_flags (tree decl, const char *name, int reloc)
{
return default_section_type_flags_1 (decl, name, reloc, true);
unsigned int flags = 0;
if (strcmp (name, ".sdata") == 0
|| strncmp (name, ".sdata.", 7) == 0
|| strncmp (name, ".gnu.linkonce.s.", 16) == 0
|| strncmp (name, ".sdata2.", 8) == 0
|| strncmp (name, ".gnu.linkonce.s2.", 17) == 0
|| strcmp (name, ".sbss") == 0
|| strncmp (name, ".sbss.", 6) == 0
|| strncmp (name, ".gnu.linkonce.sb.", 17) == 0)
flags = SECTION_SMALL;
flags |= default_section_type_flags_1 (decl, name, reloc, TARGET_RWRELOC);
return flags;
}
/* Returns true if FNTYPE (a FUNCTION_TYPE or a METHOD_TYPE) returns a

View File

@ -1,6 +1,7 @@
/* Output variables, constants and external declarations, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
@ -4606,20 +4607,11 @@ default_section_type_flags_1 (tree decl, const char *name, int reloc,
if (strcmp (name, ".bss") == 0
|| strncmp (name, ".bss.", 5) == 0
|| strncmp (name, ".gnu.linkonce.b.", 16) == 0)
flags |= SECTION_BSS;
if (strcmp (name, ".sdata") == 0
|| strncmp (name, ".sdata.", 7) == 0
|| strncmp (name, ".gnu.linkonce.s.", 16) == 0
|| strncmp (name, ".sdata2.", 8) == 0
|| strncmp (name, ".gnu.linkonce.s2.", 17) == 0)
flags |= SECTION_SMALL;
if (strcmp (name, ".sbss") == 0
|| strncmp (name, ".gnu.linkonce.b.", 16) == 0
|| strcmp (name, ".sbss") == 0
|| strncmp (name, ".sbss.", 6) == 0
|| strncmp (name, ".gnu.linkonce.sb.", 17) == 0)
flags |= SECTION_SMALL | SECTION_BSS;
flags |= SECTION_BSS;
if (strcmp (name, ".tdata") == 0
|| strncmp (name, ".tdata.", 7) == 0