diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2001-02-03 20:59:20 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2001-02-03 20:59:20 +0000 |
commit | 37ba4fdf983f9ba3e80de8259dca740681d9dffd (patch) | |
tree | 30dfef265f15b12e11e1ee020d815771a3ab2f16 | |
parent | d54787f2c0f2fde0a4d0213d367c261b73a08da6 (diff) |
update configuration for elf: remove ecoff markers, handle alpha assembler
peculiarities, set up correct init/fini code for elf.
-rw-r--r-- | gnu/egcs/gcc/config/alpha/openbsd.h | 84 |
1 files changed, 23 insertions, 61 deletions
diff --git a/gnu/egcs/gcc/config/alpha/openbsd.h b/gnu/egcs/gcc/config/alpha/openbsd.h index 60591d554f5..40c06241c9a 100644 --- a/gnu/egcs/gcc/config/alpha/openbsd.h +++ b/gnu/egcs/gcc/config/alpha/openbsd.h @@ -22,15 +22,13 @@ Boston, MA 02111-1307, USA. */ #define TARGET_ENDIAN_DEFAULT 0 #include <alpha/alpha.h> +#include <alpha/elf.h> #define OBSD_NO_DYNAMIC_LIBRARIES #define OBSD_HAS_DECLARE_FUNCTION_NAME #define OBSD_HAS_DECLARE_FUNCTION_SIZE #define OBSD_HAS_DECLARE_OBJECT -/* alpha ecoff supports only weak aliases, see below. */ -#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS (FILE,NAME,0) - #include <openbsd.h> /* Controlling the compilation driver. */ @@ -40,9 +38,17 @@ Boston, MA 02111-1307, USA. */ #define LINK_SPEC \ "%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp %{assert*}" +/* As an elf system, we need crtbegin/crtend stuff. */ +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "\ + %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ + crtbegin%O%s} %{shared:crtbeginS%O%s}" +#undef ENDFILE_SPEC +#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" + /* run-time target specifications */ #define CPP_PREDEFINES "-D__unix__ -D__ANSI_COMPAT -Asystem(unix) \ --D__OpenBSD__ -D__alpha__ -D__alpha" +-D__OpenBSD__ -D__alpha__ -D__alpha -D__ELF__" /* Layout of source language data types. */ @@ -63,64 +69,20 @@ Boston, MA 02111-1307, USA. */ #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG +/* Output and generation of labels. */ #define LOCAL_LABEL_PREFIX "." -/* We don't have an init section yet. */ -#undef HAS_INIT_SECTION - -/* collect2 support (assembler format: macros for initialization). */ - -/* Don't tell collect2 we use COFF as we don't have (yet ?) a dynamic ld - library with the proper functions to handle this -> collect2 will - default to using nm. */ -#undef OBJECT_FORMAT_COFF -#undef EXTENDED_COFF - -/* Assembler format: exception region output. */ - -/* All configurations that don't use elf must be explicit about not using - dwarf unwind information. egcs doesn't try too hard to check internal - configuration files... */ -#ifdef INCOMING_RETURN_ADDR_RTX -#undef DWARF2_UNWIND_INFO -#define DWARF2_UNWIND_INFO 0 -#endif - -/* Assembler format: file framework. */ - -/* Taken from alpha/osf.h. This used to be common to all alpha - configurations, but elf has departed from it. - Check alpha/alpha.h, alpha/osf.h for it when egcs is upgraded. */ -#ifndef ASM_FILE_START -#define ASM_FILE_START(FILE) \ -{ \ - alpha_write_verstamp (FILE); \ - fprintf (FILE, "\t.set noreorder\n"); \ - fprintf (FILE, "\t.set volatile\n"); \ - fprintf (FILE, "\t.set noat\n"); \ - if (TARGET_SUPPORT_ARCH) \ - fprintf (FILE, "\t.arch %s\n", \ - alpha_cpu == PROCESSOR_EV6 ? "ev6" \ - : (alpha_cpu == PROCESSOR_EV5 \ - ? (TARGET_MAX ? "pca56" : TARGET_BWX ? "ev56" : "ev5") \ - : "ev4")); \ - \ - ASM_OUTPUT_SOURCE_FILENAME (FILE, main_input_filename); \ -} -#endif - -/* Assembler format: label output. */ - -#define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \ - do { \ - fputs ("\t.weakext\t", FILE); \ - assemble_name (FILE, NAME); \ - if (VALUE) \ - { \ - fputs (" , ", FILE); \ - assemble_name (FILE, VALUE); \ - } \ - fputc ('\n', FILE); \ +/* .set on alpha is not used to output labels. */ +#undef SET_ASM_OP + +/* So, provide corresponding default, without the .set. */ +#undef ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL +#define ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL(FILE, SY, HI, LO) \ + do { \ + assemble_name (FILE, SY); \ + fputc ('=', FILE); \ + assemble_name (FILE, HI); \ + fputc ('-', FILE); \ + assemble_name (FILE, LO); \ } while (0) - |