mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 10:35:12 +08:00
Issue relocation in RO section warning for -z text
This patch changes linker to issue a warning for relocation in readonly section for -z text. bfd/ PR ld/17935 * elf32-i386.c (elf_i386_readonly_dynrelocs): Also issue a warning for relocation in readonly section for -z text. (elf_i386_size_dynamic_sections): Likewise. * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise. (elf_x86_64_size_dynamic_sections): Likewise. ld/testsuite/ PR ld/17935 * ld-i386/i386.exp: Run pr17935-1 and pr17935-2. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr17935-1.d: New file. * ld-i386/pr17935-1.s: Likewise. * ld-i386/pr17935-2.d: Likewise. * ld-i386/pr17935-2.s: Likewise. * ld-x86-64/pr17935-1.d: Likewise. * ld-x86-64/pr17935-1.s: Likewise. * ld-x86-64/pr17935-2.d: Likewise. * ld-x86-64/pr17935-2.s: Likewise.
This commit is contained in:
parent
11228d29d5
commit
1952c5cd7d
@ -1,3 +1,12 @@
|
||||
2015-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/17935
|
||||
* elf32-i386.c (elf_i386_readonly_dynrelocs): Also issue a
|
||||
warning for relocation in readonly section for -z text.
|
||||
(elf_i386_size_dynamic_sections): Likewise.
|
||||
* elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
|
||||
(elf_x86_64_size_dynamic_sections): Likewise.
|
||||
|
||||
2015-02-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/12365
|
||||
|
@ -2600,8 +2600,9 @@ elf_i386_readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
||||
|
||||
info->flags |= DF_TEXTREL;
|
||||
|
||||
if (info->warn_shared_textrel && info->shared)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"),
|
||||
if ((info->warn_shared_textrel && info->shared)
|
||||
|| info->error_textrel)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'\n"),
|
||||
p->sec->owner, h->root.root.string,
|
||||
p->sec);
|
||||
|
||||
@ -2842,8 +2843,9 @@ elf_i386_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
|
||||
&& (info->flags & DF_TEXTREL) == 0)
|
||||
{
|
||||
info->flags |= DF_TEXTREL;
|
||||
if (info->warn_shared_textrel && info->shared)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'.\n"),
|
||||
if ((info->warn_shared_textrel && info->shared)
|
||||
|| info->error_textrel)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'\n"),
|
||||
p->sec->owner, p->sec);
|
||||
}
|
||||
}
|
||||
|
@ -2850,8 +2850,9 @@ elf_x86_64_readonly_dynrelocs (struct elf_link_hash_entry *h,
|
||||
|
||||
info->flags |= DF_TEXTREL;
|
||||
|
||||
if (info->warn_shared_textrel && info->shared)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"),
|
||||
if ((info->warn_shared_textrel && info->shared)
|
||||
|| info->error_textrel)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'\n"),
|
||||
p->sec->owner, h->root.root.string,
|
||||
p->sec);
|
||||
|
||||
@ -3090,8 +3091,9 @@ elf_x86_64_size_dynamic_sections (bfd *output_bfd,
|
||||
&& (info->flags & DF_TEXTREL) == 0)
|
||||
{
|
||||
info->flags |= DF_TEXTREL;
|
||||
if (info->warn_shared_textrel && info->shared)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'.\n"),
|
||||
if ((info->warn_shared_textrel && info->shared)
|
||||
|| info->error_textrel)
|
||||
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'\n"),
|
||||
p->sec->owner, p->sec);
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,18 @@
|
||||
2015-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/17935
|
||||
* ld-i386/i386.exp: Run pr17935-1 and pr17935-2.
|
||||
* ld-x86-64/x86-64.exp: Likewise.
|
||||
|
||||
* ld-i386/pr17935-1.d: New file.
|
||||
* ld-i386/pr17935-1.s: Likewise.
|
||||
* ld-i386/pr17935-2.d: Likewise.
|
||||
* ld-i386/pr17935-2.s: Likewise.
|
||||
* ld-x86-64/pr17935-1.d: Likewise.
|
||||
* ld-x86-64/pr17935-1.s: Likewise.
|
||||
* ld-x86-64/pr17935-2.d: Likewise.
|
||||
* ld-x86-64/pr17935-2.s: Likewise.
|
||||
|
||||
2015-02-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/12365
|
||||
|
@ -263,6 +263,8 @@ run_dump_test "pr12627"
|
||||
run_dump_test "pr13302"
|
||||
run_dump_test "pr14215"
|
||||
run_dump_test "pr17057"
|
||||
run_dump_test "pr17935-1"
|
||||
run_dump_test "pr17935-2"
|
||||
|
||||
# Must be Linux native with the C compiler
|
||||
if { [isnative]
|
||||
|
3
ld/testsuite/ld-i386/pr17935-1.d
Normal file
3
ld/testsuite/ld-i386/pr17935-1.d
Normal file
@ -0,0 +1,3 @@
|
||||
# as: --32
|
||||
# ld: -m elf_i386 -shared -z text
|
||||
# error: warning: relocation against `foo' in readonly section `.text'
|
7
ld/testsuite/ld-i386/pr17935-1.s
Normal file
7
ld/testsuite/ld-i386/pr17935-1.s
Normal file
@ -0,0 +1,7 @@
|
||||
.text
|
||||
.globl foo
|
||||
foo:
|
||||
.byte 0
|
||||
.globl bar
|
||||
bar:
|
||||
.dc.a foo
|
3
ld/testsuite/ld-i386/pr17935-2.d
Normal file
3
ld/testsuite/ld-i386/pr17935-2.d
Normal file
@ -0,0 +1,3 @@
|
||||
# as: --32
|
||||
# ld: -m elf_i386 -shared -z text
|
||||
# error: warning: relocation in readonly section `.text'
|
6
ld/testsuite/ld-i386/pr17935-2.s
Normal file
6
ld/testsuite/ld-i386/pr17935-2.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
foo:
|
||||
.byte 0
|
||||
.globl bar
|
||||
bar:
|
||||
.dc.a foo
|
3
ld/testsuite/ld-x86-64/pr17935-1.d
Normal file
3
ld/testsuite/ld-x86-64/pr17935-1.d
Normal file
@ -0,0 +1,3 @@
|
||||
# as: --64
|
||||
# ld: -m elf_x86_64 -shared -z text
|
||||
# error: warning: relocation against `foo' in readonly section `.text'
|
7
ld/testsuite/ld-x86-64/pr17935-1.s
Normal file
7
ld/testsuite/ld-x86-64/pr17935-1.s
Normal file
@ -0,0 +1,7 @@
|
||||
.text
|
||||
.globl foo
|
||||
foo:
|
||||
.byte 0
|
||||
.globl bar
|
||||
bar:
|
||||
.dc.a foo
|
3
ld/testsuite/ld-x86-64/pr17935-2.d
Normal file
3
ld/testsuite/ld-x86-64/pr17935-2.d
Normal file
@ -0,0 +1,3 @@
|
||||
# as: --64
|
||||
# ld: -m elf_x86_64 -shared -z text
|
||||
# error: warning: relocation in readonly section `.text'
|
6
ld/testsuite/ld-x86-64/pr17935-2.s
Normal file
6
ld/testsuite/ld-x86-64/pr17935-2.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
foo:
|
||||
.byte 0
|
||||
.globl bar
|
||||
bar:
|
||||
.dc.a foo
|
@ -311,6 +311,8 @@ run_dump_test "mov1a"
|
||||
run_dump_test "mov1b"
|
||||
run_dump_test "mov1c"
|
||||
run_dump_test "mov1d"
|
||||
run_dump_test "pr17935-1"
|
||||
run_dump_test "pr17935-2"
|
||||
|
||||
# Must be native with the C compiler
|
||||
if { [isnative] && [which $CC] != 0 } {
|
||||
|
Loading…
Reference in New Issue
Block a user