Commit 6a2b287f by Bob Wilson Committed by Bob Wilson

linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of _GNU_SOURCE.

        * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
        _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
        (SUBTARGET_CPP_SPEC): Define.
        (LIB_SPEC): Delete.
        * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
        * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
        * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
        Define.
        (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
        (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.

From-SVN: r66083
parent 01475329
2003-04-25 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
_GNU_SOURCE. Add definitions of __PIC__ and __pic__.
(SUBTARGET_CPP_SPEC): Define.
(LIB_SPEC): Delete.
* config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
* config/xtensa/xtensa.c (xtensa_declare_object): Delete.
* config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
Define.
(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
(ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
2003-04-25 H.J. Lu <hjl@gnu.org> 2003-04-25 H.J. Lu <hjl@gnu.org>
* config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
......
/* Xtensa Linux configuration. /* Xtensa Linux configuration.
Derived from the configuration for GCC for Intel i386 running Linux. Derived from the configuration for GCC for Intel i386 running Linux.
Copyright (C) 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -26,11 +26,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -26,11 +26,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
builtin_define ("__ELF__"); \ builtin_define ("__ELF__"); \
builtin_define ("__gnu_linux__"); \ builtin_define ("__gnu_linux__"); \
builtin_assert ("system=posix"); \ builtin_assert ("system=posix"); \
/* The GNU C++ standard library requires this. */ \ builtin_define ("__PIC__"); \
if (c_language == clk_cplusplus) \ builtin_define ("__pic__"); \
builtin_define ("_GNU_SOURCE"); \
} while (0) } while (0)
#undef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#undef TARGET_VERSION #undef TARGET_VERSION
#define TARGET_VERSION fputs (" (Xtensa GNU/Linux with ELF)", stderr); #define TARGET_VERSION fputs (" (Xtensa GNU/Linux with ELF)", stderr);
...@@ -45,12 +47,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -45,12 +47,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#undef ASM_FINAL_SPEC #undef ASM_FINAL_SPEC
#undef LIB_SPEC
#define LIB_SPEC \
"%{shared: -lc} \
%{!shared: %{pthread:-lpthread} \
%{profile:-lc_p} %{!profile: -lc}}"
#undef LINK_SPEC #undef LINK_SPEC
#define LINK_SPEC \ #define LINK_SPEC \
"%{shared:-shared} \ "%{shared:-shared} \
......
/* Prototypes of target machine for GNU compiler for Xtensa. /* Prototypes of target machine for GNU compiler for Xtensa.
Copyright 2001,2002 Free Software Foundation, Inc. Copyright 2001,2002,2003 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC. This file is part of GCC.
...@@ -109,8 +109,6 @@ extern int xtensa_mem_offset PARAMS ((unsigned, enum machine_mode)); ...@@ -109,8 +109,6 @@ extern int xtensa_mem_offset PARAMS ((unsigned, enum machine_mode));
extern void xtensa_setup_frame_addresses PARAMS ((void)); extern void xtensa_setup_frame_addresses PARAMS ((void));
extern int xtensa_dbx_register_number PARAMS ((int)); extern int xtensa_dbx_register_number PARAMS ((int));
extern void override_options PARAMS ((void)); extern void override_options PARAMS ((void));
extern void xtensa_declare_object
PARAMS ((FILE *, char *, char *, char *, int));
extern long compute_frame_size PARAMS ((int)); extern long compute_frame_size PARAMS ((int));
extern int xtensa_frame_pointer_required PARAMS ((void)); extern int xtensa_frame_pointer_required PARAMS ((void));
extern void xtensa_function_prologue PARAMS ((FILE *, HOST_WIDE_INT)); extern void xtensa_function_prologue PARAMS ((FILE *, HOST_WIDE_INT));
......
/* Subroutines for insn-output.c for Tensilica's Xtensa architecture. /* Subroutines for insn-output.c for Tensilica's Xtensa architecture.
Copyright 2001,2002 Free Software Foundation, Inc. Copyright 2001,2002,2003 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC. This file is part of GCC.
...@@ -2086,22 +2086,6 @@ print_operand_address (file, addr) ...@@ -2086,22 +2086,6 @@ print_operand_address (file, addr)
} }
/* Emit either a label, .comm, or .lcomm directive. */
void
xtensa_declare_object (file, name, init_string, final_string, size)
FILE *file;
char *name;
char *init_string;
char *final_string;
int size;
{
fputs (init_string, file); /* "", "\t.comm\t", or "\t.lcomm\t" */
assemble_name (file, name);
fprintf (file, final_string, size); /* ":\n", ",%u\n", ",%u\n" */
}
void void
xtensa_output_literal (file, x, mode, labelno) xtensa_output_literal (file, x, mode, labelno)
FILE *file; FILE *file;
......
/* Definitions of Tensilica's Xtensa target machine for GNU compiler. /* Definitions of Tensilica's Xtensa target machine for GNU compiler.
Copyright 2001,2002 Free Software Foundation, Inc. Copyright 2001,2002,2003 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC. This file is part of GCC.
...@@ -208,6 +208,15 @@ extern unsigned xtensa_current_frame_size; ...@@ -208,6 +208,15 @@ extern unsigned xtensa_current_frame_size;
} \ } \
} while (0) } while (0)
#define CPP_SPEC " %(subtarget_cpp_spec) "
#ifndef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC ""
#endif
#define EXTRA_SPECS \
{ "subtarget_cpp_spec", SUBTARGET_CPP_SPEC },
#ifdef __XTENSA_EB__ #ifdef __XTENSA_EB__
#define LIBGCC2_WORDS_BIG_ENDIAN 1 #define LIBGCC2_WORDS_BIG_ENDIAN 1
#else #else
...@@ -1377,14 +1386,9 @@ typedef struct xtensa_args { ...@@ -1377,14 +1386,9 @@ typedef struct xtensa_args {
/* Globalizing directive for a label. */ /* Globalizing directive for a label. */
#define GLOBAL_ASM_OP "\t.global\t" #define GLOBAL_ASM_OP "\t.global\t"
/* This says how to define a global common symbol. */ /* Declare an uninitialized external linkage data object. */
#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
xtensa_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", (SIZE)) asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
/* This says how to define a local common symbol (ie, not visible to
linker). */
#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
xtensa_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (SIZE))
/* This is how to output an element of a case-vector that is absolute. */ /* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \ #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
...@@ -1430,8 +1434,9 @@ typedef struct xtensa_args { ...@@ -1430,8 +1434,9 @@ typedef struct xtensa_args {
/* Define the strings to put out for each section in the object file. */ /* Define the strings to put out for each section in the object file. */
#define TEXT_SECTION_ASM_OP "\t.text" /* instructions */ #define TEXT_SECTION_ASM_OP "\t.text"
#define DATA_SECTION_ASM_OP "\t.data" /* large data */ #define DATA_SECTION_ASM_OP "\t.data"
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
/* Define output to appear before the constant pool. If the function /* Define output to appear before the constant pool. If the function
......
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