diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 3 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 1 | ||||
-rw-r--r-- | gcc/config/i386/netware-libgcc.c | 58 | ||||
-rw-r--r-- | gcc/config/i386/netware-libgcc.def | 2 | ||||
-rw-r--r-- | gcc/config/i386/netware-libgcc.exp | 83 | ||||
-rw-r--r-- | gcc/config/i386/netware.c | 237 | ||||
-rw-r--r-- | gcc/config/i386/netware.h | 175 | ||||
-rw-r--r-- | gcc/config/i386/netware.opt | 33 | ||||
-rw-r--r-- | gcc/config/i386/nwld.c | 73 | ||||
-rw-r--r-- | gcc/config/i386/nwld.h | 69 | ||||
-rw-r--r-- | gcc/config/i386/t-netware | 10 | ||||
-rw-r--r-- | gcc/config/i386/t-nwld | 22 |
12 files changed, 1 insertions, 765 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f643efcd..3187f85 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -31431,8 +31431,7 @@ ix86_md_asm_clobbers (tree outputs ATTRIBUTE_UNUSED, return clobbers; } -/* Implements target vector targetm.asm.encode_section_info. This - is not used by netware. */ +/* Implements target vector targetm.asm.encode_section_info. */ static void ATTRIBUTE_UNUSED ix86_encode_section_info (tree decl, rtx rtl, int first) diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index f532bad..4c7df9d 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1131,7 +1131,6 @@ enum target_cpu_default /* This is overridden by <cygwin.h>. */ #define MS_AGGREGATE_RETURN 0 -/* This is overridden by <netware.h>. */ #define KEEP_AGGREGATE_RETURN_POINTER 0 /* Define the classes of registers for register constraints in the diff --git a/gcc/config/i386/netware-libgcc.c b/gcc/config/i386/netware-libgcc.c deleted file mode 100644 index 0925d87..0000000 --- a/gcc/config/i386/netware-libgcc.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Startup code for libgcc_s.nlm, necessary because we can't allow - libgcc_s to use libc's malloc & Co., which associate allocations - with the NLM owning the current (application) thread. - Contributed by Jan Beulich (jbeulich@novell.com) - Copyright (C) 2004, 2007 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#include <netware.h> -#include <stddef.h> -#include <stdlib.h> -#include <windows.h> - -static rtag_t allocRTag; - -BOOL -DllMain (HINSTANCE libraryId __attribute__ ((__unused__)), - DWORD reason, void *hModule) -{ - switch (reason) - { - case DLL_NLM_STARTUP: - allocRTag = AllocateResourceTag (hModule, - "libgcc memory", AllocSignature); - return allocRTag != NULL; - case DLL_NLM_SHUTDOWN: - /* This does not recover resources associated with the tag... - ReturnResourceTag (allocRTag, 0); */ - break; - } - return 1; -} - -void * -malloc (size_t size) -{ - return AllocSleepOK (size, allocRTag, NULL); -} - -void -free (void *ptr) -{ - Free (ptr); -} diff --git a/gcc/config/i386/netware-libgcc.def b/gcc/config/i386/netware-libgcc.def deleted file mode 100644 index a545631..0000000 --- a/gcc/config/i386/netware-libgcc.def +++ /dev/null @@ -1,2 +0,0 @@ -description "gcc runtime and intrinsics support" -copyright "Copyright (C) 1989-2005 Free Software Foundation, Inc." diff --git a/gcc/config/i386/netware-libgcc.exp b/gcc/config/i386/netware-libgcc.exp deleted file mode 100644 index 309cf75..0000000 --- a/gcc/config/i386/netware-libgcc.exp +++ /dev/null @@ -1,83 +0,0 @@ -# libgcc_s.nlm exports - (libgcc2), - __absvdi2, - __absvsi2, - __addvdi3, - __addvsi3, -# __ashldi3, -# __ashrdi3, - __bswapdi2, - __bswapsi2, - __clzdi2, - __clzsi2, - __ctzdi2, - __ctzsi2, - __deregister_frame, - __deregister_frame_info, - __deregister_frame_info_bases, - __divdc3, -# __divdi3, - __divsc3, -# __divtc3, - __divxc3, - __emutls_get_address, - __emutls_register_common, - __ffsdi2, - __ffssi2, - __fixunsdfdi, - __fixunssfdi, -# __fixunstfdi, - __fixunsxfdi, - __floatundisf, - __floatundidf, -# __floatunditf, - __floatundixf, - __gcc_bcmp, - __gcc_personality_v0, -# __lshrdi3, -# __moddi3, - __muldc3, -# __muldi3, - __mulsc3, -# __multc3, - __mulvdi3, - __mulvsi3, - __mulxc3, - __negvdi2, - __negvsi2, - __paritydi2, - __paritysi2, - __popcountdi2, - __popcountsi2, - __powidf2 - __powisf2 -# __powitf2 - __powixf2 - __register_frame, - __register_frame_info, - __register_frame_info_bases, - __register_frame_info_table, - __register_frame_info_table_bases, - __register_frame_table, - __subvdi3, - __subvsi3, -# __umoddi3, -# __udivdi3, - _Unwind_Backtrace, - _Unwind_DeleteException, - _Unwind_FindEnclosingFunction, - _Unwind_Find_FDE, - _Unwind_ForcedUnwind, - _Unwind_GetCFA, - _Unwind_GetDataRelBase, - _Unwind_GetGR, - _Unwind_GetIP, - _Unwind_GetIPInfo, - _Unwind_GetLanguageSpecificData, - _Unwind_GetRegionStart, - _Unwind_GetTextRelBase, - _Unwind_RaiseException, - _Unwind_Resume, - _Unwind_Resume_or_Rethrow, - _Unwind_SetGR, - _Unwind_SetIP diff --git a/gcc/config/i386/netware.c b/gcc/config/i386/netware.c deleted file mode 100644 index 5a0f9d5..0000000 --- a/gcc/config/i386/netware.c +++ /dev/null @@ -1,237 +0,0 @@ -/* Subroutines for insn-output.c for NetWare. - Contributed by Jan Beulich (jbeulich@novell.com) - Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "rtl.h" -#include "regs.h" -#include "hard-reg-set.h" -#include "output.h" -#include "tree.h" -#include "flags.h" -#include "tm_p.h" -#include "diagnostic-core.h" -#include "langhooks.h" -#include "ggc.h" - -/* Return string which is the function name, identified by ID, modified - with PREFIX and a suffix consisting of an atsign (@) followed by the - number of bytes of arguments. If ID is NULL use the DECL_NAME as base. - Return NULL if no change required. */ - -static tree -gen_stdcall_or_fastcall_decoration (tree decl, tree id, char prefix) -{ - unsigned HOST_WIDE_INT total = 0; - const char *old_str = IDENTIFIER_POINTER (id != NULL_TREE ? id : DECL_NAME (decl)); - char *new_str; - tree type = TREE_TYPE (decl); - - if (prototype_p (type)) - { - tree arg; - function_args_iterator args_iter; - - /* This attribute is ignored for variadic functions. */ - if (stdarg_p (type)) - return NULL_TREE; - - /* Quit if we hit an incomplete type. Error is reported - by convert_arguments in c-typeck.c or cp/typeck.c. */ - FOREACH_FUNCTION_ARGS(type, arg, args_iter) - { - HOST_WIDE_INT parm_size; - unsigned HOST_WIDE_INT parm_boundary_bytes; - - if (! COMPLETE_TYPE_P (arg)) - break; - - parm_size = int_size_in_bytes (arg); - if (parm_size < 0) - break; - - parm_boundary_bytes = PARM_BOUNDARY / BITS_PER_UNIT; - - /* Must round up to include padding. This is done the same - way as in store_one_arg. */ - total += (parm_size + parm_boundary_bytes - 1) - / parm_boundary_bytes * parm_boundary_bytes; - } - } - - new_str = XALLOCAVEC (char, 1 + strlen (old_str) + 1 + 10 + 1); - sprintf (new_str, "%c%s@" HOST_WIDE_INT_PRINT_UNSIGNED, - prefix, old_str, total); - - return get_identifier (new_str); -} - -/* Return string which is the function name, identified by ID, modified - with an _n@ prefix (where n represents the number of arguments passed in - registers). If ID is NULL use the DECL_NAME as base. - Return NULL if no change required. */ - -static tree -gen_regparm_prefix (tree decl, tree id, unsigned int nregs) -{ - unsigned HOST_WIDE_INT total = 0; - const char *old_str = IDENTIFIER_POINTER (id != NULL_TREE ? id : DECL_NAME (decl)); - char *new_str; - tree type = TREE_TYPE (decl); - - if (prototype_p (type)) - { - tree arg; - function_args_iterator args_iter; - - /* This attribute is ignored for variadic functions. */ - if (stdarg_p (type)) - return NULL_TREE; - - /* Quit if we hit an incomplete type. Error is reported - by convert_arguments in c-typeck.c or cp/typeck.c. */ - FOREACH_FUNCTION_ARGS(type, arg, args_iter) - { - HOST_WIDE_INT parm_size; - unsigned HOST_WIDE_INT parm_boundary_bytes; - - if (! COMPLETE_TYPE_P (arg)) - break; - - parm_size = int_size_in_bytes (arg); - if (parm_size < 0) - break; - - parm_boundary_bytes = PARM_BOUNDARY / BITS_PER_UNIT; - - /* Must round up to include padding. This is done the same - way as in store_one_arg. */ - total += (parm_size + parm_boundary_bytes - 1) - / parm_boundary_bytes * parm_boundary_bytes; - } - } - - if (nregs > total / UNITS_PER_WORD) - nregs = total / UNITS_PER_WORD; - gcc_assert (nregs <= 9); - new_str = XALLOCAVEC (char, 3 + strlen (old_str) + 1); - sprintf (new_str, "_%u@%s", nregs, old_str); - - return get_identifier (new_str); -} - -/* Maybe decorate and get a new identifier for the DECL of a stdcall or - fastcall function. The original identifier is supplied in ID. */ - -static tree -i386_nlm_maybe_mangle_decl_assembler_name (tree decl, tree id) -{ - tree type_attributes = TYPE_ATTRIBUTES (TREE_TYPE (decl)); - tree new_id; - unsigned int ccvt = ix86_get_callcvt (TREE_TYPE (decl)); - - if ((ccvt & IX86_CALLCVT_STDCALL) != 0) - { - if (TARGET_RTD) - /* If we are using -mrtd emit undecorated symbol and let linker - do the proper resolving. */ - return NULL_TREE; - new_id = gen_stdcall_or_fastcall_decoration (decl, id, '_'); - } - else if ((ccvt & IX86_CALLCVT_FASTCALL) != 0) - new_id = gen_stdcall_or_fastcall_decoration (decl, id, FASTCALL_PREFIX); - else if ((ccvt & IX86_CALLCVT_REGPARM) != 0 - && (new_id = lookup_attribute ("regparm", type_attributes))) - new_id = gen_regparm_prefix (decl, id, - TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (new_id)))); - else - new_id = NULL_TREE; - - return new_id; -} - -/* This is used as a target hook to modify the DECL_ASSEMBLER_NAME - in the language-independent default hook - langhooks.c:lhd_set_decl_assembler_name () - and in cp/mangle.c:mangle_decl (). */ -tree -i386_nlm_mangle_decl_assembler_name (tree decl, tree id) -{ - tree new_id = TREE_CODE (decl) == FUNCTION_DECL - ? i386_nlm_maybe_mangle_decl_assembler_name (decl, id) - : NULL_TREE; - - return (new_id ? new_id : id); -} - -void -i386_nlm_encode_section_info (tree decl, rtx rtl, int first) -{ - default_encode_section_info (decl, rtl, first); - - if (TREE_CODE (decl) == FUNCTION_DECL - /* Do not change the identifier if a verbatim asmspec - or if stdcall suffix already added. */ - && *IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)) != '*' - && !strchr (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), '@') - /* FIXME: Imported stdcall names are not modified by the Ada frontend. - Check and decorate the RTL name now. */ - && strcmp (lang_hooks.name, "GNU Ada") == 0) - { - rtx symbol = XEXP (rtl, 0); - tree new_id; - tree old_id = DECL_ASSEMBLER_NAME (decl); - - gcc_assert (GET_CODE (symbol) == SYMBOL_REF); - - if ((new_id = i386_nlm_maybe_mangle_decl_assembler_name (decl, old_id))) - XSTR (symbol, 0) = IDENTIFIER_POINTER (new_id); - } -} - -/* Strip the stdcall/fastcall/regparm pre-/suffix. */ - -const char * -i386_nlm_strip_name_encoding (const char *str) -{ - const char *name = default_strip_name_encoding (str); - - if (*str != '*' && (*name == '_' || *name == '@')) - { - const char *p = strchr (name + 1, '@'); - - if (p) - { - ++name; - if (ISDIGIT (p[1])) - name = ggc_alloc_string (name, p - name); - else - { - gcc_assert (ISDIGIT (*name)); - name++; - gcc_assert (name == p); - } - } - } - return name; -} diff --git a/gcc/config/i386/netware.h b/gcc/config/i386/netware.h deleted file mode 100644 index f377fb5..0000000 --- a/gcc/config/i386/netware.h +++ /dev/null @@ -1,175 +0,0 @@ -/* Core target definitions for GCC for Intel 80x86 running Netware. - and using dwarf for the debugging format. - Copyright (C) 1993, 1994, 2004, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. - - Written by David V. Henkel-Wallace (gumby@cygnus.com) - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#undef CPP_SPEC -#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - -#undef ASM_SPEC -#define ASM_SPEC "" - -#undef LIB_SPEC -#define LIB_SPEC "" - -/* Kinda useless, but what the hell */ -#undef LINK_SPEC -#define LINK_SPEC "%{h*} %{v:-V}" - -#undef STARTFILE_SPEC -#define STARTFILE_SPEC "" - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC "" - -#undef RELATIVE_PREFIX_NOT_LINKDIR -#undef LIBGCC_SPEC - -#define TARGET_OS_CPP_BUILTINS() \ - do \ - { \ - builtin_define_std ("IAPX386"); \ - builtin_define ("_M_IX86=300"); \ - builtin_define ("__netware__"); \ - builtin_assert ("system=netware"); \ - builtin_define ("__ELF__"); \ - builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ - builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ - builtin_define ("__fastcall=__attribute__((__fastcall__))"); \ - if (!flag_iso) \ - { \ - builtin_define ("_cdecl=__attribute__((__cdecl__))"); \ - builtin_define ("_stdcall=__attribute__((__stdcall__))"); \ - builtin_define ("_fastcall=__attribute__((__fastcall__))"); \ - } \ - } \ - while (0) - -#undef TARGET_CPU_DEFAULT -#define TARGET_CPU_DEFAULT TARGET_CPU_DEFAULT_pentium4 - -/* By default, target has a 80387, uses IEEE compatible arithmetic, - returns float values in the 387, and uses MSVC bit field layout. */ -#undef TARGET_SUBTARGET_DEFAULT -#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | \ - MASK_FLOAT_RETURNS | MASK_ALIGN_DOUBLE | MASK_MS_BITFIELD_LAYOUT) - -/* Don't allow flag_pic to propagate since invalid relocations will - result otherwise. */ -#define SUBTARGET_OVERRIDE_OPTIONS \ -do { \ - if (flag_pic) \ - { \ - error ("-fPIC and -fpic are not supported for this target"); \ - flag_pic = 0; \ - } \ -} while (0) - -#undef MATH_LIBRARY -#define MATH_LIBRARY "" - -/* Align doubles and long-longs in structures on qword boundaries. */ -#undef BIGGEST_FIELD_ALIGNMENT -#define BIGGEST_FIELD_ALIGNMENT 64 - -#undef DEFAULT_PCC_STRUCT_RETURN -#define DEFAULT_PCC_STRUCT_RETURN 0 - -/* Implicit arguments pointing to aggregate return values are to be - removed by the caller. */ -#undef KEEP_AGGREGATE_RETURN_POINTER -#define KEEP_AGGREGATE_RETURN_POINTER 1 - -#undef ASM_COMMENT_START -#define ASM_COMMENT_START "#" - -#undef DBX_REGISTER_NUMBER -#define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n]) - -/* Default structure packing is 1-byte. */ -#define TARGET_DEFAULT_PACK_STRUCT 1 - -#undef SIZE_TYPE -#define SIZE_TYPE "unsigned int" - -#undef PTRDIFF_TYPE -#define PTRDIFF_TYPE "int" - -#undef WCHAR_TYPE -#define WCHAR_TYPE "short unsigned int" - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 16 - -#undef WINT_TYPE -#define WINT_TYPE "int" - -/* A C statement (sans semicolon) to output to the stdio stream - FILE the assembler definition of uninitialized global DECL named - NAME whose size is SIZE bytes and alignment is ALIGN bytes. - Try to use asm_output_aligned_bss to implement this macro. */ - -#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ - asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) - -/* Handle special EH pointer encodings. Absolute, pc-relative, and - indirect are handled automatically. */ -#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \ - do { \ - if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \ - { \ - fputs (ASM_LONG, FILE); \ - assemble_name (FILE, XSTR (ADDR, 0)); \ - fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \ - goto DONE; \ - } \ - } while (0) - -/* there is no TLS support in NLMs/on NetWare */ -#undef HAVE_AS_TLS - -#define HAS_INIT_SECTION -#undef INIT_SECTION_ASM_OP - -#define CTOR_LISTS_DEFINED_EXTERNALLY - -#undef READONLY_DATA_SECTION_ASM_OP -#define READONLY_DATA_SECTION_ASM_OP ".section\t.rodata" - -/* Define this macro if references to a symbol must be treated - differently depending on something about the variable or - function named by the symbol (such as what section it is in). - - On i386 running NetWare, modify the assembler name with an underscore (_) - or atsign (@) prefix and a suffix consisting of an atsign (@) followed by - a string of digits that represents the number of bytes of arguments passed - to the function, if it has the attribute STDCALL. Alternatively, if it has - the REGPARM attribute, prefix it with an underscore (_), a digit - representing the number of registers used, and an atsign (@). */ -void i386_nlm_encode_section_info (tree, rtx, int); -extern tree i386_nlm_mangle_decl_assembler_name (tree, tree); -const char *i386_nlm_strip_name_encoding (const char *); -#define SUBTARGET_ENCODE_SECTION_INFO i386_nlm_encode_section_info -#define TARGET_MANGLE_DECL_ASSEMBLER_NAME i386_nlm_mangle_decl_assembler_name -#undef TARGET_STRIP_NAME_ENCODING -#define TARGET_STRIP_NAME_ENCODING i386_nlm_strip_name_encoding - -#define TARGET_POSIX_IO diff --git a/gcc/config/i386/netware.opt b/gcc/config/i386/netware.opt deleted file mode 100644 index e1d903a..0000000 --- a/gcc/config/i386/netware.opt +++ /dev/null @@ -1,33 +0,0 @@ -; Netware options. - -; Copyright (C) 2011 -; Free Software Foundation, Inc. -; -; This file is part of GCC. -; -; GCC is free software; you can redistribute it and/or modify it under -; the terms of the GNU General Public License as published by the Free -; Software Foundation; either version 3, or (at your option) any later -; version. -; -; GCC is distributed in the hope that it will be useful, but WITHOUT ANY -; WARRANTY; without even the implied warranty of MERCHANTABILITY or -; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -; for more details. -; -; You should have received a copy of the GNU General Public License -; along with GCC; see the file COPYING3. If not see -; <http://www.gnu.org/licenses/>. - -; See the GCC internals manual (options.texi) for a description of -; this file's format. - -; Please try to keep this file in ASCII collating order. - -posix -Driver - -pthread -Driver - -; This comment is to ensure we retain the blank line above. diff --git a/gcc/config/i386/nwld.c b/gcc/config/i386/nwld.c deleted file mode 100644 index 05d1a92..0000000 --- a/gcc/config/i386/nwld.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Subroutines for insn-output.c for NetWare. - Contributed by Jan Beulich (jbeulich@novell.com) - Copyright (C) 2004, 2007, 2010 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "rtl.h" -#include "regs.h" -#include "hard-reg-set.h" -#include "output.h" -#include "tree.h" -#include "flags.h" -#include "tm_p.h" -#include "diagnostic-core.h" - -void -nwld_named_section_asm_out_constructor (rtx symbol, int priority) -{ -#if !SUPPORTS_INIT_PRIORITY - const char section[] = ".ctors"TARGET_SUB_SECTION_SEPARATOR; -#else - char section[20]; - - sprintf (section, - ".ctors"TARGET_SUB_SECTION_SEPARATOR"%.5u", - /* Invert the numbering so the linker puts us in the proper - order; constructors are run from right to left, and the - linker sorts in increasing order. */ - MAX_INIT_PRIORITY - priority); -#endif - - switch_to_section (get_section (section, 0, NULL)); - assemble_align (POINTER_SIZE); - assemble_integer (symbol, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE, 1); -} - -void -nwld_named_section_asm_out_destructor (rtx symbol, int priority) -{ -#if !SUPPORTS_INIT_PRIORITY - const char section[] = ".dtors"TARGET_SUB_SECTION_SEPARATOR; -#else - char section[20]; - - sprintf (section, ".dtors"TARGET_SUB_SECTION_SEPARATOR"%.5u", - /* Invert the numbering so the linker puts us in the proper - order; destructors are run from left to right, and the - linker sorts in increasing order. */ - MAX_INIT_PRIORITY - priority); -#endif - - switch_to_section (get_section (section, 0, NULL)); - assemble_align (POINTER_SIZE); - assemble_integer (symbol, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE, 1); -} diff --git a/gcc/config/i386/nwld.h b/gcc/config/i386/nwld.h deleted file mode 100644 index 6d8e54f..0000000 --- a/gcc/config/i386/nwld.h +++ /dev/null @@ -1,69 +0,0 @@ -/* nwld.h -- defines to be used when targeting GCC for some generic NetWare - system while using the Novell linker. - Copyright (C) 2004, 2007, 2010, 2011 Free Software Foundation, Inc. - - Written by Jan Beulich (jbeulich@novell.com) - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#undef LIB_SPEC -#define LIB_SPEC "-lc --def-file libc.def%s" - -#undef LIBGCC_SPEC -#define LIBGCC_SPEC "-lgcc %{!static-libgcc:--def-file libgcc.def%s}" - -#undef LINKER_NAME -#define LINKER_NAME "nwld" - -#undef LINK_SPEC -#define LINK_SPEC "--format:NLM --extensions:GNU" \ - " %{static:%{!nostdlib:%{!nodefaultlibs:%estatic linking is not supported\n}}}" - -#undef LINK_GCC_C_SEQUENCE_SPEC -#define LINK_GCC_C_SEQUENCE_SPEC "%L %G" - -/* In order to permit the linker to derive the output filename from the first - input file, put the common startup code as the last object. */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC "" - -#undef ENDFILE_SPEC -#define ENDFILE_SPEC "crt0%O%s ../imports/%{!posix:libc}%{posix:posix}pre.gcc%O%s" \ - " --def-file %{!posix:libc}%{posix:posix}pre.def%s" - -#define DRIVER_SELF_SPECS "%{!static-libgcc:-shared-libgcc}" - -#define TARGET_SUB_SECTION_SEPARATOR "$" - -void nwld_named_section_asm_out_constructor (rtx, int); -void nwld_named_section_asm_out_destructor (rtx, int); - -#define TARGET_ASM_CONSTRUCTOR nwld_named_section_asm_out_constructor -#define TARGET_ASM_DESTRUCTOR nwld_named_section_asm_out_destructor - -#define SUBSUBTARGET_OVERRIDE_OPTIONS \ -do { \ - /* XXX This can be enabled once gas output meets nwld's needs. */ \ - /* if (!flag_unwind_tables && !flag_exceptions) */ \ - flag_dwarf2_cfi_asm = 0; \ -} while (0) - -#undef EH_FRAME_SECTION_NAME -#define EH_FRAME_SECTION_NAME ".eh_frame"TARGET_SUB_SECTION_SEPARATOR - -/* nwld does not currently support stabs debug info */ -#undef DBX_DEBUGGING_INFO diff --git a/gcc/config/i386/t-netware b/gcc/config/i386/t-netware deleted file mode 100644 index 405c98f..0000000 --- a/gcc/config/i386/t-netware +++ /dev/null @@ -1,10 +0,0 @@ -TARGET_LIBGCC2_CFLAGS = -mpreferred-stack-boundary=2 -fomit-frame-pointer - -netware.o: $(srcdir)/config/i386/netware.c $(RTL_H) $(TREE_H) $(CONFIG_H) $(TM_P_H) - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(srcdir)/config/i386/netware.c - -# We don't need some of GCC's own include files. -USER_H = $(srcdir)/ginclude/stdarg.h \ - $(srcdir)/ginclude/varargs.h \ - $(EXTRA_HEADERS) $(LANG_EXTRA_HEADERS) diff --git a/gcc/config/i386/t-nwld b/gcc/config/i386/t-nwld deleted file mode 100644 index ecd1a3b..0000000 --- a/gcc/config/i386/t-nwld +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011 -# Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GCC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# <http://www.gnu.org/licenses/>. - -nwld.o: $(srcdir)/config/i386/nwld.c $(RTL_H) $(TREE_H) $(CONFIG_H) $(TM_P_H) - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(srcdir)/config/i386/nwld.c |