From: Rainer Orth Date: Mon, 18 Jul 2011 11:04:18 +0000 (+0000) Subject: re PR debug/23205 ([C++/unit-at-a-time] stabs debug info omitted for global const... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e44dbbe18b497d775d0b7efab7fcd08486f1a1fa;p=gcc.git re PR debug/23205 ([C++/unit-at-a-time] stabs debug info omitted for global const variables) toplevel: * configure: Regenerate. config: * elf.m4 (target_elf): Remove *-netware*. contrib: * config-list.mk (i586-netware): Remove. (.PHONY): Remove make-script-dir dependency. (make-script-dir): Remove. ($(LIST)): Remove make-script-dir dependency. gcc: * config.gcc (i[3456x]86-*-netware*): Remove. * gthr-nks.h: Remove. * configure.ac (enable_threads): Remove nks. * configure: Regenerate. * config/i386/i386.c (ix86_encode_section_info): Remove netware reference. * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove reference. * config/i386/netware-libgcc.c, gcc/config/i386/netware-libgcc.def, gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, gcc/config/i386/netware.h, gcc/config/i386/netware.opt, gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove * doc/extend.texi (Function Attributes, callee_pop_aggregate_return): Remove i?86-netware reference. * doc/install.texi (Configuration, --enable-threads): Remove nks. gcc/testsuite: * g++.dg/ext/bitfield2.C: Remove i?86-*-netware support. * g++.dg/ext/bitfield3.C: Likewise. * g++.dg/ext/bitfield4.C: Likewise. * g++.dg/ext/bitfield5.C: Likewise. * g++.dg/other/PR23205.C: Remove *-*-netware* support. * g++.dg/other/pr23205-2.C: Likewise. * gcc.c-torture/compile/20001109-1.c: Remove dg-xfail-if. * gcc.c-torture/compile/20001109-2.c: Likewise. * gcc.dg/20040813-1.c: Remove *-*-netware* support. * gcc.dg/bitfld-15.c: Remove i?86-*-netware support. * gcc.dg/bitfld-16.c: Likewise. * gcc.dg/bitfld-17.c: Likewise. * gcc.dg/bitfld-18.c: Likewise. * gcc.dg/builtins-config.h: Remove Netware support. * gcc.dg/cdce1.c: Remove *-*-netware* support. Update line number. * gcc.dg/cdce2.c: Likewise. * gcc.dg/cpp/assert4.c: Remove netware support. * gcc.dg/debug/pr35154.c: Remove *-*-netware* support. * gfortran.dg/debug/pr35154-stabs.f: Remove *-*-netware* support. * lib/target-supports.exp (check_visibility_available): Remove NetWare support. (check_profiling_available): Likewise. libgcc: * config.host (i[3456x]86-*-netware*): Remove. * config/i386/netware-crt0.c, config/i386/t-nwld, config/i386/t-slibgcc-nwld: Remove. libstdc++-v3: * crossconfig.m4 (*-netware): Remove. * configure: Regenerate. From-SVN: r176391 --- diff --git a/ChangeLog b/ChangeLog index 700dca9f95b..384c521ea96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-07-18 Rainer Orth + + * configure: Regenerate. + 2011-07-18 Richard Guenther * MAINTAINERS (Global Reviewers): Add myself. diff --git a/config/ChangeLog b/config/ChangeLog index f25c43a17b6..90f5238ecbe 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2011-07-18 Rainer Orth + + * elf.m4 (target_elf): Remove *-netware*. + 2011-07-06 Uros Bizjak * mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee. diff --git a/config/elf.m4 b/config/elf.m4 index 007006eaea2..da051cbe61c 100644 --- a/config/elf.m4 +++ b/config/elf.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2010 Free Software Foundation, Inc. +dnl Copyright (C) 2010, 2011 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program @@ -14,7 +14,7 @@ AC_REQUIRE([AC_CANONICAL_TARGET]) target_elf=no case $target in *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ - *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \ + *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ alpha*-dec-osf* | *-interix* | hppa[[12]]*-*-hpux*) target_elf=no ;; diff --git a/configure b/configure index 988bff7cdb8..0097ab1ccb4 100755 --- a/configure +++ b/configure @@ -6009,7 +6009,7 @@ fi target_elf=no case $target in *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ - *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \ + *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ alpha*-dec-osf* | *-interix* | hppa[12]*-*-hpux*) target_elf=no ;; diff --git a/contrib/ChangeLog b/contrib/ChangeLog index a69f810f022..e68679dd1ac 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,10 @@ +2011-07-18 Rainer Orth + + * config-list.mk (i586-netware): Remove. + (.PHONY): Remove make-script-dir dependency. + (make-script-dir): Remove. + ($(LIST)): Remove make-script-dir dependency. + 2011-07-15 Bernd Schmidt * gcc_update: Add C6X generated files. diff --git a/contrib/config-list.mk b/contrib/config-list.mk index b421ccca25f..23b37160136 100644 --- a/contrib/config-list.mk +++ b/contrib/config-list.mk @@ -27,7 +27,7 @@ LIST = alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \ i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \ i686-netbsdelf9 i686-knetbsd-gnu i686-openbsd i686-openbsd3.0 \ i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \ - i686-lynxos i586-netwareOPT-with-ld=SCRIPTSnwld i686-nto-qnx \ + i686-lynxos i686-nto-qnx \ i686-rtems i686-solaris2.10 i686-wrs-vxworks \ i686-wrs-vxworksae \ i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \ @@ -72,7 +72,7 @@ LOGFILES = $(patsubst %,log/%-make.out,$(LIST)) all: $(LOGFILES) config: $(LIST) -.PHONY: make-log-dir make-script-dir all config +.PHONY: make-log-dir all config empty= @@ -81,14 +81,7 @@ empty= make-log-dir: ../gcc/MAINTAINERS mkdir log -# The 'ix86-netware --with-ld=nwld' configuration needs a nwld executable to -# configure. See PR47104. -make-script-dir: - mkdir scripts - echo ld $* > scripts/nwld - chmod u+x scripts/nwld - -$(LIST): make-log-dir make-script-dir +$(LIST): make-log-dir -mkdir $@ (cd $@ && \ ../../gcc/configure \ diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c7a7c89f569..6026f4ac364 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,27 @@ +2011-07-18 Rainer Orth + + * config.gcc (i[3456x]86-*-netware*): Remove. + + * gthr-nks.h: Remove. + * configure.ac (enable_threads): Remove nks. + * configure: Regenerate. + + * config/i386/i386.c (ix86_encode_section_info): Remove netware + reference. + * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove + reference. + + * config/i386/netware-libgcc.c, + gcc/config/i386/netware-libgcc.def, + gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, + gcc/config/i386/netware.h, gcc/config/i386/netware.opt, + gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, + gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove + + * doc/extend.texi (Function Attributes, + callee_pop_aggregate_return): Remove i?86-netware reference. + * doc/install.texi (Configuration, --enable-threads): Remove nks. + 2011-07-17 John David Anglin PR target/49746 diff --git a/gcc/config.gcc b/gcc/config.gcc index 0ca4f788e9d..109a267bc7c 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1368,25 +1368,6 @@ i[34567]86-*-lynxos*) gnu_ld=yes gas=yes ;; -i[3456x]86-*-netware*) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h tm-dwarf2.h i386/netware.h" - tmake_file="${tmake_file} i386/t-netware" - extra_objs=netware.o - extra_options="${extra_options} i386/netware.opt" - case /${with_ld} in - */nwld) - extra_objs="$extra_objs nwld.o" - tm_file="${tm_file} i386/nwld.h" - tmake_file="${tmake_file} i386/t-nwld t-slibgcc-dummy" - ;; - esac - case x${enable_threads} in - x | xyes | xposix) thread_file='posix';; - xnks) thread_file='nks';; - xno) ;; - *) echo 'Unknown thread configuration for NetWare' >&2; exit 1;; - esac - ;; i[34567]86-*-nto-qnx*) tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h" extra_options="${extra_options} i386/nto.opt" diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f643efcd58f..3187f856609 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 f532bad486b..4c7df9d1b1d 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 . */ #define MS_AGGREGATE_RETURN 0 -/* This is overridden by . */ #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 0925d872aa5..00000000000 --- 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 -. */ - -#include -#include -#include -#include - -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 a545631b111..00000000000 --- 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 309cf754943..00000000000 --- 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 5a0f9d5de74..00000000000 --- 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 -. */ - -#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 f377fb5dc94..00000000000 --- 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 -. */ - -#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 e1d903a2f7f..00000000000 --- 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 -; . - -; 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 05d1a92d1d7..00000000000 --- 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 -. */ - -#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 6d8e54ff990..00000000000 --- 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 -. */ - -#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 405c98f6a8d..00000000000 --- 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 ecd1a3bfccc..00000000000 --- 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 -# . - -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 diff --git a/gcc/configure b/gcc/configure index 0d6b7108d08..0295fc67dfe 100755 --- a/gcc/configure +++ b/gcc/configure @@ -10899,7 +10899,7 @@ case ${enable_threads} in # default target_thread_file='single' ;; - aix | dce | lynx | mipssde | nks | posix | posix95 | rtems | \ + aix | dce | lynx | mipssde | posix | posix95 | rtems | \ single | tpf | vxworks | win32) target_thread_file=${enable_threads} ;; diff --git a/gcc/configure.ac b/gcc/configure.ac index c2163bf70d5..54b6c9d88cd 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1340,7 +1340,7 @@ case ${enable_threads} in # default target_thread_file='single' ;; - aix | dce | lynx | mipssde | nks | posix | posix95 | rtems | \ + aix | dce | lynx | mipssde | posix | posix95 | rtems | \ single | tpf | vxworks | win32) target_thread_file=${enable_threads} ;; diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 7cbd68ea906..dcbf29f7870 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -2836,11 +2836,8 @@ On 32-bit i?86-*-* targets, you can control by those attribute for aggregate return in memory, if the caller is responsible to pop the hidden pointer together with the rest of the arguments - @var{number} equal to zero -, or if the callee is responsible to pop hidden pointer - @var{number} -equal to one. - -For i?86-netware, the caller pops the stack for the hidden arguments pointing -to aggregate return value. This differs from the default i386 ABI which assumes -that the callee pops the stack for hidden pointer. +equal to one. The default i386 ABI assumes that the callee pops the +stack for hidden pointer. @item ms_hook_prologue @cindex @code{ms_hook_prologue} attribute diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 811bf3d7ccd..9918c4f5b0f 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1141,8 +1141,6 @@ DCE thread support. LynxOS thread support. @item mipssde MIPS SDE thread support. -@item nks -Novell Kernel Services thread support. @item no This is an alias for @samp{single}. @item posix diff --git a/gcc/gthr-nks.h b/gcc/gthr-nks.h deleted file mode 100644 index 311c6904b1a..00000000000 --- a/gcc/gthr-nks.h +++ /dev/null @@ -1,397 +0,0 @@ -/* Threads compatibility routines for libgcc2 and libobjc. */ -/* Compile this one with gcc. */ -/* Copyright (C) 2002, 2003, 2004, 2008, 2009 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. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef GCC_GTHR_NKS_H -#define GCC_GTHR_NKS_H - -/* NKS threads specific definitions. - Easy, since the interface is mostly one-to-one mapping. */ - -#define __GTHREADS 1 - -#define NKS_NO_INLINE_FUNCS -#include -#include - -typedef NXKey_t __gthread_key_t; -typedef NXMutex_t *__gthread_mutex_t; -typedef NXMutex_t *__gthread_recursive_mutex_t; - -#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function -#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function - -static inline int -__gthread_active_p (void) -{ - return 1; -} - -#ifdef _LIBOBJC - -/* This is the config.h file in libobjc/ */ -#include - -#ifdef HAVE_SCHED_H -# include -#endif - -/* Key structure for maintaining thread specific storage */ -static NXKey_t _objc_thread_storage; - -/* Backend initialization functions */ - -/* Initialize the threads subsystem. */ -static inline int -__gthread_objc_init_thread_system (void) -{ - /* Initialize the thread storage key. */ - if (NXKeyCreate (NULL, NULL, &_objc_thread_storage) == 0) - return 0; - return -1; -} - -/* Close the threads subsystem. */ -static inline int -__gthread_objc_close_thread_system (void) -{ - if (NXKeyDelete (_objc_thread_storage) == 0) - return 0; - return -1; -} - -/* Backend thread functions */ - -/* Create a new thread of execution. */ -static inline objc_thread_t -__gthread_objc_thread_detach (void (*func)(void *), void *arg) -{ - objc_thread_t thread_id; - NXContext_t context; - NXThreadId_t new_thread_handle; - int err; - - if ((context = NXContextAlloc (func, arg, NX_PRIO_MED, 0, 0, 0, &err)) == NULL) - thread_id = NULL; - else if (NXThreadCreate (context, NX_THR_DETACHED, &new_thread_handle) == 0) - thread_id = (objc_thread_t) new_thread_handle; - else { - NXContextFree (context); - thread_id = NULL; - } - - return thread_id; -} - -/* Set the current thread's priority. */ -static inline int -__gthread_objc_thread_set_priority (int priority) -{ - if (NXThreadSetPriority (NXThreadGetId (), priority) == 0) - return 0; - return -1; -} - -/* Return the current thread's priority. */ -static inline int -__gthread_objc_thread_get_priority (void) -{ - int priority; - - if (NXThreadGetPriority (NXThreadGetId (), &priority) == 0) - return priority; - return -1; -} - -/* Yield our process time to another thread. */ -static inline void -__gthread_objc_thread_yield (void) -{ - NXThreadYield (); -} - -/* Terminate the current thread. */ -static inline int -__gthread_objc_thread_exit (void) -{ - /* exit the thread */ - NXThreadExit (&__objc_thread_exit_status); - - /* Failed if we reached here */ - return -1; -} - -/* Returns an integer value which uniquely describes a thread. */ -static inline objc_thread_t -__gthread_objc_thread_id (void) -{ - (objc_thread_t) NXThreadGetId (); -} - -/* Sets the thread's local storage pointer. */ -static inline int -__gthread_objc_thread_set_data (void *value) -{ - return NXKeySetValue (_objc_thread_storage, value); -} - -/* Returns the thread's local storage pointer. */ -static inline void * -__gthread_objc_thread_get_data (void) -{ - void *value; - - if (NXKeyGetValue (_objc_thread_storage, &value) == 0) - return value; - return NULL; -} - -/* Backend mutex functions */ - -/* Allocate a mutex. */ -static inline int -__gthread_objc_mutex_allocate (objc_mutex_t mutex) -{ - static const NX_LOCK_INFO_ALLOC (info, "GNU ObjC", 0); - - if ((mutex->backend = NXMutexAlloc (0, 0, &info)) == NULL) - return 0; - return -1; -} - -/* Deallocate a mutex. */ -static inline int -__gthread_objc_mutex_deallocate (objc_mutex_t mutex) -{ - while (NXMutexIsOwned ((NXMutex_t *)mutex->backend)) - NXUnlock ((NXMutex_t *)mutex->backend); - if (NXMutexFree ((NXMutex_t *)mutex->backend) != 0) - return -1; - mutex->backend = NULL; - return 0; -} - -/* Grab a lock on a mutex. */ -static inline int -__gthread_objc_mutex_lock (objc_mutex_t mutex) -{ - return NXLock ((NXMutex_t *)mutex->backend); -} - -/* Try to grab a lock on a mutex. */ -static inline int -__gthread_objc_mutex_trylock (objc_mutex_t mutex) -{ - if (!NXTryLock ((NXMutex_t *)mutex->backend)) - return -1; - return 0; -} - -/* Unlock the mutex */ -static inline int -__gthread_objc_mutex_unlock (objc_mutex_t mutex) -{ - return NXUnlock ((NXMutex_t *)mutex->backend); -} - -/* Backend condition mutex functions */ - -/* Allocate a condition. */ -static inline int -__gthread_objc_condition_allocate (objc_condition_t condition) -{ - condition->backend = NXCondAlloc (NULL); - if (condition->backend == NULL) - return -1; - - return 0; -} - -/* Deallocate a condition. */ -static inline int -__gthread_objc_condition_deallocate (objc_condition_t condition) -{ - if (NXCondFree ((NXCond_t *)condition->backend) != 0) - return -1; - condition->backend = NULL; - return 0; -} - -/* Wait on the condition */ -static inline int -__gthread_objc_condition_wait (objc_condition_t condition, objc_mutex_t mutex) -{ - return NXCondWait ((NXCond_t *)condition->backend, (NXMutex_t *)mutex->backend); -} - -/* Wake up all threads waiting on this condition. */ -static inline int -__gthread_objc_condition_broadcast (objc_condition_t condition) -{ - return NXCondBroadcast ((NXCond_t *)condition->backend); -} - -/* Wake up one thread waiting on this condition. */ -static inline int -__gthread_objc_condition_signal (objc_condition_t condition) -{ - return NXCondSignal ((NXCond_t *)condition->backend); -} - -#else /* _LIBOBJC */ - -#if defined(__cplusplus) -# include -/* The remaining conditions here are temporary until there is - an application accessible atomic operations API set... */ -#elif defined(_M_IA64) || defined(__ia64__) -# include <../libstdc++-v3/config/cpu/ia64/bits/atomicity.h> -#elif defined(_M_IX86) || defined(__i486__) -# include <../libstdc++-v3/config/cpu/i486/bits/atomicity.h> -#elif defined(_M_AMD64) || defined(__x86_64__) -# include <../libstdc++-v3/config/cpu/x86-64/bits/atomicity.h> -#endif - -typedef volatile long __gthread_once_t; - -#define __GTHREAD_ONCE_INIT 0 - -static inline int -__gthread_once (__gthread_once_t *__once, void (*__func) (void)) -{ - if (__compare_and_swap (__once, 0, 1)) - { - __func (); - *__once |= 2; - } - else - { - while (!(*__once & 2)) - NXThreadYield (); - } - return 0; -} - -static inline int -__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) -{ - return NXKeyCreate (__dtor, NULL, __key); -} - -static inline int -__gthread_key_dtor (__gthread_key_t __key, void *__ptr) -{ - /* Just reset the key value to zero. */ - if (__ptr) - return NXKeySetValue (__key, NULL); - return 0; -} - -static inline int -__gthread_key_delete (__gthread_key_t __key) -{ - return NXKeyDelete (__key); -} - -static inline void * -__gthread_getspecific (__gthread_key_t __key) -{ - void *__value; - - if (NXKeyGetValue (__key, &__value) == 0) - return __value; - return NULL; -} - -static inline int -__gthread_setspecific (__gthread_key_t __key, const void *__ptr) -{ - return NXKeySetValue (__key, (void *)__ptr); -} - -static inline void -__gthread_mutex_init_function (__gthread_mutex_t *__mutex) -{ - static const NX_LOCK_INFO_ALLOC (__info, "GTHREADS", 0); - - *__mutex = NXMutexAlloc (0, 0, &__info); -} - -static inline int -__gthread_mutex_destroy (__gthread_mutex_t * UNUSED(__mutex)) -{ - return 0; -} - -static inline int -__gthread_mutex_lock (__gthread_mutex_t *__mutex) -{ - return NXLock (*__mutex); -} - -static inline int -__gthread_mutex_trylock (__gthread_mutex_t *__mutex) -{ - if (NXTryLock (*__mutex)) - return 0; - return -1; -} - -static inline int -__gthread_mutex_unlock (__gthread_mutex_t *__mutex) -{ - return NXUnlock (*__mutex); -} - -static inline void -__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex) -{ - static const NX_LOCK_INFO_ALLOC (__info, "GTHREADS", 0); - - *__mutex = NXMutexAlloc (NX_MUTEX_RECURSIVE, 0, &__info); -} - -static inline int -__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) -{ - return NXLock (*__mutex); -} - -static inline int -__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) -{ - if (NXTryLock (*__mutex)) - return 0; - return -1; -} - -static inline int -__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) -{ - return NXUnlock (*__mutex); -} - -#endif /* _LIBOBJC */ - -#endif /* not GCC_GTHR_NKS_H */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fbb09d9199c..65125bd6494 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,29 @@ +2011-07-18 Rainer Orth + + * g++.dg/ext/bitfield2.C: Remove i?86-*-netware support. + * g++.dg/ext/bitfield3.C: Likewise. + * g++.dg/ext/bitfield4.C: Likewise. + * g++.dg/ext/bitfield5.C: Likewise. + * g++.dg/other/PR23205.C: Remove *-*-netware* support. + * g++.dg/other/pr23205-2.C: Likewise. + * gcc.c-torture/compile/20001109-1.c: Remove dg-xfail-if. + * gcc.c-torture/compile/20001109-2.c: Likewise. + * gcc.dg/20040813-1.c: Remove *-*-netware* support. + * gcc.dg/bitfld-15.c: Remove i?86-*-netware support. + * gcc.dg/bitfld-16.c: Likewise. + * gcc.dg/bitfld-17.c: Likewise. + * gcc.dg/bitfld-18.c: Likewise. + * gcc.dg/builtins-config.h: Remove Netware support. + * gcc.dg/cdce1.c: Remove *-*-netware* support. Update line number. + * gcc.dg/cdce2.c: Likewise. + * gcc.dg/cpp/assert4.c: Remove netware support. + * gcc.dg/debug/pr35154.c: Remove *-*-netware* support. + * gfortran.dg/debug/pr35154-stabs.f: Remove *-*-netware* support. + + * lib/target-supports.exp (check_visibility_available): Remove + NetWare support. + (check_profiling_available): Likewise. + 2011-07-18 Ira Rosen * gcc.dg/vect/pr49038.c: Run only on targets that support mmap. diff --git a/gcc/testsuite/g++.dg/ext/bitfield2.C b/gcc/testsuite/g++.dg/ext/bitfield2.C index c288cec7c33..09e0352f1d0 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield2.C +++ b/gcc/testsuite/g++.dg/ext/bitfield2.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* Remove pedantic. Allow the GCC extension to use char for bitfields. */ /* { dg-options "" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-netware i?86-*-mingw* x86_64-*-mingw* } } } */ +/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t /* { dg-message "note: offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ { diff --git a/gcc/testsuite/g++.dg/ext/bitfield3.C b/gcc/testsuite/g++.dg/ext/bitfield3.C index f9fb78cceee..75d290f00e1 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield3.C +++ b/gcc/testsuite/g++.dg/ext/bitfield3.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-netware i?86-*-mingw* x86_64-*-mingw* } } } */ +/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t { diff --git a/gcc/testsuite/g++.dg/ext/bitfield4.C b/gcc/testsuite/g++.dg/ext/bitfield4.C index 8562686d6eb..d707376e804 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield4.C +++ b/gcc/testsuite/g++.dg/ext/bitfield4.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-netware i?86-*-mingw* x86_64-*-mingw* } } } */ +/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t /* { dg-message "note: offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ { diff --git a/gcc/testsuite/g++.dg/ext/bitfield5.C b/gcc/testsuite/g++.dg/ext/bitfield5.C index 1d862d76975..748669543c1 100644 --- a/gcc/testsuite/g++.dg/ext/bitfield5.C +++ b/gcc/testsuite/g++.dg/ext/bitfield5.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-netware i?86-*-mingw* x86_64-*-mingw* } } } */ +/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t { diff --git a/gcc/testsuite/g++.dg/other/PR23205.C b/gcc/testsuite/g++.dg/other/PR23205.C index 27353544482..338079fbd93 100644 --- a/gcc/testsuite/g++.dg/other/PR23205.C +++ b/gcc/testsuite/g++.dg/other/PR23205.C @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks } { "*" } { "" } } */ +/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks } { "*" } { "" } } */ /* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types" } */ const int foobar = 4; diff --git a/gcc/testsuite/g++.dg/other/pr23205-2.C b/gcc/testsuite/g++.dg/other/pr23205-2.C index 608108ad9a0..a4333b38630 100644 --- a/gcc/testsuite/g++.dg/other/pr23205-2.C +++ b/gcc/testsuite/g++.dg/other/pr23205-2.C @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */ +/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */ /* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types -ftoplevel-reorder" } */ const int foobar = 4; diff --git a/gcc/testsuite/gcc.c-torture/compile/20001109-1.c b/gcc/testsuite/gcc.c-torture/compile/20001109-1.c index 6e513c9563f..cce8047ae8a 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20001109-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20001109-1.c @@ -1,5 +1,3 @@ -/* This does not work on NetWare, which has a default of 1-byte alignment. */ -/* { dg-xfail-if "" { "*-*-netware*" } { "*" } { "" } } */ typedef struct _foo foo; extern foo bar; struct _foo { diff --git a/gcc/testsuite/gcc.c-torture/compile/20001109-2.c b/gcc/testsuite/gcc.c-torture/compile/20001109-2.c index 1448215c578..a23e56bd34b 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20001109-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/20001109-2.c @@ -1,5 +1,3 @@ -/* This does not work on NetWare, which has a default of 1-byte alignment. */ -/* { dg-xfail-if "" { "*-*-netware*" } { "*" } { "" } } */ extern struct foo bar; struct foo { int a; diff --git a/gcc/testsuite/gcc.dg/20040813-1.c b/gcc/testsuite/gcc.dg/20040813-1.c index fa01a530208..bf87f4172cf 100644 --- a/gcc/testsuite/gcc.dg/20040813-1.c +++ b/gcc/testsuite/gcc.dg/20040813-1.c @@ -2,7 +2,7 @@ /* Contributed by Devang Patel */ /* { dg-do compile } */ -/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } */ +/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } */ /* { dg-options "-gstabs" } */ int diff --git a/gcc/testsuite/gcc.dg/bitfld-15.c b/gcc/testsuite/gcc.dg/bitfld-15.c index 03f43f2de8c..32878d74dbc 100644 --- a/gcc/testsuite/gcc.dg/bitfld-15.c +++ b/gcc/testsuite/gcc.dg/bitfld-15.c @@ -1,7 +1,6 @@ /* { dg-do compile } */ /* Remove pedantic. Allow the GCC extension to use char for bitfields. */ /* { dg-options "" } */ -/* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ /* { dg-options "-mno-ms-bitfields -Wno-packed-bitfield-compat" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t diff --git a/gcc/testsuite/gcc.dg/bitfld-16.c b/gcc/testsuite/gcc.dg/bitfld-16.c index 5ed30f74392..75d290f00e1 100644 --- a/gcc/testsuite/gcc.dg/bitfld-16.c +++ b/gcc/testsuite/gcc.dg/bitfld-16.c @@ -1,6 +1,5 @@ /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t diff --git a/gcc/testsuite/gcc.dg/bitfld-17.c b/gcc/testsuite/gcc.dg/bitfld-17.c index 9512f5fdf2a..6dc6989df7b 100644 --- a/gcc/testsuite/gcc.dg/bitfld-17.c +++ b/gcc/testsuite/gcc.dg/bitfld-17.c @@ -1,6 +1,5 @@ /* { dg-do compile } */ /* { dg-options "" } */ -/* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ /* { dg-options "-mno-ms-bitfields -Wno-packed-bitfield-compat" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t diff --git a/gcc/testsuite/gcc.dg/bitfld-18.c b/gcc/testsuite/gcc.dg/bitfld-18.c index 067d9ae3851..748669543c1 100644 --- a/gcc/testsuite/gcc.dg/bitfld-18.c +++ b/gcc/testsuite/gcc.dg/bitfld-18.c @@ -1,6 +1,5 @@ /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ -/* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target { i?86-*-mingw* x86_64-*-mingw* } } } */ struct t diff --git a/gcc/testsuite/gcc.dg/builtins-config.h b/gcc/testsuite/gcc.dg/builtins-config.h index 49ec0dcc8e4..fc1ade677a2 100644 --- a/gcc/testsuite/gcc.dg/builtins-config.h +++ b/gcc/testsuite/gcc.dg/builtins-config.h @@ -15,8 +15,6 @@ /* AVR doesn't have the entire C99 runtime. */ #elif defined(__FreeBSD__) && (__FreeBSD__ < 9) /* FreeBSD up to version 8 lacks support for cexp and friends. */ -#elif defined(__netware__) -/* NetWare doesn't have the entire C99 runtime. */ #elif defined(__vxworks) /* VxWorks doesn't have a full C99 time. (cabs is missing, for example.) */ #elif defined(_WIN32) && !defined(__CYGWIN__) diff --git a/gcc/testsuite/gcc.dg/cdce1.c b/gcc/testsuite/gcc.dg/cdce1.c index 58a3ddfb3a9..3bd35ecb786 100644 --- a/gcc/testsuite/gcc.dg/cdce1.c +++ b/gcc/testsuite/gcc.dg/cdce1.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ -/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details" { target *-*-netware* } } */ -/* { dg-final { scan-tree-dump "cdce1.c:17: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce1.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */ /* { dg-require-effective-target large_double } */ diff --git a/gcc/testsuite/gcc.dg/cdce2.c b/gcc/testsuite/gcc.dg/cdce2.c index eebebaa2390..a461ce7ac30 100644 --- a/gcc/testsuite/gcc.dg/cdce2.c +++ b/gcc/testsuite/gcc.dg/cdce2.c @@ -1,8 +1,7 @@ /* { dg-do run } */ /* { dg-skip-if "doubles are floats" { "avr-*-*" } { "*" } { "" } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ -/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details" { target *-*-netware* } } */ -/* { dg-final { scan-tree-dump "cdce2.c:17: note: function call is shrink-wrapped into error conditions\." "cdce" } }*/ +/* { dg-final { scan-tree-dump "cdce2.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } }*/ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include diff --git a/gcc/testsuite/gcc.dg/cpp/assert4.c b/gcc/testsuite/gcc.dg/cpp/assert4.c index ff53946c6ce..a05ef130206 100644 --- a/gcc/testsuite/gcc.dg/cpp/assert4.c +++ b/gcc/testsuite/gcc.dg/cpp/assert4.c @@ -128,14 +128,6 @@ # error #endif -#if defined __netware__ -# if !#system(netware) -# error -# endif -#elif #system(netware) -# error -#endif - /* Check for #cpu and #machine assertions. */ diff --git a/gcc/testsuite/gcc.dg/debug/pr35154.c b/gcc/testsuite/gcc.dg/debug/pr35154.c index 8706c5c295a..fa658be2cbe 100644 --- a/gcc/testsuite/gcc.dg/debug/pr35154.c +++ b/gcc/testsuite/gcc.dg/debug/pr35154.c @@ -23,7 +23,7 @@ main() optb.f2 = 'D'; i_outer = 'e'; /* { dg-do compile } */ -/* { dg-skip-if "No stabs" { mmix-*-* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } */ +/* { dg-skip-if "No stabs" { mmix-*-* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } */ /* { dg-skip-if "stabs only" { *-*-* } { "*" } { "-gstabs" } } */ return 0; } diff --git a/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f b/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f index a5976331b9c..4b518fe9e4d 100644 --- a/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f +++ b/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f @@ -1,6 +1,6 @@ C Test program for common block debugging. G. Helffrich 11 July 2004. C { dg-do compile } -C { dg-skip-if "No stabs" { mmix-*-* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } +C { dg-skip-if "No stabs" { mmix-*-* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } C { dg-skip-if "No stabs" {*-*-* } { "*" } { "-gstabs" } } common i,j common /label/l,m diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 213118503c5..2148f80d378 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -290,11 +290,6 @@ proc check_weak_override_available { } { # The argument is the kind of visibility, default/protected/hidden/internal. proc check_visibility_available { what_kind } { - # On NetWare, support makes no sense. - if { [istarget *-*-netware*] } { - return 0 - } - if [string match "" $what_kind] { set what_kind "hidden" } return [check_no_compiler_messages visibility_available_$what_kind object " @@ -571,7 +566,6 @@ proc check_profiling_available { test_what } { || [istarget tic6x-*-elf] || [istarget xstormy16-*] || [istarget xtensa*-*-elf] - || [istarget *-*-netware*] || [istarget *-*-rtems*] || [istarget *-*-vxworks*] } { set profiling_available_saved 0 diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 885724a4d84..8fab793254f 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2011-07-18 Rainer Orth + + * config.host (i[3456x]86-*-netware*): Remove. + * config/i386/netware-crt0.c, config/i386/t-nwld, + config/i386/t-slibgcc-nwld: Remove. + 2011-07-15 Bernd Schmidt * config.host: Handle tic6x-*-*. diff --git a/libgcc/config.host b/libgcc/config.host index 293d462b89f..11760d0bda4 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -375,14 +375,6 @@ i[34567]86-pc-msdosdjgpp*) ;; i[34567]86-*-lynxos*) ;; -i[3456x]86-*-netware*) - case /${with_ld} in - */nwld) - tmake_file="${tmake_file} i386/t-nwld i386/t-slibgcc-nwld" - extra_parts="${extra_parts} crt0.o libgcc.def libc.def libcpre.def posixpre.def" - ;; - esac - ;; i[34567]86-*-nto-qnx*) ;; i[34567]86-*-rtems*) diff --git a/libgcc/config/i386/netware-crt0.c b/libgcc/config/i386/netware-crt0.c deleted file mode 100644 index 03141ab9987..00000000000 --- a/libgcc/config/i386/netware-crt0.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Startup routines for NetWare. - 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 -. */ - -#include -#include -#include "unwind-dw2-fde.h" - -int __init_environment (void *); -int __deinit_environment (void *); - - -#define SECTION_DECL(name, decl) decl __attribute__((__section__(name))) - -SECTION_DECL(".ctors", void(*const __CTOR_LIST__)(void)) - = (void(*)(void))(intptr_t)-1; -SECTION_DECL(".ctors$_", void(*const __CTOR_END__)(void)) = NULL; - -SECTION_DECL(".dtors", void(*const __DTOR_LIST__)(void)) - = (void(*)(void))(intptr_t)-1; -SECTION_DECL(".dtors$_", void(*const __DTOR_END__)(void)) = NULL; - -/* No need to use the __[de]register_frame_info_bases functions since - for us the bases are NULL always anyway. */ -void __register_frame_info (const void *, struct object *) - __attribute__((__weak__)); -void *__deregister_frame_info (const void *) __attribute__((__weak__)); - -SECTION_DECL(".eh_frame", /*const*/ uint32_t __EH_FRAME_BEGIN__[]) = { }; -SECTION_DECL(".eh_frame$_", /*const*/ uint32_t __EH_FRAME_END__[]) = {0}; - -int -__init_environment (void *unused __attribute__((__unused__))) -{ - void (* const * pctor)(void); - static struct object object; - - if (__register_frame_info) - __register_frame_info (__EH_FRAME_BEGIN__, &object); - - for (pctor = &__CTOR_END__ - 1; pctor > &__CTOR_LIST__; --pctor) - if (*pctor != NULL) - (*pctor)(); - - return 0; -} - -int -__deinit_environment (void *unused __attribute__((__unused__))) -{ - /* This should be static to prevent calling the same destructor - twice (just in case where we get here multiple times). */ - static void (* const * pdtor)(void) = &__DTOR_LIST__ + 1; - - while (pdtor < &__DTOR_END__) - if (*pdtor++ != NULL) - pdtor[-1] (); - - if (__deregister_frame_info) - __deregister_frame_info(__EH_FRAME_BEGIN__); - - return 0; -} diff --git a/libgcc/config/i386/t-nwld b/libgcc/config/i386/t-nwld deleted file mode 100644 index d08e2827f65..00000000000 --- a/libgcc/config/i386/t-nwld +++ /dev/null @@ -1,39 +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 -# . - -crt0.o: $(srcdir)/config/i386/netware-crt0.c - $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< - -CRTSTUFF_T_CFLAGS = -mpreferred-stack-boundary=2 - -libgcc.def: $(srcdir)/config/i386/t-nwld - echo "module libgcc_s" >$@ - -libc.def: $(srcdir)/config/i386/t-nwld - echo "module libc" >$@ - -libcpre.def: $(srcdir)/config/i386/t-nwld - echo "start _LibCPrelude" >$@ - echo "exit _LibCPostlude" >>$@ - echo "check _LibCCheckUnload" >>$@ - -posixpre.def: $(srcdir)/config/i386/t-nwld - echo "start POSIX_Start" >$@ - echo "exit POSIX_Stop" >>$@ - echo "check POSIX_CheckUnload" >>$@ diff --git a/libgcc/config/i386/t-slibgcc-nwld b/libgcc/config/i386/t-slibgcc-nwld deleted file mode 100644 index 408587273da..00000000000 --- a/libgcc/config/i386/t-slibgcc-nwld +++ /dev/null @@ -1,31 +0,0 @@ -# Build a shared libgcc library for NetWare. - -SHLIB_EXT = .nlm -SHLIB_NAME = @shlib_base_name@.nlm -SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ -SHLIB_DEF = $(gcc_srcdir)/config/i386/netware-libgcc.def -SHLIB_MAP = $(gcc_srcdir)/config/i386/netware-libgcc.exp -SHLIB_SRC = $(gcc_srcdir)/config/i386/netware-libgcc.c - -SHLIB_LINK = set -e; \ - cat $(SHLIB_DEF) >@shlib_base_name@.def; \ - echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \ - echo "version $(version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \ - touch build; \ - echo "build $$(expr $$(>@shlib_base_name@.def; \ - echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \ - if mpkxdc -n -p @shlib_base_name@.xdc; \ - then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \ - else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \ - fi; \ - $(CC) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \ - $(SHLIB_SRC) -posix -static-libgcc -lnetware \ - -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \ - rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \ - rm -f libgcc.imp; $(LN_S) @shlib_base_name@.imp libgcc.imp; \ - expr $$(build - -SHLIB_INSTALL = \ - $(SHELL) $(srcdir)/mkinstalldirs $(slibdir)$(SHLIB_SLIBDIR_QUAL); \ - $(INSTALL_DATA) $(SHLIB_NAME) $(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \ - $(INSTALL_DATA) @shlib_base_name@.imp $(DESTDIR)$(libsubdir)/ diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4a46f39877f..990fce997ce 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-07-18 Rainer Orth + + * crossconfig.m4 (*-netware): Remove. + * configure: Regenerate. + 2011-07-15 Yufeng Zhang * config/locale/newlib/ctype_members.cc: New file. diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 39e6b0814bf..0bbc485d300 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -57083,155 +57083,6 @@ $as_echo "$ac_ld_relro" >&6; } $as_echo "#define HAVE_ISNANL 1" >>confdefs.h fi - ;; - *-netware) - SECTION_FLAGS='-ffunction-sections -fdata-sections' - - - # If we're not using GNU ld, then there's no point in even trying these - # tests. Check for that first. We should have already tested for gld - # by now (in libtool), but require it now just to be safe... - test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS='' - test -z "$OPT_LDFLAGS" && OPT_LDFLAGS='' - - - - # The name set by libtool depends on the version of libtool. Shame on us - # for depending on an impl detail, but c'est la vie. Older versions used - # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on - # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually - # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't - # set (hence we're using an older libtool), then set it. - if test x${with_gnu_ld+set} != xset; then - if test x${ac_cv_prog_gnu_ld+set} != xset; then - # We got through "ac_require(ac_prog_ld)" and still not set? Huh? - with_gnu_ld=no - else - with_gnu_ld=$ac_cv_prog_gnu_ld - fi - fi - - # Start by getting the version number. I think the libtool test already - # does some of this, but throws away the result. - glibcxx_ld_is_gold=no - if test x"$with_gnu_ld" = x"yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld version" >&5 -$as_echo_n "checking for ld version... " >&6; } - - if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then - glibcxx_ld_is_gold=yes - fi - ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` - - glibcxx_gnu_ld_version=`echo $ldver | \ - $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_gnu_ld_version" >&5 -$as_echo "$glibcxx_gnu_ld_version" >&6; } - fi - - # Set --gc-sections. - glibcxx_have_gc_sections=no - if test "$glibcxx_ld_is_gold" = "yes"; then - if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then - glibcxx_have_gc_sections=yes - fi - else - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && - test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then - glibcxx_have_gc_sections=yes - fi - fi - if test "$glibcxx_have_gc_sections" = "yes"; then - # Sufficiently young GNU ld it is! Joy and bunny rabbits! - # NB: This flag only works reliably after 2.16.1. Configure tests - # for this are difficult, so hard wire a value that should work. - - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS='-Wl,--gc-sections' - - # Check for -Wl,--gc-sections - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5 -$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; } - if test x$gcc_no_link = xyes; then - as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -fi -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - int one(void) { return 1; } - int two(void) { return 2; } - -int -main () -{ - two(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_gcsections=yes -else - ac_gcsections=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$ac_gcsections" = "yes"; then - rm -f conftest.c - touch conftest.c - if $CC -c conftest.c; then - if $LD --gc-sections -o conftest conftest.o 2>&1 | \ - grep "Warning: gc-sections option ignored" > /dev/null; then - ac_gcsections=no - fi - fi - rm -f conftest.c conftest.o conftest - fi - if test "$ac_gcsections" = "yes"; then - SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5 -$as_echo "$ac_gcsections" >&6; } - - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - else - # this is the suspicious part - CFLAGS='' - fi - fi - - # Set -z,relro. - # Note this is only for shared objects. - ac_ld_relro=no - if test x"$with_gnu_ld" = x"yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,-z,relro" >&5 -$as_echo_n "checking for ld that supports -Wl,-z,relro... " >&6; } - cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"` - if test -n "$cxx_z_relo"; then - OPT_LDFLAGS="-Wl,-z,relro" - ac_ld_relro=yes - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ld_relro" >&5 -$as_echo "$ac_ld_relro" >&6; } - fi - - # Set linker optimization flags. - if test x"$with_gnu_ld" = x"yes"; then - OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS" - fi - - - - - $as_echo "#define HAVE_HYPOT 1" >>confdefs.h - - $as_echo "#define HAVE_ISINF 1" >>confdefs.h - - $as_echo "#define HAVE_ISNAN 1" >>confdefs.h - ;; *-qnx6.1* | *-qnx6.2*) SECTION_FLAGS='-ffunction-sections -fdata-sections' diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 index 2d0a4a83ded..361ed0b8641 100644 --- a/libstdc++-v3/crossconfig.m4 +++ b/libstdc++-v3/crossconfig.m4 @@ -173,14 +173,6 @@ case "${host}" in AC_DEFINE(HAVE_ISNANL) fi ;; - *-netware) - SECTION_FLAGS='-ffunction-sections -fdata-sections' - AC_SUBST(SECTION_FLAGS) - GLIBCXX_CHECK_LINKER_FEATURES - AC_DEFINE(HAVE_HYPOT) - AC_DEFINE(HAVE_ISINF) - AC_DEFINE(HAVE_ISNAN) - ;; *-qnx6.1* | *-qnx6.2*) SECTION_FLAGS='-ffunction-sections -fdata-sections' AC_SUBST(SECTION_FLAGS)