+++ /dev/null
-#!/bin/sh -e
-## 211-hjl-binutils-weakdef.dpatch
-##
-## DP: Description: elflink.c (elf_link_add_object_symbols): Check symbol type
-## DP: Description: for symbol alias in a dynamic object.
-## DP: Author: H.J. Lu <hongjiu.lu@intel.com>
-## DP: Upstream status: hjl 2.17.50.0.18
-## DP: Original patch: binutils-weakdef-1.patch
-
-if [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-
-case "$1" in
- -patch) patch $patch_opts -p1 < $0;;
- -unpatch) patch $patch_opts -p1 -R < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1;;
-esac
-
-exit 0
-
-bfd/
-
-2007-07-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * elflink.c (elf_link_add_object_symbols): Check symbol type
- for symbol alias in a dynamic object.
-
-ld/testsuite/
-
-2007-07-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * ld-elf/data2.c: New.
- * ld-elf/weakdef1.c: Likewise.
-
- * ld-elf/shared.exp: Add tests for libdata2 and weakdef1.
-
-@DPATCH@
-diff -urNad binutils-2.18~cvs20070812~/bfd/elflink.c binutils-2.18~cvs20070812/bfd/elflink.c
---- binutils-2.18~cvs20070812~/bfd/elflink.c 2007-08-12 13:48:32.000000000 +0200
-+++ binutils-2.18~cvs20070812/bfd/elflink.c 2007-08-12 13:48:41.000000000 +0200
-@@ -4558,6 +4558,7 @@
- asection *slook;
- bfd_vma vlook;
- long ilook;
-+ int tlook;
- size_t i, j, idx;
-
- hlook = weaks;
-@@ -4570,6 +4571,7 @@
- || hlook->root.type == bfd_link_hash_indirect);
- slook = hlook->root.u.def.section;
- vlook = hlook->root.u.def.value;
-+ tlook = hlook->type;
-
- ilook = -1;
- i = 0;
-@@ -4607,9 +4609,10 @@
- {
- h = sorted_sym_hash [i];
-
-- /* Stop if value or section doesn't match. */
-+ /* Stop if value, section or type doesn't match. */
- if (h->root.u.def.value != vlook
-- || h->root.u.def.section != slook)
-+ || h->root.u.def.section != slook
-+ || h->type != tlook)
- break;
- else if (h != hlook)
- {
-diff -urNad binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/data2.c binutils-2.18~cvs20070812/ld/testsuite/ld-elf/data2.c
---- binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/data2.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.18~cvs20070812/ld/testsuite/ld-elf/data2.c 2007-08-12 13:48:41.000000000 +0200
-@@ -0,0 +1,9 @@
-+int foo = 0;
-+extern int foo_alias __attribute__ ((weak, alias ("foo")));
-+
-+void
-+bar (void)
-+{
-+ foo = -1;
-+}
-+
-diff -urNad binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/shared.exp binutils-2.18~cvs20070812/ld/testsuite/ld-elf/shared.exp
---- binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/shared.exp 2007-07-06 16:09:43.000000000 +0200
-+++ binutils-2.18~cvs20070812/ld/testsuite/ld-elf/shared.exp 2007-08-12 13:48:41.000000000 +0200
-@@ -123,6 +123,9 @@
- {"Build libdata1.so"
- "-shared" "-fPIC"
- {data1.c} {} "libdata1.so"}
-+ {"Build libdata2.so"
-+ "-shared" "-fPIC"
-+ {data2.c} {} "libdata2.so"}
- }
-
- set run_tests {
-@@ -235,6 +238,9 @@
- {"Run with libdata1.so"
- "tmpdir/libdata1.so" ""
- {dynbss1.c} "dynbss1" "pass.out"}
-+ {"Run with libdata2.so"
-+ "tmpdir/libdata2.so" ""
-+ {weakdef1.c} "weakdef1" "pass.out"}
- }
-
- run_cc_link_tests $build_tests
-diff -urNad binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/weakdef1.c binutils-2.18~cvs20070812/ld/testsuite/ld-elf/weakdef1.c
---- binutils-2.18~cvs20070812~/ld/testsuite/ld-elf/weakdef1.c 1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.18~cvs20070812/ld/testsuite/ld-elf/weakdef1.c 2007-08-12 13:48:41.000000000 +0200
-@@ -0,0 +1,15 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+extern int foo_alias;
-+extern void bar (void);
-+
-+int
-+main (void)
-+{
-+ bar ();
-+ if (foo_alias != -1)
-+ abort ();
-+ printf ("PASS\n");
-+ return 0;
-+}