summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-03-31 10:32:08 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-03-31 10:32:08 +0100
commitcc0bd4bed23a697be5d35aee8d4ae4340e7a0226 (patch)
tree75b48fda3dd6624f58f157a14d9a58f868993da8
parent4821286d0a97a82b3ad39572ec66da1892fd5cae (diff)
downloadopenembedded-core-cc0bd4bed23a697be5d35aee8d4ae4340e7a0226.tar.gz
openembedded-core-cc0bd4bed23a697be5d35aee8d4ae4340e7a0226.tar.bz2
openembedded-core-cc0bd4bed23a697be5d35aee8d4ae4340e7a0226.zip
gcc: Drop 3.4.4/3.4.6 and gcc-native as all are now unused
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/packages/gcc/gcc-3.4.4.inc26
-rw-r--r--meta/packages/gcc/gcc-3.4.4/15342.patch22
-rw-r--r--meta/packages/gcc/gcc-3.4.4/GCC3.4.0VisibilityPatch.diff1100
-rw-r--r--meta/packages/gcc/gcc-3.4.4/GCOV_PREFIX_STRIP-cross-profile_3.4.patch389
-rw-r--r--meta/packages/gcc/gcc-3.4.4/always-fixincperm.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.0-arm-bigendian-uclibc.patch30
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.0-arm-bigendian.patch70
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.0-arm-lib1asm.patch24
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.0-arm-nolibfloat.patch24
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.0-arm-softfloat.patch256
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.1-uclibc-100-conf.patch442
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-3.4.1-uclibc-200-locale.patch3246
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch21
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc-uclibc-3.4.0-120-softfloat.patch14
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-arm-ldm-peephole.patch79
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-arm-ldm.patch119
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-arm-tune.patch9
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-configure.in.patch22
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-reverse-compare.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc34-thumb-support.patch156
-rw-r--r--meta/packages/gcc/gcc-3.4.4/gcc4-mtune-compat.patch14
-rw-r--r--meta/packages/gcc/gcc-3.4.4/hrw-open-needs-3-args.patch13
-rw-r--r--meta/packages/gcc/gcc-3.4.4/jarfix.patch30
-rw-r--r--meta/packages/gcc/gcc-3.4.4/sdk-libstdc++-includes.patch22
-rw-r--r--meta/packages/gcc/gcc-3.4.4/zecke-no-host-includes.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.4/zecke-xgcc-cpp.patch13
-rw-r--r--meta/packages/gcc/gcc-3.4.6.inc23
-rw-r--r--meta/packages/gcc/gcc-3.4.6/GCC3.4.0VisibilityPatch.diff1100
-rw-r--r--meta/packages/gcc/gcc-3.4.6/GCOV_PREFIX_STRIP-cross-profile_3.4.patch389
-rw-r--r--meta/packages/gcc/gcc-3.4.6/always-fixincperm.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.0-arm-bigendian-uclibc.patch30
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.0-arm-bigendian.patch70
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.0-arm-lib1asm.patch24
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.0-arm-nolibfloat.patch24
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.0-arm-softfloat.patch256
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.1-uclibc-100-conf.patch442
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-3.4.1-uclibc-200-locale.patch3246
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc-uclibc-3.4.0-120-softfloat.patch14
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-arm-ldm-peephole.patch79
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-arm-ldm.patch119
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-arm-tune.patch9
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-configure.in.patch22
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-reverse-compare.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc34-thumb-support.patch156
-rw-r--r--meta/packages/gcc/gcc-3.4.6/gcc4-mtune-compat.patch14
-rw-r--r--meta/packages/gcc/gcc-3.4.6/jarfix.patch30
-rw-r--r--meta/packages/gcc/gcc-3.4.6/sdk-libstdc++-includes.patch22
-rw-r--r--meta/packages/gcc/gcc-3.4.6/zecke-no-host-includes.patch32
-rw-r--r--meta/packages/gcc/gcc-3.4.6/zecke-xgcc-cpp.patch13
-rw-r--r--meta/packages/gcc/gcc-cross-initial_3.4.4.bb2
-rw-r--r--meta/packages/gcc/gcc-cross-intermediate_3.4.4.bb2
-rw-r--r--meta/packages/gcc/gcc-cross_3.4.4.bb6
-rw-r--r--meta/packages/gcc/gcc-native.inc24
-rw-r--r--meta/packages/gcc/gcc-native_3.4.6.bb6
-rw-r--r--meta/packages/gcc/gcc_3.4.4.bb5
55 files changed, 0 insertions, 12460 deletions
diff --git a/meta/packages/gcc/gcc-3.4.4.inc b/meta/packages/gcc/gcc-3.4.4.inc
deleted file mode 100644
index df99c3b4c7..0000000000
--- a/meta/packages/gcc/gcc-3.4.4.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-require gcc-common.inc
-
-SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
- file://gcc34-reverse-compare.patch;patch=1 \
- file://gcc34-arm-ldm.patch;patch=1 \
- file://gcc34-arm-ldm-peephole.patch;patch=1 \
- file://gcc34-arm-tune.patch;patch=1 \
- file://gcc-3.4.1-uclibc-100-conf.patch;patch=1 \
- file://gcc-3.4.1-uclibc-200-locale.patch;patch=1 \
- file://gcc-3.4.0-arm-lib1asm.patch;patch=1 \
- file://gcc-3.4.0-arm-nolibfloat.patch;patch=1 \
- file://gcc-3.4.0-arm-bigendian.patch;patch=1 \
- file://gcc-3.4.0-arm-bigendian-uclibc.patch;patch=1 \
- file://GCC3.4.0VisibilityPatch.diff;patch=1 \
- file://15342.patch;patch=1 \
- file://jarfix.patch;patch=1 \
- file://always-fixincperm.patch;patch=1 \
- file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1 \
- file://zecke-xgcc-cpp.patch;patch=1 \
- file://gcc-libgcc2-inhibit-libc.patch;patch=1 \
- file://gcc4-mtune-compat.patch;patch=1 \
- file://hrw-open-needs-3-args.patch"
-
-SRC_URI += "file://gcc34-configure.in.patch;patch=1"
-SRC_URI += "file://gcc34-thumb-support.patch;patch=1"
-SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
diff --git a/meta/packages/gcc/gcc-3.4.4/15342.patch b/meta/packages/gcc/gcc-3.4.4/15342.patch
deleted file mode 100644
index d0f3e72d47..0000000000
--- a/meta/packages/gcc/gcc-3.4.4/15342.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- gcc/gcc/regrename.c~ 2004-01-14 17:55:20.000000000 +0000
-+++ gcc/gcc/regrename.c 2005-02-28 07:24:25.893015200 +0000
-@@ -671,7 +671,8 @@
-
- case SET:
- scan_rtx (insn, &SET_SRC (x), class, action, OP_IN, 0);
-- scan_rtx (insn, &SET_DEST (x), class, action, OP_OUT, 0);
-+ scan_rtx (insn, &SET_DEST (x), class, action,
-+ GET_CODE (PATTERN (insn)) == COND_EXEC ? OP_INOUT : OP_OUT, 0);
- return;
-
- case STRICT_LOW_PART:
-@@ -696,7 +697,8 @@
- abort ();
-
- case CLOBBER:
-- scan_rtx (insn, &SET_DEST (x), class, action, OP_OUT, 1);
-+ scan_rtx (insn, &SET_DEST (x), class, action,
-+ GET_CODE (PATTERN (insn)) == COND_EXEC ? OP_INOUT : OP_OUT, 0);
- return;
-
- case EXPR_LIST:
diff --git a/meta/packages/gcc/gcc-3.4.4/GCC3.4.0VisibilityPatch.diff b/meta/packages/gcc/gcc-3.4.4/GCC3.4.0VisibilityPatch.diff
deleted file mode 100644
index d51da7157d..0000000000
--- a/meta/packages/gcc/gcc-3.4.4/GCC3.4.0VisibilityPatch.diff
+++ /dev/null
@@ -1,1100 +0,0 @@
-
-diff -aur gcc-3.4.0orig/gcc/c-common.c gcc-3.4.0/gcc/c-common.c
---- gcc-3.4.0orig/gcc/c-common.c 2004-03-19 01:32:59.000000000 +0000
-+++ gcc-3.4.0/gcc/c-common.c 2004-05-10 21:05:33.000000000 +0100
-@@ -833,7 +833,7 @@
- handle_deprecated_attribute },
- { "vector_size", 1, 1, false, true, false,
- handle_vector_size_attribute },
-- { "visibility", 1, 1, true, false, false,
-+ { "visibility", 1, 1, false, false, false,
- handle_visibility_attribute },
- { "tls_model", 1, 1, true, false, false,
- handle_tls_model_attribute },
-@@ -4886,7 +4886,16 @@
-
- *no_add_attrs = true;
-
-- if (decl_function_context (decl) != 0 || ! TREE_PUBLIC (decl))
-+ if (TYPE_P (*node))
-+ {
-+ if (TREE_CODE (*node) != RECORD_TYPE && TREE_CODE (*node) != UNION_TYPE)
-+ {
-+ warning ("`%s' attribute ignored on non-class types",
-+ IDENTIFIER_POINTER (name));
-+ return NULL_TREE;
-+ }
-+ }
-+ else if (decl_function_context (decl) != 0 || ! TREE_PUBLIC (decl))
- {
- warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
- return NULL_TREE;
-@@ -4897,6 +4906,14 @@
- error ("visibility arg not a string");
- return NULL_TREE;
- }
-+
-+ /* If this is a type, set the visibility on the type decl. */
-+ if (TYPE_P (decl))
-+ {
-+ decl = TYPE_NAME (decl);
-+ if (! decl)
-+ return NULL_TREE;
-+ }
-
- if (strcmp (TREE_STRING_POINTER (id), "default") == 0)
- DECL_VISIBILITY (decl) = VISIBILITY_DEFAULT;
-@@ -4908,6 +4925,14 @@
- DECL_VISIBILITY (decl) = VISIBILITY_PROTECTED;
- else
- error ("visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"");
-+ DECL_VISIBILITYSPECIFIED (decl) = 1;
-+
-+ /* For decls only, go ahead and attach the attribute to the node as well.
-+ This is needed so we can determine whether we have VISIBILITY_DEFAULT
-+ because the visibility was not specified, or because it was explicitly
-+ overridden from the class visibility. */
-+ if (DECL_P (*node))
-+ *no_add_attrs = false;
-
- return NULL_TREE;
- }
-
-diff -aur gcc-3.4.0orig/gcc/c-decl.c gcc-3.4.0/gcc/c-decl.c
---- gcc-3.4.0orig/gcc/c-decl.c 2004-03-22 17:58:18.000000000 +0000
-+++ gcc-3.4.0/gcc/c-decl.c 2004-05-10 15:16:27.000000000 +0100
-@@ -1164,9 +1164,8 @@
- }
-
- /* warnings */
-- /* All decls must agree on a non-default visibility. */
-- if (DECL_VISIBILITY (newdecl) != VISIBILITY_DEFAULT
-- && DECL_VISIBILITY (olddecl) != VISIBILITY_DEFAULT
-+ /* All decls must agree on a visibility. */
-+ if (DECL_VISIBILITYSPECIFIED (newdecl) && DECL_VISIBILITYSPECIFIED (olddecl)
- && DECL_VISIBILITY (newdecl) != DECL_VISIBILITY (olddecl))
- {
- warning ("%Jredeclaration of '%D' with different visibility "
-@@ -1361,9 +1360,12 @@
- Currently, it can only be defined in the prototype. */
- COPY_DECL_ASSEMBLER_NAME (olddecl, newdecl);
-
-- /* If either declaration has a nondefault visibility, use it. */
-- if (DECL_VISIBILITY (olddecl) != VISIBILITY_DEFAULT)
-- DECL_VISIBILITY (newdecl) = DECL_VISIBILITY (olddecl);
-+ /* Use visibility of whichever declaration had it specified */
-+ if (DECL_VISIBILITYSPECIFIED (olddecl))
-+ {
-+ DECL_VISIBILITY (newdecl) = DECL_VISIBILITY (olddecl);
-+ DECL_VISIBILITYSPECIFIED (newdecl) = 1;
-+ }
-
- if (TREE_CODE (newdecl) == FUNCTION_DECL)
- {
-
-diff -aur gcc-3.4.0orig/gcc/common.opt gcc-3.4.0/gcc/common.opt
---- gcc-3.4.0orig/gcc/common.opt 2004-02-18 00:09:04.000000000 +0000
-+++ gcc-3.4.0/gcc/common.opt 2004-05-09 08:10:50.000000000 +0100
-@@ -718,6 +718,11 @@
- Common
- Add extra commentary to assembler output
-
-+fvisibility=
-+Common Joined RejectNegative
-+-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
-+
-+
- fvpt
- Common
- Use expression value profiles in optimizations
-
-diff -aur gcc-3.4.0orig/gcc/c.opt gcc-3.4.0/gcc/c.opt
---- gcc-3.4.0orig/gcc/c.opt 2004-02-18 00:09:03.000000000 +0000
-+++ gcc-3.4.0/gcc/c.opt 2004-05-09 08:10:50.000000000 +0100
-@@ -656,6 +656,10 @@
- C++ ObjC++
- Use __cxa_atexit to register destructors
-
-+fvisibility-inlines-hidden
-+C++
-+Marks all inlined methods as having hidden visibility
-+
- fvtable-gc
- C++ ObjC++
- Discard unused virtual functions
-diff -aur gcc-3.4.0orig/gcc/c-opts.c gcc-3.4.0/gcc/c-opts.c
---- gcc-3.4.0orig/gcc/c-opts.c 2004-02-18 00:09:03.000000000 +0000
-+++ gcc-3.4.0/gcc/c-opts.c 2004-05-09 08:10:50.000000000 +0100
-@@ -912,6 +912,10 @@
- case OPT_fuse_cxa_atexit:
- flag_use_cxa_atexit = value;
- break;
-+
-+ case OPT_fvisibility_inlines_hidden:
-+ visibility_options.inlineshidden = value;
-+ break;
-
- case OPT_fweak:
- flag_weak = value;
-
-diff -aur gcc-3.4.0orig/gcc/cp/class.c gcc-3.4.0/gcc/cp/class.c
---- gcc-3.4.0orig/gcc/cp/class.c 2004-03-09 07:27:23.000000000 +0000
-+++ gcc-3.4.0/gcc/cp/class.c 2004-05-10 21:06:50.000000000 +0100
-@@ -524,6 +524,10 @@
- DECL_ALIGN (decl) = MAX (TYPE_ALIGN (double_type_node),
- DECL_ALIGN (decl));
-
-+ /* The vtable's visibility is the class visibility. There is no way
-+ to override the visibility for just the vtable. */
-+ DECL_VISIBILITY (decl) = CLASSTYPE_VISIBILITY (class_type);
-+ DECL_VISIBILITYSPECIFIED (decl) = CLASSTYPE_VISIBILITYSPECIFIED (class_type);
- import_export_vtable (decl, class_type, 0);
-
- return decl;
-@@ -2971,7 +2975,25 @@
- continue;
-
- if (TREE_CODE (x) == CONST_DECL || TREE_CODE (x) == VAR_DECL)
-- continue;
-+ {
-+ /* Apply the class's visibility attribute to static members
-+ which do not have a visibility attribute. */
-+ if (! lookup_attribute ("visibility", DECL_ATTRIBUTES (x)))
-+ {
-+ if (visibility_options.inlineshidden && DECL_INLINE (x))
-+ {
-+ DECL_VISIBILITY (x) = VISIBILITY_HIDDEN;
-+ DECL_VISIBILITYSPECIFIED (x) = 1;
-+ }
-+ else
-+ {
-+ DECL_VISIBILITY (x) = CLASSTYPE_VISIBILITY (current_class_type);
-+ DECL_VISIBILITYSPECIFIED (x) = CLASSTYPE_VISIBILITYSPECIFIED (current_class_type);
-+ }
-+ }
-+
-+ continue;
-+ }
-
- /* Now it can only be a FIELD_DECL. */
-
-@@ -3708,6 +3730,22 @@
- check_for_override (x, t);
- if (DECL_PURE_VIRTUAL_P (x) && ! DECL_VINDEX (x))
- cp_error_at ("initializer specified for non-virtual method `%D'", x);
-+
-+ /* Apply the class's visibility attribute to methods which do
-+ not have a visibility attribute. */
-+ if (! lookup_attribute ("visibility", DECL_ATTRIBUTES (x)))
-+ {
-+ if (visibility_options.inlineshidden && DECL_INLINE (x))
-+ {
-+ DECL_VISIBILITY (x) = VISIBILITY_HIDDEN;
-+ DECL_VISIBILITYSPECIFIED (x) = 1;
-+ }
-+ else
-+ {
-+ DECL_VISIBILITY (x) = CLASSTYPE_VISIBILITY (current_class_type);
-+ DECL_VISIBILITYSPECIFIED (x) = CLASSTYPE_VISIBILITYSPECIFIED (current_class_type);
-+ }
-+ }
-
- /* The name of the field is the original field name
- Save this in auxiliary field for later overloading. */
-@@ -7830,3 +7868,4 @@
- *vid->last_init = build_tree_list (NULL_TREE, init);
- vid->last_init = &TREE_CHAIN (*vid->last_init);
- }
-+
-
-diff -aur gcc-3.4.0orig/gcc/cp/cp-tree.h gcc-3.4.0/gcc/cp/cp-tree.h
---- gcc-3.4.0orig/gcc/cp/cp-tree.h 2004-03-20 00:13:08.000000000 +0000
-+++ gcc-3.4.0/gcc/cp/cp-tree.h 2004-05-10 20:56:56.000000000 +0100
-@@ -1008,7 +1008,12 @@
- #define PUBLICLY_UNIQUELY_DERIVED_P(PARENT, TYPE) \
- (lookup_base ((TYPE), (PARENT), ba_not_special | ba_quiet, NULL) \
- != NULL_TREE)
--
-+
-+/* Gives the visibility specification for a class type. */
-+#define CLASSTYPE_VISIBILITY(TYPE) DECL_VISIBILITY (TYPE_NAME (TYPE))
-+#define CLASSTYPE_VISIBILITYSPECIFIED(TYPE) DECL_VISIBILITYSPECIFIED (TYPE_NAME (TYPE))
-+
-+
- /* This is a few header flags for 'struct lang_type'. Actually,
- all but the first are used only for lang_type_class; they
- are put in this structure to save space. */
-
-diff -aur gcc-3.4.0orig/gcc/cp/decl.c gcc-3.4.0/gcc/cp/decl.c
---- gcc-3.4.0orig/gcc/cp/decl.c 2004-04-01 21:47:21.000000000 +0100
-+++ gcc-3.4.0/gcc/cp/decl.c 2004-05-28 21:16:11.000000000 +0100
-@@ -1869,17 +1869,34 @@
- DECL_COMMON (newdecl) = DECL_COMMON (olddecl);
- COPY_DECL_ASSEMBLER_NAME (olddecl, newdecl);
-
-- /* If either declaration has a nondefault visibility, use it. */
-- if (DECL_VISIBILITY (olddecl) != VISIBILITY_DEFAULT)
-+ /* Warn about conflicting visibility specifications. */
-+ if (DECL_VISIBILITYSPECIFIED (olddecl) && DECL_VISIBILITYSPECIFIED (newdecl)
-+ && DECL_VISIBILITY (newdecl) != DECL_VISIBILITY (olddecl))
-+ {
-+ warning ("%J'%D': visibility attribute ignored because it",
-+ newdecl, newdecl);
-+ warning ("%Jconflicts with previous declaration here", olddecl);
-+ }
-+ /* Choose the declaration which specified visibility. */
-+ if (DECL_VISIBILITYSPECIFIED (olddecl))
- {
-- if (DECL_VISIBILITY (newdecl) != VISIBILITY_DEFAULT
-- && DECL_VISIBILITY (newdecl) != DECL_VISIBILITY (olddecl))
-- {
-- warning ("%J'%D': visibility attribute ignored because it",
-- newdecl, newdecl);
-- warning ("%Jconflicts with previous declaration here", olddecl);
-- }
- DECL_VISIBILITY (newdecl) = DECL_VISIBILITY (olddecl);
-+ DECL_VISIBILITYSPECIFIED (newdecl) = 1;
-+ }
-+ /* If it's a definition of a global operator new or operator
-+ delete, it must be default visibility. */
-+ if (NEW_DELETE_OPNAME_P (DECL_NAME (newdecl)) && DECL_INITIAL (newdecl) != NULL_TREE)
-+ {
-+ if (!DECL_FUNCTION_MEMBER_P (newdecl) && VISIBILITY_DEFAULT != DECL_VISIBILITY (newdecl))
-+ {
-+ warning ("%J`%D': ignoring non-default symbol",
-+ newdecl, newdecl);
-+ warning ("%Jvisibility on global operator new or delete", newdecl);
-+ DECL_VISIBILITY (olddecl) = VISIBILITY_DEFAULT;
-+ DECL_VISIBILITYSPECIFIED (olddecl) = 1;
-+ DECL_VISIBILITY (newdecl) = VISIBILITY_DEFAULT;
-+ DECL_VISIBILITYSPECIFIED (newdecl) = 1;
-+ }
- }
-
- if (TREE_CODE (newdecl) == FUNCTION_DECL)
-
-diff -aur gcc-3.4.0orig/gcc/cp/method.c gcc-3.4.0/gcc/cp/method.c
---- gcc-3.4.0orig/gcc/cp/method.c 2004-04-08 23:15:58.000000000 +0100
-+++ gcc-3.4.0/gcc/cp/method.c 2004-05-09 08:10:52.000000000 +0100
-@@ -394,6 +394,7 @@
- rewrite. */
- TREE_PUBLIC (thunk_fndecl) = TREE_PUBLIC (function);
- DECL_VISIBILITY (thunk_fndecl) = DECL_VISIBILITY (function);
-+ DECL_VISIBILITYSPECIFIED (thunk_fndecl) = DECL_VISIBILITYSPECIFIED (function);
-
- if (flag_syntax_only)
- {
-
-diff -aur gcc-3.4.0orig/gcc/cp/optimize.c gcc-3.4.0/gcc/cp/optimize.c
---- gcc-3.4.0orig/gcc/cp/optimize.c 2004-02-08 01:52:50.000000000 +0000
-+++ gcc-3.4.0/gcc/cp/optimize.c 2004-05-09 08:10:52.000000000 +0100
-@@ -155,6 +155,7 @@
- DECL_NOT_REALLY_EXTERN (clone) = DECL_NOT_REALLY_EXTERN (fn);
- TREE_PUBLIC (clone) = TREE_PUBLIC (fn);
- DECL_VISIBILITY (clone) = DECL_VISIBILITY (fn);
-+ DECL_VISIBILITYSPECIFIED (clone) = DECL_VISIBILITYSPECIFIED (fn);
-
- /* Adjust the parameter names and locations. */
- parm = DECL_ARGUMENTS (fn);
-
-diff -aur gcc-3.4.0orig/gcc/cp/rtti.c gcc-3.4.0/gcc/cp/rtti.c
---- gcc-3.4.0orig/gcc/cp/rtti.c 2004-03-08 23:00:26.000000000 +0000
-+++ gcc-3.4.0/gcc/cp/rtti.c 2004-05-10 21:09:21.000000000 +0100
-@@ -361,7 +361,11 @@
- pushdecl_top_level_and_finish (d, NULL_TREE);
-
- if (CLASS_TYPE_P (type))
-- CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d;
-+ {
-+ CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d;
-+ DECL_VISIBILITY (d) = CLASSTYPE_VISIBILITY (type);
-+ DECL_VISIBILITYSPECIFIED (d) = CLASSTYPE_VISIBILITYSPECIFIED (type);
-+ }
-
- /* Remember the type it is for. */
- TREE_TYPE (name) = type;
-@@ -759,6 +763,11 @@
- TREE_STATIC (name_decl) = 1;
- DECL_EXTERNAL (name_decl) = 0;
- TREE_PUBLIC (name_decl) = 1;
-+ if (CLASS_TYPE_P (target))
-+ {
-+ DECL_VISIBILITY (name_decl) = CLASSTYPE_VISIBILITY (target);
-+ DECL_VISIBILITYSPECIFIED (name_decl) = CLASSTYPE_VISIBILITYSPECIFIED (target);
-+ }
- import_export_tinfo (name_decl, target, typeinfo_in_lib_p (target));
- /* External name of the string containing the type's name has a
- special name. */
-
-diff -aur gcc-3.4.0orig/gcc/c-pragma.c gcc-3.4.0/gcc/c-pragma.c
---- gcc-3.4.0orig/gcc/c-pragma.c 2004-01-23 23:35:53.000000000 +0000
-+++ gcc-3.4.0/gcc/c-pragma.c 2004-05-09 08:10:52.000000000 +0100
-@@ -480,6 +480,86 @@
- return asmname;
- }
-
-+
-+#ifdef HANDLE_PRAGMA_VISIBILITY
-+static void handle_pragma_visibility (cpp_reader *);
-+
-+/* Sets the default visibility for symbols to something other than that
-+ specified on the command line. */
-+static void
-+handle_pragma_visibility (cpp_reader *dummy ATTRIBUTE_UNUSED)
-+{ /* Form is #pragma GCC visibility push(hidden)|pop */
-+ static int visstack [16], visidx;
-+ tree x;
-+ enum cpp_ttype token;
-+ enum { bad, push, pop } action = bad;
-+
-+ token = c_lex (&x);
-+ if (token == CPP_NAME)
-+ {
-+ const char *op = IDENTIFIER_POINTER (x);
-+ if (!strcmp (op, "push"))
-+ action = push;
-+ else if (!strcmp (op, "pop"))
-+ action = pop;
-+ }
-+ if (bad == action)
-+ GCC_BAD ("#pragma GCC visibility must be followed by push or pop");
-+ else
-+ {
-+ if (pop == action)
-+ {
-+ if (!visidx)
-+ {
-+ GCC_BAD ("No matching push for '#pragma GCC visibility pop'");
-+ }
-+ else
-+ {
-+ default_visibility = visstack[--visidx];
-+ visibility_options.inpragma = (visidx>0);
-+ }
-+ }
-+ else
-+ {
-+ if (c_lex (&x) != CPP_OPEN_PAREN)
-+ GCC_BAD ("missing '(' after '#pragma GCC visibility push' - ignored");
-+ token = c_lex (&x);
-+ if (token != CPP_NAME)
-+ {
-+ GCC_BAD ("malformed #pragma GCC visibility push");
-+ }
-+ else if (visidx >= 16)
-+ {
-+ GCC_BAD ("No more than sixteen #pragma GCC visibility pushes allowed at once");
-+ }
-+ else
-+ {
-+ const char *str = IDENTIFIER_POINTER (x);
-+ visstack[visidx++] = default_visibility;
-+ if (!strcmp (str, "default"))
-+ default_visibility = VISIBILITY_DEFAULT;
-+ else if (!strcmp (str, "internal"))
-+ default_visibility = VISIBILITY_INTERNAL;
-+ else if (!strcmp (str, "hidden"))
-+ default_visibility = VISIBILITY_HIDDEN;
-+ else if (!strcmp (str, "protected"))
-+ default_visibility = VISIBILITY_PROTECTED;
-+ else
-+ {
-+ GCC_BAD ("#pragma GCC visibility push() must specify default, internal, hidden or protected");
-+ }
-+ visibility_options.inpragma = 1;
-+ }
-+ if (c_lex (&x) != CPP_CLOSE_PAREN)
-+ GCC_BAD ("missing '(' after '#pragma GCC visibility push' - ignored");
-+ }
-+ }
-+ if (c_lex (&x) != CPP_EOF)
-+ warning ("junk at end of '#pragma GCC visibility'");
-+}
-+
-+#endif
-+
- /* Front-end wrapper for pragma registration to avoid dragging
- cpplib.h in almost everywhere. */
- void
-@@ -505,6 +585,9 @@
- #ifdef HANDLE_PRAGMA_EXTERN_PREFIX
- c_register_pragma (0, "extern_prefix", handle_pragma_extern_prefix);
- #endif
-+#ifdef HANDLE_PRAGMA_VISIBILITY
-+ c_register_pragma ("GCC", "visibility", handle_pragma_visibility);
-+#endif
-
- #ifdef REGISTER_TARGET_PRAGMAS
- REGISTER_TARGET_PRAGMAS ();
-diff -aur gcc-3.4.0orig/gcc/c-pragma.h gcc-3.4.0/gcc/c-pragma.h
---- gcc-3.4.0orig/gcc/c-pragma.h 2004-01-31 06:18:05.000000000 +0000
-+++ gcc-3.4.0/gcc/c-pragma.h 2004-05-09 08:10:53.000000000 +0100
-@@ -44,6 +44,11 @@
- #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 init_pragma (void);
-
- /* Front-end wrapper for pragma registration to avoid dragging
-
-
-diff -aur gcc-3.4.0orig/gcc/doc/invoke.texi gcc-3.4.0/gcc/doc/invoke.texi
---- gcc-3.4.0orig/gcc/doc/invoke.texi 2004-04-19 00:05:36.000000000 +0100
-+++