aboutsummaryrefslogtreecommitdiff
path: root/4.1.1
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2006-06-21 20:02:33 +0000
committerMike Frysinger <vapier@gentoo.org>2006-06-21 20:02:33 +0000
commit5dc74c0b70df36c7692dbe34a77ba3772a5bd363 (patch)
tree30056c3e879745ae0323a5bd7e7f4da4f09a1c77 /4.1.1
parentsync with uclibc svn (diff)
downloadgcc-patches-5dc74c0b70df36c7692dbe34a77ba3772a5bd363.tar.gz
gcc-patches-5dc74c0b70df36c7692dbe34a77ba3772a5bd363.tar.bz2
gcc-patches-5dc74c0b70df36c7692dbe34a77ba3772a5bd363.zip
fix from upstream for hidden/weak on alpha targets
Diffstat (limited to '4.1.1')
-rw-r--r--4.1.1/gentoo/08_all_gcc-4-pr27082.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/4.1.1/gentoo/08_all_gcc-4-pr27082.patch b/4.1.1/gentoo/08_all_gcc-4-pr27082.patch
new file mode 100644
index 0000000..b8e7067
--- /dev/null
+++ b/4.1.1/gentoo/08_all_gcc-4-pr27082.patch
@@ -0,0 +1,30 @@
+2006-06-21 Richard Henderson <rth@redhat.com>
+
+ PR target/26347
+ PR target/27082
+ * config/alpha/predicates.md (small_symbolic_operand): Deny weak
+ symbols.
+ (global_symbolic_operand): Allow weak symbols, even if local_p.
+
+--- branches/gcc-4_1-branch/gcc/config/alpha/predicates.md 2006/06/21 18:31:56 114861
++++ branches/gcc-4_1-branch/gcc/config/alpha/predicates.md 2006/06/21 19:06:49 114862
+@@ -366,7 +366,8 @@
+
+ return (SYMBOL_REF_LOCAL_P (op)
+ && SYMBOL_REF_SMALL_P (op)
+- && SYMBOL_REF_TLS_MODEL (op) == 0);
++ && !SYMBOL_REF_WEAK (op)
++ && !SYMBOL_REF_TLS_MODEL (op));
+ })
+
+ ;; Return true if OP is a SYMBOL_REF or CONST referencing a variable
+@@ -382,7 +383,8 @@
+ if (GET_CODE (op) != SYMBOL_REF)
+ return 0;
+
+- return !SYMBOL_REF_LOCAL_P (op) && !SYMBOL_REF_TLS_MODEL (op);
++ return ((!SYMBOL_REF_LOCAL_P (op) || SYMBOL_REF_WEAK (op))
++ && !SYMBOL_REF_TLS_MODEL (op));
+ })
+
+ ;; Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref,