Index: gcc/gcc/config/arm/elf.h |
diff --git a/gcc/gcc/config/arm/elf.h b/gcc/gcc/config/arm/elf.h |
index 7c3eddbe05845749832114ee5191f935907c9a88..88400884ec19378d1d100a85145a900bb6a8060a 100644 |
--- a/gcc/gcc/config/arm/elf.h |
+++ b/gcc/gcc/config/arm/elf.h |
@@ -100,8 +100,9 @@ |
Otherwise, the readonly data section is used. */ |
/* We put ARM and Thumb-2 jump tables in the text section, because it makes |
the code more efficient, but for Thumb-1 it's better to put them out of |
- band. */ |
-#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_32BIT) |
+ band unless we are generating compressed tables. */ |
+#define JUMP_TABLES_IN_TEXT_SECTION \ |
+ (TARGET_32BIT || (TARGET_THUMB && (optimize_size || flag_pic))) |
#ifndef LINK_SPEC |
#define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} -X" |