Commit 44404b8b by H.J. Lu Committed by H.J. Lu

config.gcc (mips*-*-linux*): Add elfos.h to tm_file.

2001-04-26  H.J. Lu  (hjl@gnu.org)

	* config.gcc (mips*-*-linux*): Add elfos.h to tm_file.

	* config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
	define.
	* config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
	(ASM_OUTPUT_SECTION_NAME): Likewise.
	(ASM_WEAKEN_LABEL): Likewise.
	(UNIQUE_SECTION): Likewise.
	(ASM_OUTPUT_CONSTRUCTOR): Likewise.
	(ASM_OUTPUT_DESTRUCTOR): Likewise.
	* config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
	(ASM_OUTPUT_SECTION_NAME): Likewise.
	(ASM_WEAKEN_LABEL): Likewise.
	(UNIQUE_SECTION): Likewise.
	(ASM_OUTPUT_CONSTRUCTOR): Likewise.
	(ASM_OUTPUT_DESTRUCTOR): Likewise.
	* config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
	(ASM_FILE_START): Likewise.
	(ASM_OUTPUT_SOURCE_LINE): Likewise.
	(ASM_DECLARE_OBJECT_NAME): Likewise.
	(ASM_FILE_END): Likewise.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
	(ASM_OUTPUT_CASE_LABEL): Likewise.
	(ASM_OUTPUT_SKIP): Likewise.
	(ASM_OUTPUT_ASCII): Likewise.
	(ASM_OUTPUT_IDENT): Likewise.
	(READONLY_DATA_SECTION): Likewise.
	(EXTRA_SECTIONS): Likewise.
	(EXTRA_SECTION_FUNCTIONS): Likewise.
	(SELECT_RTX_SECTION): Likewise.
	(SELECT_SECTION): Likewise.

	* config/mips/linux.h (INVOKE__main): Undefine.
	(CTOR_LIST_BEGIN): Likewise.
	(CTOR_LIST_END): Likewise.
	(DTOR_LIST_BEGIN): Likewise.
	(DTOR_LIST_END): Likewise.
	(SET_ASM_OP): Defined it to ".dummy".
	(ASM_OUTPUT_DEF): Defined.
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.

From-SVN: r41592
parent fdc2d3b0
2001-04-26 H.J. Lu (hjl@gnu.org)
* config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
* config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
define.
* config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
(ASM_OUTPUT_SECTION_NAME): Likewise.
(ASM_WEAKEN_LABEL): Likewise.
(UNIQUE_SECTION): Likewise.
(ASM_OUTPUT_CONSTRUCTOR): Likewise.
(ASM_OUTPUT_DESTRUCTOR): Likewise.
* config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
(ASM_OUTPUT_SECTION_NAME): Likewise.
(ASM_WEAKEN_LABEL): Likewise.
(UNIQUE_SECTION): Likewise.
(ASM_OUTPUT_CONSTRUCTOR): Likewise.
(ASM_OUTPUT_DESTRUCTOR): Likewise.
* config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
* config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
(ASM_FILE_START): Likewise.
(ASM_OUTPUT_SOURCE_LINE): Likewise.
(ASM_DECLARE_OBJECT_NAME): Likewise.
(ASM_FILE_END): Likewise.
(ASM_DECLARE_FUNCTION_NAME): Likewise.
(ASM_OUTPUT_INTERNAL_LABEL): Likewise.
(ASM_GENERATE_INTERNAL_LABEL): Likewise.
(ASM_OUTPUT_CASE_LABEL): Likewise.
(ASM_OUTPUT_SKIP): Likewise.
(ASM_OUTPUT_ASCII): Likewise.
(ASM_OUTPUT_IDENT): Likewise.
(READONLY_DATA_SECTION): Likewise.
(EXTRA_SECTIONS): Likewise.
(EXTRA_SECTION_FUNCTIONS): Likewise.
(SELECT_RTX_SECTION): Likewise.
(SELECT_SECTION): Likewise.
* config/mips/linux.h (INVOKE__main): Undefine.
(CTOR_LIST_BEGIN): Likewise.
(CTOR_LIST_END): Likewise.
(DTOR_LIST_BEGIN): Likewise.
(DTOR_LIST_END): Likewise.
(SET_ASM_OP): Defined it to ".dummy".
(ASM_OUTPUT_DEF): Defined.
(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
2001-04-26 Nick Clifton <nickc@cambridge.redhat.com> 2001-04-26 Nick Clifton <nickc@cambridge.redhat.com>
* config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
......
...@@ -2219,8 +2219,8 @@ mipsel-*-netbsd* | mips-dec-netbsd*) # Decstation running NetBSD ...@@ -2219,8 +2219,8 @@ mipsel-*-netbsd* | mips-dec-netbsd*) # Decstation running NetBSD
mips*-*-linux*) # Linux MIPS, either endian. mips*-*-linux*) # Linux MIPS, either endian.
xmake_file=x-linux xmake_file=x-linux
case $machine in case $machine in
mips*el-*) tm_file="mips/elfl.h mips/linux.h" ;; mips*el-*) tm_file="elfos.h mips/elfl.h mips/linux.h" ;;
*) tm_file="mips/elf.h mips/linux.h" ;; *) tm_file="elfos.h mips/elf.h mips/linux.h" ;;
esac esac
tmake_file=t-linux tmake_file=t-linux
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
......
...@@ -32,4 +32,5 @@ Boston, MA 02111-1307, USA. */ ...@@ -32,4 +32,5 @@ Boston, MA 02111-1307, USA. */
/* Don't assume anything about startfiles. The linker script will load the /* Don't assume anything about startfiles. The linker script will load the
appropriate startfiles. */ appropriate startfiles. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "" #define STARTFILE_SPEC ""
...@@ -53,6 +53,7 @@ do { \ ...@@ -53,6 +53,7 @@ do { \
specified using the `__attribute__ ((aligned (N)))' construct. If specified using the `__attribute__ ((aligned (N)))' construct. If
not defined, the default value is `BIGGEST_ALIGNMENT'. */ not defined, the default value is `BIGGEST_ALIGNMENT'. */
#undef MAX_OFILE_ALIGNMENT
#define MAX_OFILE_ALIGNMENT (32768*8) #define MAX_OFILE_ALIGNMENT (32768*8)
/* A C statement to output something to the assembler file to switch to section /* A C statement to output something to the assembler file to switch to section
...@@ -60,6 +61,7 @@ do { \ ...@@ -60,6 +61,7 @@ do { \
NULL_TREE. Some target formats do not support arbitrary sections. Do not NULL_TREE. Some target formats do not support arbitrary sections. Do not
define this macro in such cases. */ define this macro in such cases. */
#undef ASM_OUTPUT_SECTION_NAME
#define ASM_OUTPUT_SECTION_NAME(F, DECL, NAME, RELOC) \ #define ASM_OUTPUT_SECTION_NAME(F, DECL, NAME, RELOC) \
do { \ do { \
extern FILE *asm_out_text_file; \ extern FILE *asm_out_text_file; \
...@@ -191,6 +193,7 @@ do { \ ...@@ -191,6 +193,7 @@ do { \
but until that support is generally available, the 'if' below but until that support is generally available, the 'if' below
should serve. */ should serve. */
#undef ASM_WEAKEN_LABEL
#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0) #define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0)
#define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \ #define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \
do { \ do { \
...@@ -210,6 +213,7 @@ do { \ ...@@ -210,6 +213,7 @@ do { \
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
#undef UNIQUE_SECTION_P #undef UNIQUE_SECTION_P
#define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL)) #define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL))
#undef UNIQUE_SECTION
#define UNIQUE_SECTION(DECL,RELOC) \ #define UNIQUE_SECTION(DECL,RELOC) \
do { \ do { \
int len, size, sec; \ int len, size, sec; \
...@@ -331,6 +335,7 @@ void FN () \ ...@@ -331,6 +335,7 @@ void FN () \
/* A C statement (sans semicolon) to output an element in the table of /* A C statement (sans semicolon) to output an element in the table of
global constructors. */ global constructors. */
#undef ASM_OUTPUT_CONSTRUCTOR
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \ do { \
ctors_section (); \ ctors_section (); \
...@@ -342,6 +347,7 @@ void FN () \ ...@@ -342,6 +347,7 @@ void FN () \
/* A C statement (sans semicolon) to output an element in the table of /* A C statement (sans semicolon) to output an element in the table of
global destructors. */ global destructors. */
#undef ASM_OUTPUT_DESTRUCTOR
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \ do { \
dtors_section (); \ dtors_section (); \
......
...@@ -54,6 +54,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -54,6 +54,7 @@ Boston, MA 02111-1307, USA. */
specified using the `__attribute__ ((aligned (N)))' construct. If specified using the `__attribute__ ((aligned (N)))' construct. If
not defined, the default value is `BIGGEST_ALIGNMENT'. */ not defined, the default value is `BIGGEST_ALIGNMENT'. */
#undef MAX_OFILE_ALIGNMENT
#define MAX_OFILE_ALIGNMENT (32768*8) #define MAX_OFILE_ALIGNMENT (32768*8)
/* We need to use .esize and .etype instead of .size and .type to /* We need to use .esize and .etype instead of .size and .type to
...@@ -77,6 +78,7 @@ do { \ ...@@ -77,6 +78,7 @@ do { \
NULL_TREE. Some target formats do not support arbitrary sections. Do not NULL_TREE. Some target formats do not support arbitrary sections. Do not
define this macro in such cases. */ define this macro in such cases. */
#undef ASM_OUTPUT_SECTION_NAME
#define ASM_OUTPUT_SECTION_NAME(F, DECL, NAME, RELOC) \ #define ASM_OUTPUT_SECTION_NAME(F, DECL, NAME, RELOC) \
do { \ do { \
extern FILE *asm_out_text_file; \ extern FILE *asm_out_text_file; \
...@@ -172,6 +174,7 @@ do { \ ...@@ -172,6 +174,7 @@ do { \
but until that support is generally available, the 'if' below but until that support is generally available, the 'if' below
should serve. */ should serve. */
#undef ASM_WEAKEN_LABEL
#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0) #define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0)
#define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \ #define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \
do { \ do { \
...@@ -191,6 +194,7 @@ do { \ ...@@ -191,6 +194,7 @@ do { \
#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
#undef UNIQUE_SECTION_P #undef UNIQUE_SECTION_P
#define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL)) #define UNIQUE_SECTION_P(DECL) (DECL_ONE_ONLY (DECL))
#undef UNIQUE_SECTION
#define UNIQUE_SECTION(DECL,RELOC) \ #define UNIQUE_SECTION(DECL,RELOC) \
do { \ do { \
int len, size, sec; \ int len, size, sec; \
...@@ -311,6 +315,7 @@ void FN () \ ...@@ -311,6 +315,7 @@ void FN () \
/* A C statement (sans semicolon) to output an element in the table of /* A C statement (sans semicolon) to output an element in the table of
global constructors. */ global constructors. */
#undef ASM_OUTPUT_CONSTRUCTOR
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \ do { \
ctors_section (); \ ctors_section (); \
...@@ -322,6 +327,7 @@ void FN () \ ...@@ -322,6 +327,7 @@ void FN () \
/* A C statement (sans semicolon) to output an element in the table of /* A C statement (sans semicolon) to output an element in the table of
global destructors. */ global destructors. */
#undef ASM_OUTPUT_DESTRUCTOR
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \ do { \
dtors_section (); \ dtors_section (); \
......
...@@ -37,6 +37,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -37,6 +37,7 @@ Boston, MA 02111-1307, USA. */
/* Handle #pragma weak and #pragma pack. */ /* Handle #pragma weak and #pragma pack. */
#undef HANDLE_SYSV_PRAGMA
#define HANDLE_SYSV_PRAGMA 1 #define HANDLE_SYSV_PRAGMA 1
/* Use more efficient ``thunks'' to implement C++ vtables. */ /* Use more efficient ``thunks'' to implement C++ vtables. */
...@@ -160,3 +161,38 @@ Boston, MA 02111-1307, USA. */ ...@@ -160,3 +161,38 @@ Boston, MA 02111-1307, USA. */
%{mabi=64: -64} \ %{mabi=64: -64} \
%{!fno-PIC:%{!fno-pic:-KPIC}} \ %{!fno-PIC:%{!fno-pic:-KPIC}} \
%{fno-PIC:-non_shared} %{fno-pic:-non_shared}" %{fno-PIC:-non_shared} %{fno-pic:-non_shared}"
/* We don't need those nonsenses. */
#undef INVOKE__main
#undef CTOR_LIST_BEGIN
#undef CTOR_LIST_END
#undef DTOR_LIST_BEGIN
#undef DTOR_LIST_END
/* The MIPS assembler has different syntax for .set. We set it to
.dummy to trap any errors. */
#undef SET_ASM_OP
#define SET_ASM_OP "\t.dummy\t"
/* This is how we tell the assembler that two symbols have the
same value. */
#undef ASM_OUTPUT_DEF
#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
do { \
fprintf ((FILE), "\t"); \
assemble_name (FILE, LABEL1); \
fprintf (FILE, "="); \
assemble_name (FILE, LABEL2); \
fprintf (FILE, "\n"); \
} while (0)
#undef ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL
#define ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL(FILE, SY, HI, LO) \
do { \
fputc ('\t', FILE); \
assemble_name (FILE, SY); \
fputc ('=', FILE); \
assemble_name (FILE, HI); \
fputc ('-', FILE); \
assemble_name (FILE, LO); \
} while (0)
...@@ -1086,6 +1086,7 @@ while (0) ...@@ -1086,6 +1086,7 @@ while (0)
/* On Sun 4, this limit is 2048. We use 1500 to be safe, /* On Sun 4, this limit is 2048. We use 1500 to be safe,
since the length can run past this up to a continuation point. */ since the length can run past this up to a continuation point. */
#undef DBX_CONTIN_LENGTH
#define DBX_CONTIN_LENGTH 1500 #define DBX_CONTIN_LENGTH 1500
/* How to renumber registers for dbx and gdb. */ /* How to renumber registers for dbx and gdb. */
...@@ -3789,6 +3790,7 @@ while (0) ...@@ -3789,6 +3790,7 @@ while (0)
declaration when the code is processed, it generates a two declaration when the code is processed, it generates a two
instruction sequence. */ instruction sequence. */
#undef ASM_FILE_START
#define ASM_FILE_START(STREAM) mips_asm_file_start (STREAM) #define ASM_FILE_START(STREAM) mips_asm_file_start (STREAM)
/* Output to assembler file text saying following lines /* Output to assembler file text saying following lines
...@@ -4100,6 +4102,7 @@ while (0) ...@@ -4100,6 +4102,7 @@ while (0)
#define LABEL_AFTER_LOC(STREAM) #define LABEL_AFTER_LOC(STREAM)
#endif #endif
#undef ASM_OUTPUT_SOURCE_LINE
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \ #define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \
mips_output_lineno (STREAM, LINE) mips_output_lineno (STREAM, LINE)
...@@ -4140,6 +4143,7 @@ do { \ ...@@ -4140,6 +4143,7 @@ do { \
If this macro is not defined, then the variable name is defined If this macro is not defined, then the variable name is defined
in the usual manner as a label (by means of `ASM_OUTPUT_LABEL'). */ in the usual manner as a label (by means of `ASM_OUTPUT_LABEL'). */
#undef ASM_DECLARE_OBJECT_NAME
#define ASM_DECLARE_OBJECT_NAME(STREAM, NAME, DECL) \ #define ASM_DECLARE_OBJECT_NAME(STREAM, NAME, DECL) \
do \ do \
{ \ { \
...@@ -4200,6 +4204,7 @@ while (0) ...@@ -4200,6 +4204,7 @@ while (0)
mips_output_external(STREAM,DECL,NAME) mips_output_external(STREAM,DECL,NAME)
/* This says what to print at the end of the assembly file */ /* This says what to print at the end of the assembly file */
#undef ASM_FILE_END
#define ASM_FILE_END(STREAM) mips_asm_file_end(STREAM) #define ASM_FILE_END(STREAM) mips_asm_file_end(STREAM)
...@@ -4210,6 +4215,7 @@ while (0) ...@@ -4210,6 +4215,7 @@ while (0)
Also, switch files if we are optimizing the global pointer. */ Also, switch files if we are optimizing the global pointer. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM,NAME,DECL) \ #define ASM_DECLARE_FUNCTION_NAME(STREAM,NAME,DECL) \
{ \ { \
extern FILE *asm_out_text_file; \ extern FILE *asm_out_text_file; \
...@@ -4232,6 +4238,7 @@ while (0) ...@@ -4232,6 +4238,7 @@ while (0)
/* This is how to output an internal numbered label where /* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */ PREFIX is the class of label and NUM is the number within the class. */
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(STREAM,PREFIX,NUM) \ #define ASM_OUTPUT_INTERNAL_LABEL(STREAM,PREFIX,NUM) \
fprintf (STREAM, "%s%s%d:\n", LOCAL_LABEL_PREFIX, PREFIX, NUM) fprintf (STREAM, "%s%s%d:\n", LOCAL_LABEL_PREFIX, PREFIX, NUM)
...@@ -4240,6 +4247,7 @@ while (0) ...@@ -4240,6 +4247,7 @@ while (0)
PREFIX is the class of label and NUM is the number within the class. PREFIX is the class of label and NUM is the number within the class.
This is suitable for output with `assemble_name'. */ This is suitable for output with `assemble_name'. */
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
sprintf ((LABEL), "*%s%s%ld", (LOCAL_LABEL_PREFIX), (PREFIX), (long)(NUM)) sprintf ((LABEL), "*%s%s%ld", (LOCAL_LABEL_PREFIX), (PREFIX), (long)(NUM))
...@@ -4355,6 +4363,7 @@ do { \ ...@@ -4355,6 +4363,7 @@ do { \
JUMP_TABLES_IN_TEXT_SECTION, because it is not conditional. JUMP_TABLES_IN_TEXT_SECTION, because it is not conditional.
Instead, we use ASM_OUTPUT_CASE_LABEL to switch back to the .text Instead, we use ASM_OUTPUT_CASE_LABEL to switch back to the .text
section if appropriate. */ section if appropriate. */
#undef ASM_OUTPUT_CASE_LABEL
#define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, INSN) \ #define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, INSN) \
do { \ do { \
if (TARGET_EMBEDDED_PIC || TARGET_MIPS16) \ if (TARGET_EMBEDDED_PIC || TARGET_MIPS16) \
...@@ -4372,10 +4381,12 @@ do { \ ...@@ -4372,10 +4381,12 @@ do { \
/* This is how to output an assembler line to advance the location /* This is how to output an assembler line to advance the location
counter by SIZE bytes. */ counter by SIZE bytes. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \ #define ASM_OUTPUT_SKIP(STREAM,SIZE) \
fprintf (STREAM, "\t.space\t%u\n", (SIZE)) fprintf (STREAM, "\t.space\t%u\n", (SIZE))
/* This is how to output a string. */ /* This is how to output a string. */
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(STREAM, STRING, LEN) \ #define ASM_OUTPUT_ASCII(STREAM, STRING, LEN) \
do { \ do { \
register int i, c, len = (LEN), cur_pos = 17; \ register int i, c, len = (LEN), cur_pos = 17; \
...@@ -4451,6 +4462,7 @@ do { \ ...@@ -4451,6 +4462,7 @@ do { \
#define SCCS_DIRECTIVE #define SCCS_DIRECTIVE
/* Output #ident as a in the read-only data section. */ /* Output #ident as a in the read-only data section. */
#undef ASM_OUTPUT_IDENT
#define ASM_OUTPUT_IDENT(FILE, STRING) \ #define ASM_OUTPUT_IDENT(FILE, STRING) \
{ \ { \
const char *p = STRING; \ const char *p = STRING; \
...@@ -4469,11 +4481,13 @@ do { \ ...@@ -4469,11 +4481,13 @@ do { \
#define DATA_SECTION_ASM_OP "\t.data" /* large data */ #define DATA_SECTION_ASM_OP "\t.data" /* large data */
#define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */ #define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */
#define RDATA_SECTION_ASM_OP "\t.rdata" /* read-only data */ #define RDATA_SECTION_ASM_OP "\t.rdata" /* read-only data */
#undef READONLY_DATA_SECTION
#define READONLY_DATA_SECTION rdata_section #define READONLY_DATA_SECTION rdata_section
#define SMALL_DATA_SECTION sdata_section #define SMALL_DATA_SECTION sdata_section
/* What other sections we support other than the normal .data/.text. */ /* What other sections we support other than the normal .data/.text. */
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_sdata, in_rdata #define EXTRA_SECTIONS in_sdata, in_rdata
/* Define the additional functions to select our additional sections. */ /* Define the additional functions to select our additional sections. */
...@@ -4486,6 +4500,7 @@ do { \ ...@@ -4486,6 +4500,7 @@ do { \
if the constant is too large for sdata, and it's readonly, it if the constant is too large for sdata, and it's readonly, it
will go into the .rdata section. */ will go into the .rdata section. */
#undef EXTRA_SECTION_FUNCTIONS
#define EXTRA_SECTION_FUNCTIONS \ #define EXTRA_SECTION_FUNCTIONS \
void \ void \
sdata_section () \ sdata_section () \
...@@ -4510,8 +4525,10 @@ rdata_section () \ ...@@ -4510,8 +4525,10 @@ rdata_section () \
/* Given a decl node or constant node, choose the section to output it in /* Given a decl node or constant node, choose the section to output it in
and select that section. */ and select that section. */
#undef SELECT_RTX_SECTION
#define SELECT_RTX_SECTION(MODE,RTX) mips_select_rtx_section (MODE, RTX) #define SELECT_RTX_SECTION(MODE,RTX) mips_select_rtx_section (MODE, RTX)
#undef SELECT_SECTION
#define SELECT_SECTION(DECL, RELOC) mips_select_section (DECL, RELOC) #define SELECT_SECTION(DECL, RELOC) mips_select_section (DECL, RELOC)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment