aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-01-28 08:21:14 +0000
committerJan Beulich <jbeulich@novell.com>2005-01-28 08:21:14 +0000
commitf7e323d58b6312da747af517269c9aa21c78896a (patch)
tree5f85915934d5bc7eb99ad876dd1d9dac346cde86
parenta8d6eb4a62a37d1fc53b85842ebf629e068c8ff1 (diff)
downloadgdb-f7e323d58b6312da747af517269c9aa21c78896a.zip
gdb-f7e323d58b6312da747af517269c9aa21c78896a.tar.gz
gdb-f7e323d58b6312da747af517269c9aa21c78896a.tar.bz2
gas/
2005-01-28 Jan Beulich <jbeulich@novell.com> * config/tc-ia64.c (ia64_estimate_size_before_relax): Allocate space for personality routine pointer only if there is one. (ia64_convert_frag): Likewise. (generate_unwind_image): Likewise. ld/testsuite/ 2005-01-28 Jan Beulich <jbeulich@novell.com> * ld/ia64/tlsbin.[rt]d: Widen expected offset/size ranges. * ld/ia64/tlspic.[rt]d: Likewise.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-ia64.c22
-rw-r--r--ld/testsuite/ChangeLog5
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.rd18
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.td12
-rw-r--r--ld/testsuite/ld-ia64/tlspic.rd20
-rw-r--r--ld/testsuite/ld-ia64/tlspic.td12
7 files changed, 58 insertions, 38 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1d19938..3ab47b3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-28 Jan Beulich <jbeulich@novell.com>
+
+ * config/tc-ia64.c (ia64_estimate_size_before_relax): Allocate space
+ for personality routine pointer only if there is one.
+ (ia64_convert_frag): Likewise.
+ (generate_unwind_image): Likewise.
+
2005-01-27 Christian Groessler <chris@groessler.org>
* config/tc-z8k.c (INSERT): Remove, not used anywhere.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 24fbadd..21b62fb 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -2863,8 +2863,11 @@ ia64_estimate_size_before_relax (fragS *frag,
pad = len % md.pointer_size;
if (pad != 0)
len += md.pointer_size - pad;
- /* Add 8 for the header + a pointer for the personality offset. */
- size = len + 8 + md.pointer_size;
+ /* Add 8 for the header. */
+ size = len + 8;
+ /* Add a pointer for the personality offset. */
+ if (frag->fr_offset)
+ size += md.pointer_size;
/* fr_var carries the max_chars that we created the fragment with.
We must, of course, have allocated enough memory earlier. */
@@ -2891,8 +2894,11 @@ ia64_convert_frag (fragS *frag)
pad = len % md.pointer_size;
if (pad != 0)
len += md.pointer_size - pad;
- /* Add 8 for the header + a pointer for the personality offset. */
- size = len + 8 + md.pointer_size;
+ /* Add 8 for the header. */
+ size = len + 8;
+ /* Add a pointer for the personality offset. */
+ if (frag->fr_offset)
+ size += md.pointer_size;
/* fr_var carries the max_chars that we created the fragment with.
We must, of course, have allocated enough memory earlier. */
@@ -3454,9 +3460,11 @@ generate_unwind_image (const segT text_seg)
pad = size % md.pointer_size;
if (pad != 0)
size += md.pointer_size - pad;
- /* Add 8 for the header + a pointer for the personality
- offset. */
- size += 8 + md.pointer_size;
+ /* Add 8 for the header. */
+ size += 8;
+ /* Add a pointer for the personality offset. */
+ if (unwind.personality_routine)
+ size += md.pointer_size;
}
/* If there are unwind records, switch sections, and output the info. */
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 1aa1671..e887580 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-28 Jan Beulich <jbeulich@novell.com>
+
+ * ld/ia64/tlsbin.[rt]d: Widen expected offset/size ranges.
+ * ld/ia64/tlspic.[rt]d: Likewise.
+
2005-01-25 Alexandre Oliva <aoliva@redhat.com>
* ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS.
diff --git a/ld/testsuite/ld-ia64/tlsbin.rd b/ld/testsuite/ld-ia64/tlsbin.rd
index 4c68ff3..a826274 100644
--- a/ld/testsuite/ld-ia64/tlsbin.rd
+++ b/ld/testsuite/ld-ia64/tlsbin.rd
@@ -20,9 +20,9 @@ Section Headers:
\[ 8\] .text +PROGBITS +40+1000 0+1000 0+140 00 +AX +0 +0 4096
\[ 9\] .IA_64.unwind_inf +.*
\[10\] .IA_64.unwind +.*
- \[11\] .tdata +PROGBITS +60+1170 0+1170 0+60 00 WAT +0 +0 +4
- \[12\] .tbss +NOBITS +60+11d0 0+11d0 0+40 00 WAT +0 +0 +1
- \[13\] .dynamic +DYNAMIC +60+11d0 0+11d0 0+150 10 +WA +4 +0 +8
+ \[11\] .tdata +PROGBITS +60+1[0-9a-f]+ 0+1[0-9a-f]+ 0+60 00 WAT +0 +0 +4
+ \[12\] .tbss +NOBITS +60+1[0-9a-f]+ 0+1[0-9a-f]+ 0+40 00 WAT +0 +0 +1
+ \[13\] .dynamic +DYNAMIC +60+1[0-9a-f]+ 0+1[0-9a-f]+ 0+150 10 +WA +4 +0 +8
\[14\] .data +.*
\[15\] .got +PROGBITS +60+2000 0+2000 0+48 00 WAp +0 +0 +8
\[16\] .IA_64.pltoff +.*
@@ -42,10 +42,10 @@ Program Headers:
PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8
INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
.*Requesting program interpreter.*
- LOAD +0x0+ 0x40+ 0x40+ 0x0+1170 0x0+1170 R E 0x10000
- LOAD +0x0+1170 0x60+1170 0x60+1170 0x0+ef0 0x0+ef0 RW +0x10000
- DYNAMIC +0x0+11d0 0x60+11d0 0x60+11d0 0x0+150 0x0+150 RW +0x8
- TLS +0x0+1170 0x60+1170 0x60+1170 0x0+60 0x0+a0 R +0x4
+ LOAD +0x0+ 0x40+ 0x40+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000
+ LOAD +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
+ DYNAMIC +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+150 0x0+150 RW +0x8
+ TLS +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+60 0x0+a0 R +0x4
IA_64_UNWIND .* R +0x8
#...
@@ -62,7 +62,7 @@ Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries
Symbol table '.dynsym' contains 8 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +1: 60+1[0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+2: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+3: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+4: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
@@ -114,7 +114,7 @@ Symbol table '.symtab' contains 72 entries:
+39: 0+7c +0 TLS +GLOBAL DEFAULT +12 bg8
+40: 0+74 +0 TLS +GLOBAL DEFAULT +12 bg6
+41: 0+68 +0 TLS +GLOBAL DEFAULT +12 bg3
- +42: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +42: 60+1[0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+43: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
+44: 0+48 +0 TLS +GLOBAL HIDDEN +11 sh3
+45: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
diff --git a/ld/testsuite/ld-ia64/tlsbin.td b/ld/testsuite/ld-ia64/tlsbin.td
index d4492e8..1e724e7 100644
--- a/ld/testsuite/ld-ia64/tlsbin.td
+++ b/ld/testsuite/ld-ia64/tlsbin.td
@@ -8,9 +8,9 @@
.*: +file format elf..-ia64-.*
Contents of section .tdata:
- (60+)?1170 11000000 12000000 13000000 14000000 .*
- (60+)?1180 15000000 16000000 17000000 18000000 .*
- (60+)?1190 41000000 42000000 43000000 44000000 .*
- (60+)?11a0 45000000 46000000 47000000 48000000 .*
- (60+)?11b0 01010000 02010000 03010000 04010000 .*
- (60+)?11c0 05010000 06010000 07010000 08010000 .*
+ (60+)?1[0-9a-f]+ 11000000 12000000 13000000 14000000 .*
+ (60+)?1[0-9a-f]+ 15000000 16000000 17000000 18000000 .*
+ (60+)?1[0-9a-f]+ 41000000 42000000 43000000 44000000 .*
+ (60+)?1[0-9a-f]+ 45000000 46000000 47000000 48000000 .*
+ (60+)?1[0-9a-f]+ 01010000 02010000 03010000 04010000 .*
+ (60+)?1[0-9a-f]+ 05010000 06010000 07010000 08010000 .*
diff --git a/ld/testsuite/ld-ia64/tlspic.rd b/ld/testsuite/ld-ia64/tlspic.rd
index c2ad880..355d6ff 100644
--- a/ld/testsuite/ld-ia64/tlspic.rd
+++ b/ld/testsuite/ld-ia64/tlspic.rd
@@ -19,9 +19,9 @@ Section Headers:
\[ 7\] .text +PROGBITS +0+1000 0+1000 0+110 00 +AX +0 +0 4096
\[ 8\] .IA_64.unwind_inf +.*
\[ 9\] .IA_64.unwind +.*
- \[10\] .tdata +PROGBITS +0+11140 0+1140 0+60 00 WAT +0 +0 +4
- \[11\] .tbss +NOBITS +0+111a0 0+11a0 0+20 00 WAT +0 +0 +1
- \[12\] .dynamic +DYNAMIC +0+111a0 0+11a0 0+140 10 +WA +3 +0 +8
+ \[10\] .tdata +PROGBITS +0+11[0-9a-f]+ 0+1[0-9a-f]+ 0+60 00 WAT +0 +0 +4
+ \[11\] .tbss +NOBITS +0+11[0-9a-f]+ 0+1[0-9a-f]+ 0+20 00 WAT +0 +0 +1
+ \[12\] .dynamic +DYNAMIC +0+11[0-9a-f]+ 0+1[0-9a-f]+ 0+140 10 +WA +3 +0 +8
\[13\] .data +.*
\[14\] .got +PROGBITS +0+12000 0+2000 0+50 00 WAp +0 +0 +8
\[15\] .IA_64.pltoff +.*
@@ -39,11 +39,11 @@ There are 5 program headers, starting at offset [0-9]+
Program Headers:
Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
- LOAD +0x0+ 0x0+ 0x0+ 0x0+1140 0x0+1140 R E 0x10000
- LOAD +0x0+1140 0x0+11140 0x0+11140 0x0+f20 0x0+f20 RW +0x10000
- DYNAMIC +0x0+11a0 0x0+111a0 0x0+111a0 0x0+140 0x0+140 RW +0x8
- TLS +0x0+1140 0x0+11140 0x0+11140 0x0+60 0x0+80 R +0x4
- IA_64_UNWIND +0x0+1128 0x0+1128 0x0+1128 0x0+18 0x0+18 R +0x8
+ LOAD +0x0+ 0x0+ 0x0+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000
+ LOAD +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
+ DYNAMIC +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+140 0x0+140 RW +0x8
+ TLS +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+60 0x0+80 R +0x4
+ IA_64_UNWIND +0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+18 0x0+18 R +0x8
#...
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 6 entries:
@@ -71,7 +71,7 @@ Symbol table '.dynsym' contains 23 entries:
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
+[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+11[0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
@@ -134,7 +134,7 @@ Symbol table '.symtab' contains 60 entries:
+[0-9]+: 0+44 +0 TLS +LOCAL +HIDDEN +10 sh2
+[0-9]+: 0+54 +0 TLS +LOCAL +HIDDEN +10 sh6
+[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+11[0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
diff --git a/ld/testsuite/ld-ia64/tlspic.td b/ld/testsuite/ld-ia64/tlspic.td
index 86ac0e3..47b5b6c 100644
--- a/ld/testsuite/ld-ia64/tlspic.td
+++ b/ld/testsuite/ld-ia64/tlspic.td
@@ -8,9 +8,9 @@
.*: +file format elf..-ia64-.*
Contents of section .tdata:
- 11140 11000000 12000000 13000000 14000000 .*
- 11150 15000000 16000000 17000000 18000000 .*
- 11160 41000000 42000000 43000000 44000000 .*
- 11170 45000000 46000000 47000000 48000000 .*
- 11180 01010000 02010000 03010000 04010000 .*
- 11190 05010000 06010000 07010000 08010000 .*
+ 11[0-9a-f]+ 11000000 12000000 13000000 14000000 .*
+ 11[0-9a-f]+ 15000000 16000000 17000000 18000000 .*
+ 11[0-9a-f]+ 41000000 42000000 43000000 44000000 .*
+ 11[0-9a-f]+ 45000000 46000000 47000000 48000000 .*
+ 11[0-9a-f]+ 01010000 02010000 03010000 04010000 .*
+ 11[0-9a-f]+ 05010000 06010000 07010000 08010000 .*