glibc/sysdeps/x86_64/tst-split-dynreloc.c
Petar Jovanovic fa19d5c48a Fix dynamic linker issue with bind-now
Fix the bind-now case when DT_REL and DT_JMPREL sections are separate
and there is a gap between them.

	[BZ #14341]
	* elf/dynamic-link.h (elf_machine_lazy_rel): Properly handle the
	case when there is a gap between DT_REL and DT_JMPREL sections.
	* sysdeps/x86_64/Makefile (tests): Add tst-split-dynreloc.
	(LDFLAGS-tst-split-dynreloc): New.
	(tst-split-dynreloc-ENV): Likewise.
	* sysdeps/x86_64/tst-split-dynreloc.c: New file.
	* sysdeps/x86_64/tst-split-dynreloc.lds: Likewise.
2015-08-19 05:37:01 -07:00

29 lines
712 B
C

/* This test will be used to create an executable with a specific
section layout in which .rela.dyn and .rela.plt are not contiguous.
For x86 case, readelf will report something like:
...
[10] .rela.dyn RELA
[11] .bar PROGBITS
[12] .rela.plt RELA
...
This is important as this case was not correctly handled by dynamic
linker in the bind-now case, and the second section was never
processed. */
#include <stdio.h>
const int __attribute__ ((section(".bar"))) bar = 0x12345678;
static const char foo[] = "foo";
static int
do_test (void)
{
printf ("%s %d\n", foo, bar);
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"