diff -r 49e9fb8edd05 -r 84180bd0cb45 binutils/binutils.patch --- a/binutils/binutils.patch Mon Jan 12 14:38:36 2009 +0100 +++ b/binutils/binutils.patch Mon Jan 12 14:40:51 2009 +0100 @@ -175,3 +175,24 @@ if (ehbuf) free (ehbuf); if (sec_info) +Index: bfd/elflink.c +diff -Nau bfd/elflink.c.orig bfd/elflink.c +--- bfd/elflink.c.orig 2007-08-24 16:01:08.000000000 +0200 ++++ bfd/elflink.c 2009-01-11 14:07:54.705525343 +0100 +@@ -4231,7 +4231,15 @@ + h->ref_regular_nonweak = 1; + } + else +- h->def_regular = 1; ++ { ++ h->def_regular = 1; ++ if (h->def_dynamic) ++ { ++ h->def_dynamic = 0; ++ h->ref_dynamic = 1; ++ h->dynamic_def = 1; ++ } ++ } + if (! info->executable + || h->def_dynamic + || h->ref_dynamic)