openwrt/toolchain/binutils/patches/2.17/502-avr32-bfd-dont-allow-di...

20 lines
877 B
Diff
Raw Normal View History

Index: binutils-2.17/bfd/elf32-avr32.c
===================================================================
--- binutils-2.17.orig/bfd/elf32-avr32.c 2007-06-28 09:19:38.494384416 +0200
+++ binutils-2.17/bfd/elf32-avr32.c 2007-06-28 09:19:38.682355840 +0200
@@ -2449,9 +2449,13 @@
after the relaxation code is done, so we can't really
trust that our "distance" is correct. There's really no
easy solution to this problem, so we'll just disallow
- direct references to SEC_DATA sections. */
+ direct references to SEC_DATA sections.
+
+ Oh, and .bss isn't actually SEC_DATA, so we disallow
+ !SEC_HAS_CONTENTS as well. */
if (!dynamic && defined
&& !(sym_sec->flags & SEC_DATA)
+ && (sym_sec->flags & SEC_HAS_CONTENTS)
&& next_state->direct)
{
next_state = &relax_state[next_state->direct];