From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27973 invoked by alias); 20 Nov 2010 01:48:19 -0000 Received: (qmail 27956 invoked by uid 22791); 20 Nov 2010 01:48:15 -0000 X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_50,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 20 Nov 2010 01:48:05 +0000 Received: (qmail 4082 invoked from network); 20 Nov 2010 01:48:02 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 20 Nov 2010 01:48:02 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.72) (envelope-from ) id 1PJcYL-000416-3a for gcc-patches@gcc.gnu.org; Sat, 20 Nov 2010 01:47:45 +0000 Date: Sat, 20 Nov 2010 09:34:00 -0000 From: "Joseph S. Myers" To: gcc-patches@gcc.gnu.org Subject: Enable #pragma pack with push and pop unconditionally Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2010-11/txt/msg02112.txt.bz2 As proposed in , this patch eliminates the target macros HANDLE_SYSV_PRAGMA and HANDLE_PRAGMA_PACK_PUSH_POP, enabling the relevant features unconditionally. The user documentation of #pragma pack makes no mention of it being conditional on the target, so needs no changes. The documentation of the target macros was inaccurate when it claimed #pragma weak support was conditional on HANDLE_SYSV_PRAGMA; the code was always enabled (#ifdef on HANDLE_PRAGMA_WEAK, a macro unconditionally #defined in c-pragma.h), with checks of SUPPORTS_WEAK being done when weak symbols are actually created. Some targets thought HANDLE_PRAGMA_WEAK was a target macro; undefining that, or HANDLE_PRAGMA_PACK, was ineffective given the order of inclusion of headers. Similarly, HANDLE_PRAGMA_VISIBILITY was unconditionally defined and so served no useful purpose. Bootstrapped with no regressions on x86_64-unknown-linux-gnu. Also tested building cc1 for crosses to: alpha-linux-gnu alpha-dec-osf5.1 alpha-dec-vms arm-netbsdelf cris-elf frv-elf i686-darwin i686-freebsd8.1 i686-interix3 i686-mingw32 i686-netbsdelf i686-netware i686-openbsd i686-wrs-vxworks ia64-hpux11.23 m32r-linux-gnu mep-elf mips-sde-elf mmix-knuth-mmixware hppa64-hpux11.23 powerpc-ibm-aix5.3.0 powerpc-linux-gnu rx-elf score-elf spu-elf xstormy16-elf xtensa-elf (builds for alpha-dec-osf5.1 and i686-interix3 failed for unrelated reasons). OK to commit (the non-front-end parts; I think the removal of always-true conditionals in the C++ front end counts as obvious)? 2010-11-19 Joseph Myers * doc/tm.texi.in (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Remove. (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA. * doc/tm.texi: Regenerate. * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_WEAK): Poison. * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define. * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define. * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define. * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define. * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define. * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_WEAK): Don't undefine. * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define. * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define. * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_WEAK): Don't undefine. * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK): Don't undefine. * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine. * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define. * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define. * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define. * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define. * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define. * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. c-family: 2010-11-19 Joseph Myers * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK, HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and HANDLE_PRAGMA_VISIBILITY. * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK, HANDLE_PRAGMA_VISIBILITY): Don't define. (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test. cp: 2010-11-19 Joseph Myers * name-lookup.c (handle_namespace_attrs): Don't check HANDLE_PRAGMA_VISIBILITY. * parser.c (cp_parser_namespace_definition): Don't check HANDLE_PRAGMA_VISIBILITY. testsuite: 2010-11-19 Joseph Myers * g++.dg/cpp/_Pragma1.C: Test for all non-Solaris targets. * gcc.dg/cpp/_Pragma6.c: Test for all non-Solaris targets. * gcc.dg/pack-test-1.c: Test for all non-default_packed targets. * gcc.dg/pack-test-2.c: Test for all targets. * gcc.dg/pragma-align.c: Test for all targets. * gcc.dg/pragma-pack-4.c: Do not skip for AVR. * gcc.dg/ucnid-10.c: Test for all targets. 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()} and @samp{#pragma weak -[=]} 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()} and @samp{#pragma weak -[=]} 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() in effect when the first #pragma pack(push,) 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], ) is not supported on this target") -#define pop_alignment(ID) \ - GCC_BAD ("#pragma pack(pop[, id], ) 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() */ -#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 */ -/* { 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 */ -/* { 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,) 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,) 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,) 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 . */ -#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 and Reva Cuthbertson @@ -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,)' and #pragma - pack(pop)'. The pack(push,) 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,) 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 -- Joseph S. Myers joseph@codesourcery.com