mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-04 10:24:13 +00:00
Set non_ir_ref if a symbol is referenced by a non-shared object
bfd/ PR ld/15323 * elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a symbol is referenced by a non-shared object. * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. ld/testsuite/ PR ld/15323 * ld-plugin/lto.exp (lto_link_tests): Add pr15323a-r.o. (lto_run_tests): Add a test for PR ld/15323. * ld-plugin/pr15323.out: New file. * ld-plugin/pr15323a.c: Likewise. * ld-plugin/pr15323b.c: Likewise.
This commit is contained in:
parent
ab047a1e09
commit
61315175ad
@ -1,3 +1,10 @@
|
||||
2013-03-29 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/15323
|
||||
* elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a
|
||||
symbol is referenced by a non-shared object.
|
||||
* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
|
||||
|
||||
2013-03-28 Joe Seymour <jseymour@codesourcery.com>
|
||||
|
||||
* elf32-sh.c (sh_elf_relocate_section): Suppress warnings for
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Intel 80386/80486-specific support for 32-bit ELF
|
||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@ -1514,6 +1514,7 @@ elf_i386_check_relocs (bfd *abfd,
|
||||
|
||||
/* It is referenced by a non-shared object. */
|
||||
h->ref_regular = 1;
|
||||
h->root.non_ir_ref = 1;
|
||||
}
|
||||
|
||||
if (! elf_i386_tls_transition (info, abfd, sec, NULL,
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* X86-64 specific support for ELF
|
||||
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
2010, 2011, 2012
|
||||
2010, 2011, 2012, 2013
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jan Hubicka <jh@suse.cz>.
|
||||
|
||||
@ -1519,6 +1519,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
|
||||
/* It is referenced by a non-shared object. */
|
||||
h->ref_regular = 1;
|
||||
h->root.non_ir_ref = 1;
|
||||
}
|
||||
|
||||
if (! elf_x86_64_tls_transition (info, abfd, sec, NULL,
|
||||
|
@ -1,3 +1,13 @@
|
||||
2013-03-29 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/15323
|
||||
* ld-plugin/lto.exp (lto_link_tests): Add pr15323a-r.o.
|
||||
(lto_run_tests): Add a test for PR ld/15323.
|
||||
|
||||
* ld-plugin/pr15323.out: New file.
|
||||
* ld-plugin/pr15323a.c: Likewise.
|
||||
* ld-plugin/pr15323b.c: Likewise.
|
||||
|
||||
2013-03-22 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ld-elf/init0.s: Add alloc attribute to .section directive.
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Expect script for ld-plugin LTO tests
|
||||
# Copyright 2011
|
||||
# Copyright 2011, 2012, 2013
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
@ -143,6 +143,9 @@ set lto_link_tests {
|
||||
{"PR ld/13287"
|
||||
"-flto -fuse-linker-plugin -Wl,--as-needed" "-flto"
|
||||
{pr13287.cc} {} "pr13287.exe" "c++"}
|
||||
{"PR ld/15323"
|
||||
"-O2 -flto -fuse-linker-plugin -r -nostdlib" "-O2 -flto"
|
||||
{pr15323a.c} {} "pr15323a-r.o" "c"}
|
||||
}
|
||||
|
||||
# Generate input files for complex LTO tests for ELF.
|
||||
@ -266,6 +269,9 @@ set lto_run_tests {
|
||||
{"PR ld/13201"
|
||||
"-O2 -flto -fuse-linker-plugin -Wl,--as-needed tmpdir/pr13201.o -lm" ""
|
||||
{dummy.c} "pr13201.exe" "pr13201.out" "" "c"}
|
||||
{"PR ld/15323"
|
||||
"-O2 -flto -fuse-linker-plugin -Wl,--as-needed tmpdir/pr15323a-r.o" ""
|
||||
{pr15323b.c} "pr15323.exe" "pr15323.out" "-flto -O2" "c"}
|
||||
}
|
||||
|
||||
# LTO run-time tests for ELF
|
||||
|
1
ld/testsuite/ld-plugin/pr15323.out
Normal file
1
ld/testsuite/ld-plugin/pr15323.out
Normal file
@ -0,0 +1 @@
|
||||
OK
|
14
ld/testsuite/ld-plugin/pr15323a.c
Normal file
14
ld/testsuite/ld-plugin/pr15323a.c
Normal file
@ -0,0 +1,14 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int x;
|
||||
|
||||
__attribute__((weak))
|
||||
void foobar (void) { x++; }
|
||||
|
||||
int main (void)
|
||||
{
|
||||
foobar ();
|
||||
if (x == -1)
|
||||
printf ("OK\n");
|
||||
return 0;
|
||||
}
|
3
ld/testsuite/ld-plugin/pr15323b.c
Normal file
3
ld/testsuite/ld-plugin/pr15323b.c
Normal file
@ -0,0 +1,3 @@
|
||||
extern int x;
|
||||
|
||||
void foobar (void) { x--; }
|
Loading…
Reference in New Issue
Block a user