Index: gcc/doc/tm.texi
===================================================================
--- gcc/doc/tm.texi	(revision 166951)
+++ gcc/doc/tm.texi	(working copy)
@@ -10666,55 +10666,8 @@ rule to the makefile fragment pointed to
 how to build this object file.
 @end deftypefun
 
-@findex #pragma
-@findex pragma
-@defmac HANDLE_SYSV_PRAGMA
-Define this macro (to a value of 1) if you want the System V style
-pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name>
-[=<value>]} to be supported by gcc.
-
-The pack pragma specifies the maximum alignment (in bytes) of fields
-within a structure, in much the same way as the @samp{__aligned__} and
-@samp{__packed__} @code{__attribute__}s do.  A pack value of zero resets
-the behavior to the default.
-
-A subtlety for Microsoft Visual C/C++ style bit-field packing
-(e.g.@: -mms-bitfields) for targets that support it:
-When a bit-field is inserted into a packed record, the whole size
-of the underlying type is used by one or more same-size adjacent
-bit-fields (that is, if its long:3, 32 bits is used in the record,
-and any additional adjacent long bit-fields are packed into the same
-chunk of 32 bits.  However, if the size changes, a new field of that
-size is allocated).
-
-If both MS bit-fields and @samp{__attribute__((packed))} are used,
-the latter will take precedence.  If @samp{__attribute__((packed))} is
-used on a single field when MS bit-fields are in use, it will take
-precedence for that field, but the alignment of the rest of the structure
-may affect its placement.
-
-The weak pragma only works if @code{SUPPORTS_WEAK} and
-@code{ASM_WEAKEN_LABEL} are defined.  If enabled it allows the creation
-of specifically named weak labels, optionally with a value.
-@end defmac
-
-@findex #pragma
-@findex pragma
-@defmac HANDLE_PRAGMA_PACK_PUSH_POP
-Define this macro (to a value of 1) if you want to support the Win32
-style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma
-pack(pop)}.  The @samp{pack(push,[@var{n}])} pragma specifies the maximum
-alignment (in bytes) of fields within a structure, in much the same way as
-the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do.  A
-pack value of zero resets the behavior to the default.  Successive
-invocations of this pragma cause the previous values to be stacked, so
-that invocations of @samp{#pragma pack(pop)} will return to the previous
-value.
-@end defmac
-
 @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION
-Define this macro, as well as
-@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the
+Define this macro if macros should be expanded in the
 arguments of @samp{#pragma pack}.
 @end defmac
 
Index: gcc/doc/tm.texi.in
===================================================================
--- gcc/doc/tm.texi.in	(revision 166951)
+++ gcc/doc/tm.texi.in	(working copy)
@@ -10628,55 +10628,8 @@ rule to the makefile fragment pointed to
 how to build this object file.
 @end deftypefun
 
-@findex #pragma
-@findex pragma
-@defmac HANDLE_SYSV_PRAGMA
-Define this macro (to a value of 1) if you want the System V style
-pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name>
-[=<value>]} to be supported by gcc.
-
-The pack pragma specifies the maximum alignment (in bytes) of fields
-within a structure, in much the same way as the @samp{__aligned__} and
-@samp{__packed__} @code{__attribute__}s do.  A pack value of zero resets
-the behavior to the default.
-
-A subtlety for Microsoft Visual C/C++ style bit-field packing
-(e.g.@: -mms-bitfields) for targets that support it:
-When a bit-field is inserted into a packed record, the whole size
-of the underlying type is used by one or more same-size adjacent
-bit-fields (that is, if its long:3, 32 bits is used in the record,
-and any additional adjacent long bit-fields are packed into the same
-chunk of 32 bits.  However, if the size changes, a new field of that
-size is allocated).
-
-If both MS bit-fields and @samp{__attribute__((packed))} are used,
-the latter will take precedence.  If @samp{__attribute__((packed))} is
-used on a single field when MS bit-fields are in use, it will take
-precedence for that field, but the alignment of the rest of the structure
-may affect its placement.
-
-The weak pragma only works if @code{SUPPORTS_WEAK} and
-@code{ASM_WEAKEN_LABEL} are defined.  If enabled it allows the creation
-of specifically named weak labels, optionally with a value.
-@end defmac
-
-@findex #pragma
-@findex pragma
-@defmac HANDLE_PRAGMA_PACK_PUSH_POP
-Define this macro (to a value of 1) if you want to support the Win32
-style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma
-pack(pop)}.  The @samp{pack(push,[@var{n}])} pragma specifies the maximum
-alignment (in bytes) of fields within a structure, in much the same way as
-the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do.  A
-pack value of zero resets the behavior to the default.  Successive
-invocations of this pragma cause the previous values to be stacked, so
-that invocations of @samp{#pragma pack(pop)} will return to the previous
-value.
-@end defmac
-
 @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION
-Define this macro, as well as
-@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the
+Define this macro if macros should be expanded in the
 arguments of @samp{#pragma pack}.
 @end defmac
 
Index: gcc/c-family/c-pragma.c
===================================================================
--- gcc/c-family/c-pragma.c	(revision 166951)
+++ gcc/c-family/c-pragma.c	(working copy)
@@ -54,10 +54,8 @@ typedef struct GTY(()) align_stack {
 
 static GTY(()) struct align_stack * alignment_stack;
 
-#ifdef HANDLE_PRAGMA_PACK
 static void handle_pragma_pack (cpp_reader *);
 
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
 /* If we have a "global" #pragma pack(<n>) in effect when the first
    #pragma pack(push,<n>) is encountered, this stores the value of
    maximum_field_alignment in effect.  When the final pop_alignment()
@@ -125,13 +123,6 @@ pop_alignment (tree id)
 
   alignment_stack = entry;
 }
-#else  /* not HANDLE_PRAGMA_PACK_PUSH_POP */
-#define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN))
-#define push_alignment(ID, N) \
-    GCC_BAD ("#pragma pack(push[, id], <n>) is not supported on this target")
-#define pop_alignment(ID) \
-    GCC_BAD ("#pragma pack(pop[, id], <n>) is not supported on this target")
-#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
 
 /* #pragma pack ()
    #pragma pack (N)
@@ -244,7 +235,6 @@ handle_pragma_pack (cpp_reader * ARG_UNU
     case pop:   pop_alignment (id);	       break;
     }
 }
-#endif  /* HANDLE_PRAGMA_PACK */
 
 typedef struct GTY(()) pending_weak_d
 {
@@ -257,7 +247,6 @@ DEF_VEC_ALLOC_O(pending_weak,gc);
 
 static GTY(()) VEC(pending_weak,gc) *pending_weaks;
 
-#ifdef HANDLE_PRAGMA_WEAK
 static void apply_pragma_weak (tree, tree);
 static void handle_pragma_weak (cpp_reader *);
 
@@ -380,17 +369,6 @@ handle_pragma_weak (cpp_reader * ARG_UNU
       pe->value = value;
     }
 }
-#else
-void
-maybe_apply_pragma_weak (tree ARG_UNUSED (decl))
-{
-}
-
-void
-maybe_apply_pending_pragma_weaks (void)
-{
-}
-#endif /* HANDLE_PRAGMA_WEAK */
 
 /* GCC supports two #pragma directives for renaming the external
    symbol associated with a declaration (DECL_ASSEMBLER_NAME), for
@@ -617,7 +595,6 @@ maybe_apply_renaming_pragma (tree decl, 
 }
 
 
-#ifdef HANDLE_PRAGMA_VISIBILITY
 static void handle_pragma_visibility (cpp_reader *);
 
 static VEC (int, heap) *visstack;
@@ -710,8 +687,6 @@ handle_pragma_visibility (cpp_reader *du
     warning (OPT_Wpragmas, "junk at end of %<#pragma GCC visibility%>");
 }
 
-#endif
-
 static void
 handle_pragma_diagnostic(cpp_reader *ARG_UNUSED(dummy))
 {
@@ -1316,19 +1291,13 @@ init_pragma (void)
     cpp_register_deferred_pragma (parse_in, "GCC", "pch_preprocess",
 				  PRAGMA_GCC_PCH_PREPROCESS, false, false);
 
-#ifdef HANDLE_PRAGMA_PACK
 #ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION
   c_register_pragma_with_expansion (0, "pack", handle_pragma_pack);
 #else
   c_register_pragma (0, "pack", handle_pragma_pack);
 #endif
-#endif
-#ifdef HANDLE_PRAGMA_WEAK
   c_register_pragma (0, "weak", handle_pragma_weak);
-#endif
-#ifdef HANDLE_PRAGMA_VISIBILITY
   c_register_pragma ("GCC", "visibility", handle_pragma_visibility);
-#endif
 
   c_register_pragma ("GCC", "diagnostic", handle_pragma_diagnostic);
   c_register_pragma ("GCC", "target", handle_pragma_target);
Index: gcc/c-family/c-pragma.h
===================================================================
--- gcc/c-family/c-pragma.h	(revision 166951)
+++ gcc/c-family/c-pragma.h	(working copy)
@@ -1,6 +1,6 @@
 /* Pragma related interfaces.
    Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-   2007, 2008  Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -75,26 +75,9 @@ typedef enum pragma_omp_clause {
 
 extern struct cpp_reader* parse_in;
 
-#define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK
-
-#ifdef HANDLE_SYSV_PRAGMA
-/* We always support #pragma pack for SYSV pragmas.  */
-#ifndef HANDLE_PRAGMA_PACK
-#define HANDLE_PRAGMA_PACK 1
-#endif
-#endif /* HANDLE_SYSV_PRAGMA */
-
-
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
-/* If we are supporting #pragma pack(push... then we automatically
-   support #pragma pack(<n>)  */
-#define HANDLE_PRAGMA_PACK 1
-#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
-
 /* It's safe to always leave visibility pragma enabled as if
    visibility is not supported on the host OS platform the
    statements are ignored.  */
-#define HANDLE_PRAGMA_VISIBILITY 1
 extern void push_visibility (const char *, int);
 extern bool pop_visibility (int);
 
Index: gcc/testsuite/gcc.dg/pragma-align.c
===================================================================
--- gcc/testsuite/gcc.dg/pragma-align.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/pragma-align.c	(working copy)
@@ -1,6 +1,6 @@
-/* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */
+/* Prove that pragma alignment handling works somewhat. */
 
-/* { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* *-*-solaris2.* } } */
+/* { dg-do run } */
 
 extern void abort (void);
 
Index: gcc/testsuite/gcc.dg/cpp/_Pragma6.c
===================================================================
--- gcc/testsuite/gcc.dg/cpp/_Pragma6.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/cpp/_Pragma6.c	(working copy)
@@ -1,8 +1,7 @@
 /* PR c/27747 */
 /* This is supposed to succeed only if
-   the target defines HANDLE_PRAGMA_PACK_PUSH_POP
-   and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.  */
-/* { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* sh*-[us]*-elf m32c-*-* *-*-vxworks moxie-*-* mips-sgi-irix* alpha*-dec-osf* } } } } */
+   the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.  */
+/* { dg-do compile { target { ! { *-*-solaris2* } } } } */
 
 #define push bar
 #define foo _Pragma ("pack(push)")
Index: gcc/testsuite/gcc.dg/pack-test-1.c
===================================================================
--- gcc/testsuite/gcc.dg/pack-test-1.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/pack-test-1.c	(working copy)
@@ -1,7 +1,7 @@
 /* Test semantics of #pragma pack.
    Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
 
-/* { dg-do compile { target { { *-*-linux* *-*-cygwin* powerpc*-*-eabi* } && { ! default_packed } } } } */
+/* { dg-do compile { target { ! default_packed } } } */
 
 /* Mainly we're just testing whether pushing and popping seem to be
    working correctly, and verifying the (alignment == 1) case, which
Index: gcc/testsuite/gcc.dg/pack-test-2.c
===================================================================
--- gcc/testsuite/gcc.dg/pack-test-2.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/pack-test-2.c	(working copy)
@@ -1,7 +1,7 @@
 /* Tests for syntax checking of #pragma pack.
    Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
 
-/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
+/* { dg-do compile } */
 
 #pragma pack(pop)               /* { dg-warning "without matching" } */
 
Index: gcc/testsuite/gcc.dg/ucnid-10.c
===================================================================
--- gcc/testsuite/gcc.dg/ucnid-10.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/ucnid-10.c	(working copy)
@@ -1,6 +1,6 @@
 /* Verify diagnostics for extended identifiers refer to UCNs (in the C
    locale).  Test #pragma pack diagnostics.  */
-/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
+/* { dg-do compile } */
 /* { dg-options "-std=gnu99 -fextended-identifiers" } */
 
 #pragma pack(push)
Index: gcc/testsuite/gcc.dg/pragma-pack-4.c
===================================================================
--- gcc/testsuite/gcc.dg/pragma-pack-4.c	(revision 166951)
+++ gcc/testsuite/gcc.dg/pragma-pack-4.c	(working copy)
@@ -1,6 +1,5 @@
 /* PR c/28286 */
 /* { dg-do compile } */
-/* { dg-skip-if "no Pragma pack" { "avr-*-*" } { "*" } { "" } } */
 
 
 #pragma pack(0.5)         /* { dg-warning "invalid constant" } */
Index: gcc/testsuite/g++.dg/cpp/_Pragma1.C
===================================================================
--- gcc/testsuite/g++.dg/cpp/_Pragma1.C	(revision 166951)
+++ gcc/testsuite/g++.dg/cpp/_Pragma1.C	(working copy)
@@ -1,8 +1,7 @@
 // PR c++/27748
 // This is supposed to succeed only if
-// the target defines HANDLE_PRAGMA_PACK_PUSH_POP 
-// and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.
-// { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* mips-sgi-irix* sh*-[us]*-elf m32c-*-* *-*-vxworks alpha*-dec-osf* } } } }
+// the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.
+// { dg-do compile { target { ! { *-*-solaris2* } } } }
 
 #define push bar
 #define foo _Pragma ("pack(push)")
Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c	(revision 166951)
+++ gcc/cp/parser.c	(working copy)
@@ -13828,10 +13828,8 @@ cp_parser_namespace_definition (cp_parse
   /* Parse the body of the namespace.  */
   cp_parser_namespace_body (parser);
 
-#ifdef HANDLE_PRAGMA_VISIBILITY
   if (has_visibility)
     pop_visibility (1);
-#endif
 
   /* Finish the namespace.  */
   pop_namespace ();
Index: gcc/cp/name-lookup.c
===================================================================
--- gcc/cp/name-lookup.c	(revision 166951)
+++ gcc/cp/name-lookup.c	(working copy)
@@ -3239,7 +3239,6 @@ handle_namespace_attrs (tree ns, tree at
       tree name = TREE_PURPOSE (d);
       tree args = TREE_VALUE (d);
 
-#ifdef HANDLE_PRAGMA_VISIBILITY
       if (is_attribute_p ("visibility", name))
 	{
 	  tree x = args ? TREE_VALUE (args) : NULL_TREE;
@@ -3260,7 +3259,6 @@ handle_namespace_attrs (tree ns, tree at
 	  saw_vis = true;
 	}
       else
-#endif
 	{
 	  warning (OPT_Wattributes, "%qD attribute directive ignored",
 		   name);
Index: gcc/system.h
===================================================================
--- gcc/system.h	(revision 166951)
+++ gcc/system.h	(working copy)
@@ -777,7 +777,8 @@ extern void fancy_abort (const char *, i
 	ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE		   \
 	ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES  \
 	SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \
-	TARGET_OPTION_TRANSLATE_TABLE
+	TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP	   \
+	HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE	\
Index: gcc/config/alpha/linux.h
===================================================================
--- gcc/config/alpha/linux.h	(revision 166951)
+++ gcc/config/alpha/linux.h	(working copy)
@@ -1,7 +1,7 @@
 /* Definitions of target machine for GNU compiler,
    for Alpha Linux-based GNU systems.
-   Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
+   2010 Free Software Foundation, Inc.
    Contributed by Richard Henderson.
 
 This file is part of GCC.
@@ -61,9 +61,6 @@ along with GCC; see the file COPYING3.  
 #undef WCHAR_TYPE
 #define WCHAR_TYPE "int"
 
-/* Define this so that all GNU/Linux targets handle the same pragmas.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 #define OPTION_GLIBC  (linux_libc == LIBC_GLIBC)
 
 /* Determine whether the entire c99 runtime is present in the
Index: gcc/config/alpha/vms.h
===================================================================
--- gcc/config/alpha/vms.h	(revision 166951)
+++ gcc/config/alpha/vms.h	(working copy)
@@ -69,8 +69,6 @@ along with GCC; see the file COPYING3.  
 #define POINTER_SIZE 32
 #define POINTERS_EXTEND_UNSIGNED 0
 
-#define HANDLE_SYSV_PRAGMA 1
-
 #define MAX_OFILE_ALIGNMENT 524288  /* 8 x 2^16 by DEC Ada Test CD40VRA */
 
 /* The maximum alignment 'malloc' honors.  */
Index: gcc/config/alpha/elf.h
===================================================================
--- gcc/config/alpha/elf.h	(revision 166951)
+++ gcc/config/alpha/elf.h	(working copy)
@@ -400,9 +400,6 @@ do {									\
   "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
    %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
-/* We support #pragma.  */
-#define HANDLE_SYSV_PRAGMA 1
-
 /* Select a format to encode pointers in exception handling data.  CODE
    is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
    true if the symbol may be affected by dynamic relocations.
Index: gcc/config/alpha/osf5.h
===================================================================
--- gcc/config/alpha/osf5.h	(revision 166951)
+++ gcc/config/alpha/osf5.h	(working copy)
@@ -268,9 +268,6 @@ __enable_execute_stack (void *addr)					
 #define TARGET_ASM_OPEN_PAREN ""
 #define TARGET_ASM_CLOSE_PAREN ""
 
-/* Handle #pragma weak and #pragma pack.  */
-#define HANDLE_SYSV_PRAGMA 1
-
 /* Handle #pragma extern_prefix.  */
 #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1
 
Index: gcc/config/linux.h
===================================================================
--- gcc/config/linux.h	(revision 166951)
+++ gcc/config/linux.h	(working copy)
@@ -102,9 +102,6 @@ see the files COPYING3 and COPYING.RUNTI
 #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 #endif
 
-/* Define this so we can compile MS code for use with WINE.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 #undef LINK_GCC_C_SEQUENCE_SPEC
 #define LINK_GCC_C_SEQUENCE_SPEC \
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
Index: gcc/config/frv/frv.h
===================================================================
--- gcc/config/frv/frv.h	(revision 166951)
+++ gcc/config/frv/frv.h	(working copy)
@@ -2306,13 +2306,6 @@ fprintf (STREAM, "\t.word .L%d\n", VALUE
    `QImode'.  */
 #define FUNCTION_MODE QImode
 
-/* Define this macro to handle System V style pragmas: #pragma pack and
-   #pragma weak.  Note, #pragma weak will only be supported if SUPPORT_WEAK is
-   defined.
-
-   Defined in svr4.h.  */
-#define HANDLE_SYSV_PRAGMA 1
-
 /* A C expression for the maximum number of instructions to execute via
    conditional execution instructions instead of a branch.  A value of
    BRANCH_COST+1 is the default if the machine does not use
Index: gcc/config/elfos.h
===================================================================
--- gcc/config/elfos.h	(revision 166951)
+++ gcc/config/elfos.h	(working copy)
@@ -65,10 +65,6 @@ see the files COPYING3 and COPYING.RUNTI
 #define PCC_BITFIELD_TYPE_MATTERS 1
 #endif
 
-/* Handle #pragma weak and #pragma pack.  */
-
-#define HANDLE_SYSV_PRAGMA 1
-
 /* All ELF targets can support DWARF-2.  */
 
 #define DWARF2_DEBUGGING_INFO 1
Index: gcc/config/spu/spu.h
===================================================================
--- gcc/config/spu/spu.h	(revision 166951)
+++ gcc/config/spu/spu.h	(working copy)
@@ -512,8 +512,6 @@ targetm.resolve_overloaded_builtin = spu
 
 #define NO_IMPLICIT_EXTERN_C 1
 
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /* Canonicalize a comparison from one we don't have to one we do have.  */
 #define CANONICALIZE_COMPARISON(CODE,OP0,OP1) \
   do {                                                                    \
Index: gcc/config/interix.h
===================================================================
--- gcc/config/interix.h	(revision 166951)
+++ gcc/config/interix.h	(working copy)
@@ -61,9 +61,6 @@ for windows/multi thread */
 
 #define STDC_0_IN_SYSTEM_HEADERS 1
 
-#define HANDLE_SYSV_PRAGMA 1
-#undef HANDLE_PRAGMA_WEAK  /* until the link format can handle it */
-
 /* Names to predefine in the preprocessor for this target machine.  */
 
 #define DBX_DEBUGGING_INFO 1
Index: gcc/config/mep/mep.h
===================================================================
--- gcc/config/mep/mep.h	(revision 166951)
+++ gcc/config/mep/mep.h	(working copy)
@@ -804,8 +804,6 @@ typedef struct
 
 #define REGISTER_TARGET_PRAGMAS()	 mep_register_pragmas ()
 
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-   
 /* If defined, a C expression to determine the base term of address X.
    This macro is used in only one place: `find_base_term' in alias.c.
 
Index: gcc/config/m32r/linux.h
===================================================================
--- gcc/config/m32r/linux.h	(revision 166951)
+++ gcc/config/m32r/linux.h	(working copy)
@@ -1,5 +1,5 @@
 /* Definitions for Renesas M32R running Linux-based GNU systems using ELF.
-   Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2006, 2007, 2010 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -23,10 +23,6 @@
    supposed to be outputting something that will assemble under SVr4.
    This gets us pretty close.  */
 
-#define HANDLE_SYSV_PRAGMA
-
-#undef  HANDLE_PRAGMA_PACK
-
 #undef  TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (M32R GNU/Linux with ELF)");
 
Index: gcc/config/m32r/m32r.h
===================================================================
--- gcc/config/m32r/m32r.h	(revision 166951)
+++ gcc/config/m32r/m32r.h	(working copy)
@@ -22,7 +22,6 @@
 - longlong.h?
 */
 
-#undef HANDLE_SYSV_PRAGMA
 #undef SIZE_TYPE
 #undef PTRDIFF_TYPE
 #undef WCHAR_TYPE
Index: gcc/config/i386/cygming.h
===================================================================
--- gcc/config/i386/cygming.h	(revision 166951)
+++ gcc/config/i386/cygming.h	(working copy)
@@ -178,9 +178,6 @@ along with GCC; see the file COPYING3.  
 #undef LONG_TYPE_SIZE
 #define LONG_TYPE_SIZE 32
 
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 union tree_node;
 #define TREE union tree_node *
 
Index: gcc/config/i386/djgpp.h
===================================================================
--- gcc/config/i386/djgpp.h	(revision 166951)
+++ gcc/config/i386/djgpp.h	(working copy)
@@ -24,11 +24,6 @@ along with GCC; see the file COPYING3.  
 /* Don't assume anything about the header files.  */
 #define NO_IMPLICIT_EXTERN_C
 
-#define HANDLE_SYSV_PRAGMA 1
-
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /* If defined, a C expression whose value is a string containing the
    assembler operation to identify the following data as
    uninitialized global data.  If not defined, and neither
Index: gcc/config/i386/netware.h
===================================================================
--- gcc/config/i386/netware.h	(revision 166951)
+++ gcc/config/i386/netware.h	(working copy)
@@ -1,6 +1,7 @@
 /* Core target definitions for GCC for Intel 80x86 running Netware.
    and using dwarf for the debugging format.
-   Copyright (C) 1993, 1994, 2004, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 2004, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
 
    Written by David V. Henkel-Wallace (gumby@cygnus.com)
 
@@ -104,9 +105,6 @@ do {									\
 #undef DBX_REGISTER_NUMBER
 #define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n])
 
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 /* Default structure packing is 1-byte. */
 #define TARGET_DEFAULT_PACK_STRUCT 1
 
Index: gcc/config/i386/i386-interix.h
===================================================================
--- gcc/config/i386/i386-interix.h	(revision 166951)
+++ gcc/config/i386/i386-interix.h	(working copy)
@@ -1,6 +1,6 @@
 /* Target definitions for GCC for Intel 80386 running Interix
-   Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008
-   Free Software Foundation, Inc.
+   Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008, 2009,
+   2010 Free Software Foundation, Inc.
 
    Parts:
      by Douglas B. Rupp (drupp@cs.washington.edu).
@@ -30,9 +30,6 @@ along with GCC; see the file COPYING3.  
 #define SDB_DEBUGGING_INFO 1
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 
-#define HANDLE_SYSV_PRAGMA 1
-#undef HANDLE_PRAGMA_WEAK  /* until the link format can handle it */
-
 /* By default, target has a 80387, uses IEEE compatible arithmetic,
    and returns float values in the 387 and needs stack probes
    We also align doubles to 64-bits for MSVC default compatibility
Index: gcc/config/i386/vxworks.h
===================================================================
--- gcc/config/i386/vxworks.h	(revision 166951)
+++ gcc/config/i386/vxworks.h	(working copy)
@@ -1,5 +1,5 @@
 /* IA32 VxWorks target definitions for GNU compiler.
-   Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc.
    Updated by CodeSourcery, LLC.
 
 This file is part of GCC.
@@ -18,8 +18,6 @@ You should have received a copy of the G
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-#define HANDLE_SYSV_PRAGMA 1
-
 #undef  TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)");
 
Index: gcc/config/rx/rx.h
===================================================================
--- gcc/config/rx/rx.h	(revision 166951)
+++ gcc/config/rx/rx.h	(working copy)
@@ -151,8 +151,6 @@ extern enum rx_cpu_types  rx_cpu_type;
 
 #define LEGITIMATE_CONSTANT_P(X) 	rx_is_legitimate_constant (X)
 
-#define HANDLE_PRAGMA_PACK_PUSH_POP	1
-
 #define HAVE_PRE_DECCREMENT		1
 #define HAVE_POST_INCREMENT		1
 
Index: gcc/config/xtensa/elf.h
===================================================================
--- gcc/config/xtensa/elf.h	(revision 166951)
+++ gcc/config/xtensa/elf.h	(working copy)
@@ -1,6 +1,6 @@
 /* Xtensa/Elf configuration.
    Derived from the configuration for GCC for Intel i386 running Linux.
-   Copyright (C) 2001, 2003, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2007, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -98,5 +98,3 @@ do \
 	      "GCC", PREFIX_PRIORITY_LAST, 0, 0); \
   } \
 while (0)
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
Index: gcc/config/stormy16/stormy16.h
===================================================================
--- gcc/config/stormy16/stormy16.h	(revision 166951)
+++ gcc/config/stormy16/stormy16.h	(working copy)
@@ -587,5 +587,3 @@ enum reg_class
 #define FUNCTION_MODE HImode
 
 #define NO_IMPLICIT_EXTERN_C
-
-#define HANDLE_SYSV_PRAGMA 1
Index: gcc/config/cris/cris.h
===================================================================
--- gcc/config/cris/cris.h	(revision 166951)
+++ gcc/config/cris/cris.h	(working copy)
@@ -1334,9 +1334,6 @@ enum cris_pic_symbol_type
 
 #define NO_IMPLICIT_EXTERN_C
 
-/* No specific purpose other than warningless compatibility.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /*
  * Local variables:
  * eval: (c-set-style "gnu")
Index: gcc/config/netbsd.h
===================================================================
--- gcc/config/netbsd.h	(revision 166951)
+++ gcc/config/netbsd.h	(working copy)
@@ -1,6 +1,6 @@
 /* Base configuration file for all NetBSD targets.
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2007 Free Software Foundation, Inc.
+   2007, 2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -158,10 +158,6 @@ along with GCC; see the file COPYING3.  
 #undef TARGET_POSIX_IO
 #define TARGET_POSIX_IO
 
-/* Handle #pragma weak and #pragma pack.  */
-
-#define HANDLE_SYSV_PRAGMA 1
-
 /* Don't assume anything about the header files.  */
 #undef  NO_IMPLICIT_EXTERN_C
 #define NO_IMPLICIT_EXTERN_C    1
@@ -224,6 +220,3 @@ __enable_execute_stack (void *addr)					
   /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */				\
   (void) mprotect (page, end - page, 7);				\
 }
-
-/* Define this so we can compile MS code for use with WINE.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
Index: gcc/config/ia64/ia64.h
===================================================================
--- gcc/config/ia64/ia64.h	(revision 166951)
+++ gcc/config/ia64/ia64.h	(working copy)
@@ -1778,12 +1778,6 @@ do {									\
 
 #define FUNCTION_MODE Pmode
 
-/* Define this macro to handle System V style pragmas: #pragma pack and
-   #pragma weak.  Note, #pragma weak will only be supported if SUPPORT_WEAK is
-   defined.  */
-
-#define HANDLE_SYSV_PRAGMA 1
-
 /* A C expression for the maximum number of instructions to execute via
    conditional execution instructions instead of a branch.  A value of
    BRANCH_COST+1 is the default if the machine does not use
Index: gcc/config/ia64/hpux.h
===================================================================
--- gcc/config/ia64/hpux.h	(revision 166951)
+++ gcc/config/ia64/hpux.h	(working copy)
@@ -1,5 +1,5 @@
 /* Definitions of target machine GNU compiler.  IA-64 version.
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Steve Ellcey <sje@cup.hp.com> and
                   Reva Cuthbertson <reva@cup.hp.com>
@@ -213,9 +213,6 @@ do {								\
 #undef NO_PROFILE_COUNTERS
 #define NO_PROFILE_COUNTERS 0
 
-#undef HANDLE_PRAGMA_PACK_PUSH_POP
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 /* The HP-UX linker has a bug that causes calls from functions in
    .text.unlikely to functions in .text to cause a segfault.  Until
    it is fixed, prevent code from being put into .text.unlikely or
Index: gcc/config/rs6000/aix.h
===================================================================
--- gcc/config/rs6000/aix.h	(revision 166951)
+++ gcc/config/rs6000/aix.h	(working copy)
@@ -56,9 +56,6 @@
 #define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref
 #endif
 
-/* Handle #pragma weak and #pragma pack.  */
-#define HANDLE_SYSV_PRAGMA 1
-
 /* This is the only version of nm that collect2 can work with.  */
 #define REAL_NM_FILE_NAME "/usr/ucb/nm"
 
Index: gcc/config/rs6000/sysv4.h
===================================================================
--- gcc/config/rs6000/sysv4.h	(revision 166951)
+++ gcc/config/rs6000/sysv4.h	(working copy)
@@ -1062,18 +1062,6 @@ ncrtn.o%s"
 /* Function name to call to do profiling.  */
 #define RS6000_MCOUNT "_mcount"
 
-/* Define this macro (to a value of 1) if you want to support the
-   Win32 style pragmas #pragma pack(push,<n>)' and #pragma
-   pack(pop)'.  The pack(push,<n>) pragma specifies the maximum
-   alignment (in bytes) of fields within a structure, in much the
-   same way as the __aligned__' and __packed__' __attribute__'s
-   do.  A pack value of zero resets the behavior to the default.
-   Successive invocations of this pragma cause the previous values to
-   be stacked, so that invocations of #pragma pack(pop)' will return
-   to the previous value.  */
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /* Select a format to encode pointers in exception handling data.  CODE
    is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
    true if the symbol may be affected by dynamic relocations.  */
Index: gcc/config/darwin.h
===================================================================
--- gcc/config/darwin.h	(revision 166951)
+++ gcc/config/darwin.h	(working copy)
@@ -869,11 +869,6 @@ enum machopic_addr_class {
 #undef TARGET_ASM_NAMED_SECTION
 #define TARGET_ASM_NAMED_SECTION darwin_asm_named_section
 
-/* Handle pragma weak and pragma pack.  */
-#define HANDLE_SYSV_PRAGMA 1
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 #define DARWIN_REGISTER_TARGET_PRAGMAS()			\
   do {								\
     if (!flag_preprocess_only)					\
Index: gcc/config/score/elf.h
===================================================================
--- gcc/config/score/elf.h	(revision 166951)
+++ gcc/config/score/elf.h	(working copy)
@@ -1,5 +1,5 @@
 /* elf.h for Sunplus S+CORE processor
-   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -95,6 +95,3 @@
 
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC            "crtend%O%s crtn%O%s"
-
-/* We support #pragma.  */
-#define HANDLE_SYSV_PRAGMA      1
Index: gcc/config/arm/arm.h
===================================================================
--- gcc/config/arm/arm.h	(revision 166951)
+++ gcc/config/arm/arm.h	(working copy)
@@ -2097,9 +2097,6 @@ typedef struct
 #define ARM_INDEX_REGISTER_RTX_P(X)  \
   (GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
 
-/* Define this for compatibility reasons. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 /* Specify the machine mode that this machine uses
    for the index in the tablejump instruction.  */
 #define CASE_VECTOR_MODE Pmode
Index: gcc/config/arm/netbsd.h
===================================================================
--- gcc/config/arm/netbsd.h	(revision 166951)
+++ gcc/config/arm/netbsd.h	(working copy)
@@ -1,5 +1,5 @@
 /* NetBSD/arm a.out version.
-   Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008
+   Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008, 2010
    Free Software Foundation, Inc.
    Contributed by Mark Brinicombe (amb@physig.ph.kcl.ac.uk)
 
@@ -71,8 +71,6 @@
 #undef PTRDIFF_TYPE
 #define PTRDIFF_TYPE "int"
 
-#define HANDLE_SYSV_PRAGMA 1
-
 /* We don't have any limit on the length as out debugger is GDB.  */
 #undef DBX_CONTIN_LENGTH
 
Index: gcc/config/pa/pa-hpux.h
===================================================================
--- gcc/config/pa/pa-hpux.h	(revision 166951)
+++ gcc/config/pa/pa-hpux.h	(working copy)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler, for HP-UX.
-   Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008
+   Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -114,12 +114,4 @@ along with GCC; see the file COPYING3.  
 #undef TARGET_HPUX_UNWIND_LIBRARY
 #define TARGET_HPUX_UNWIND_LIBRARY 1
 
-/* Handle #pragma weak and #pragma pack.  */
-#undef HANDLE_SYSV_PRAGMA
-#define HANDLE_SYSV_PRAGMA
-
-/* Define this so we can compile MS code for use with WINE.  */
-#undef HANDLE_PRAGMA_PACK_PUSH_POP
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
 #define MD_UNWIND_SUPPORT "config/pa/hpux-unwind.h"
Index: gcc/config/mips/elf.h
===================================================================
--- gcc/config/mips/elf.h	(revision 166951)
+++ gcc/config/mips/elf.h	(working copy)
@@ -1,5 +1,5 @@
 /* Target macros for mips*-elf targets.
-   Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007
+   Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -49,5 +49,3 @@ along with GCC; see the file COPYING3.  
 #define ENDFILE_SPEC "crtend%O%s crtn%O%s"
 
 #define NO_IMPLICIT_EXTERN_C 1
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
Index: gcc/config/mips/sde.h
===================================================================
--- gcc/config/mips/sde.h	(revision 166951)
+++ gcc/config/mips/sde.h	(working copy)
@@ -94,9 +94,6 @@ along with GCC; see the file COPYING3.  
 #undef PTRDIFF_TYPE
 #define PTRDIFF_TYPE "long int"
 
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /* Use standard ELF-style local labels (not '$' as on early Irix).  */
 #undef LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX "."
Index: gcc/config/openbsd.h
===================================================================
--- gcc/config/openbsd.h	(revision 166951)
+++ gcc/config/openbsd.h	(working copy)
@@ -282,12 +282,6 @@ do {									 \
 /* Storage layout.  */
 
 
-/* bug work around: we don't want to support #pragma weak, but the current
-   code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to
-   work.  On the other hand, we don't define HANDLE_PRAGMA_WEAK directly,
-   as this depends on a few other details as well...  */
-#define HANDLE_SYSV_PRAGMA 1
-
 /* Stack is explicitly denied execution rights on OpenBSD platforms.  */
 #define ENABLE_EXECUTE_STACK						\
 extern void __enable_execute_stack (void *);				\
Index: gcc/config/freebsd.h
===================================================================
--- gcc/config/freebsd.h	(revision 166951)
+++ gcc/config/freebsd.h	(working copy)
@@ -45,9 +45,6 @@ along with GCC; see the file COPYING3.  
 #undef  LIB_SPEC
 #define LIB_SPEC FBSD_LIB_SPEC
 
-/* Define this so we can compile MS code for use with WINE.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
 /************************[  Target stuff  ]***********************************/
 
 /* All FreeBSD Architectures support the ELF object file format.  */
Index: gcc/config/mmix/mmix.h
===================================================================
--- gcc/config/mmix/mmix.h	(revision 166951)
+++ gcc/config/mmix/mmix.h	(working copy)
@@ -887,8 +887,6 @@ typedef struct { int regs; int lib; } CU
 
 #define NO_IMPLICIT_EXTERN_C
 
-#define HANDLE_SYSV_PRAGMA 1
-
 /* These are checked.  */
 #define DOLLARS_IN_IDENTIFIERS 0
 #define NO_DOLLAR_IN_LABEL
