* [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
@ 2015-07-14 11:27 Petar Jovanovic
2015-07-14 13:17 ` H.J. Lu
0 siblings, 1 reply; 4+ messages in thread
From: Petar Jovanovic @ 2015-07-14 11:27 UTC (permalink / raw)
To: libc-alpha; +Cc: vapier, roland
ping
-----Original Message-----
From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
Sent: Friday, June 12, 2015 6:36 PM
To: 'libc-alpha@sourceware.org'
Cc: 'vapier@gentoo.org'; 'roland@hack.frob.com'
Subject: [PING 2][PATCH v4] Fix dynamic linker issue with bind-now
ping
-----Original Message-----
From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
Sent: Tuesday, May 26, 2015 5:21 PM
To: 'libc-alpha@sourceware.org'
Cc: 'vapier@gentoo.org'; 'roland@hack.frob.com'
Subject: [PING][PATCH v4] Fix dynamic linker issue with bind-now
PTAL.
-----Original Message-----
From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
Sent: Tuesday, April 28, 2015 8:03 PM
To: libc-alpha@sourceware.org
Cc: vapier@gentoo.org; roland@hack.frob.com; Petar Jovanovic
Subject: [PATCH v4] 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.
---
v4:
- Moved the Makefile part into sysdeps/x86_64/Makefile, so the test is
executed for x86-64 only
v3:
- addressed comments raised by Mike Frysinger
- use of test-skeleton.c
- use -Wl,-z,now instead of LD_BIND_NOW=1
- moved comments to the start of the test file
v2:
- addressed all comments raised by Andreas Schwab
elf/dynamic-link.h | 4 +++-
elf/tst-split-dynreloc.c | 28 ++++++++++++++++++++++++++++
elf/tst-split-dynreloc.lds | 6 ++++++
sysdeps/x86_64/Makefile | 4 ++++
4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644
elf/tst-split-dynreloc.c create mode 100644 elf/tst-split-dynreloc.lds
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 8d428e2..83e760b
100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -135,7 +135,9 @@ elf_machine_lazy_rel (struct link_map *map,
\
if (ranges[0].start + ranges[0].size == (start + size))
\
ranges[0].size -= size;
\
- if (! ELF_DURING_STARTUP && ((do_lazy) || ranges[0].size == 0))
\
+ if (! ELF_DURING_STARTUP
\
+ && ((do_lazy) || ranges[0].size == 0
\
+ || ranges[0].start + ranges[0].size != start))
\
{
\
ranges[1].start = start;
\
ranges[1].size = size;
\
diff --git a/elf/tst-split-dynreloc.c b/elf/tst-split-dynreloc.c new file
mode 100644 index 0000000..bdb6b7c
--- /dev/null
+++ b/elf/tst-split-dynreloc.c
@@ -0,0 +1,28 @@
+/* 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>
+
+static 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"
diff --git a/elf/tst-split-dynreloc.lds b/elf/tst-split-dynreloc.lds new
file mode 100644 index 0000000..ed0a656
--- /dev/null
+++ b/elf/tst-split-dynreloc.lds
@@ -0,0 +1,6 @@
+SECTIONS
+{
+ .bar : { *(.bar) }
+}
+INSERT AFTER .rela.dyn;
+
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile index
ef70a50..b9d949c 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -38,6 +38,10 @@ tests += tst-audit3 tst-audit4 tst-audit5 tst-audit10
ifeq (yes,$(config-cflags-avx)) tests += tst-audit6 tst-audit7 endif
+
+tests += tst-split-dynreloc
+LDFLAGS-tst-split-dynreloc = -Wl,-T,tst-split-dynreloc.lds -Wl,-z,now
+
modules-names += tst-auditmod3a tst-auditmod3b \
tst-auditmod4a tst-auditmod4b \
tst-auditmod5a tst-auditmod5b \
--
1.7.9.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
2015-07-14 11:27 [PING 3][PATCH v4] Fix dynamic linker issue with bind-now Petar Jovanovic
@ 2015-07-14 13:17 ` H.J. Lu
2015-07-14 13:31 ` Petar Jovanovic
0 siblings, 1 reply; 4+ messages in thread
From: H.J. Lu @ 2015-07-14 13:17 UTC (permalink / raw)
To: Petar Jovanovic; +Cc: GNU C Library, Mike Frysinger, Roland McGrath
On Tue, Jul 14, 2015 at 4:27 AM, Petar Jovanovic
<petar.jovanovic@rt-rk.com> wrote:
> ping
>
> -----Original Message-----
> From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
> Sent: Friday, June 12, 2015 6:36 PM
> To: 'libc-alpha@sourceware.org'
> Cc: 'vapier@gentoo.org'; 'roland@hack.frob.com'
> Subject: [PING 2][PATCH v4] Fix dynamic linker issue with bind-now
>
> ping
>
> -----Original Message-----
> From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
> Sent: Tuesday, May 26, 2015 5:21 PM
> To: 'libc-alpha@sourceware.org'
> Cc: 'vapier@gentoo.org'; 'roland@hack.frob.com'
> Subject: [PING][PATCH v4] Fix dynamic linker issue with bind-now
>
> PTAL.
>
> -----Original Message-----
> From: Petar Jovanovic [mailto:petar.jovanovic@rt-rk.com]
> Sent: Tuesday, April 28, 2015 8:03 PM
> To: libc-alpha@sourceware.org
> Cc: vapier@gentoo.org; roland@hack.frob.com; Petar Jovanovic
> Subject: [PATCH v4] 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.
> ---
> v4:
> - Moved the Makefile part into sysdeps/x86_64/Makefile, so the test is
> executed for x86-64 only
>
It will be helpful to open a bug report.
--
H.J.
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
2015-07-14 13:17 ` H.J. Lu
@ 2015-07-14 13:31 ` Petar Jovanovic
2015-07-14 13:34 ` H.J. Lu
0 siblings, 1 reply; 4+ messages in thread
From: Petar Jovanovic @ 2015-07-14 13:31 UTC (permalink / raw)
To: 'H.J. Lu'
Cc: 'GNU C Library', 'Mike Frysinger',
'Roland McGrath'
-----Original Message-----
From: H.J. Lu [mailto:hjl.tools@gmail.com]
Sent: Tuesday, July 14, 2015 3:17 PM
To: Petar Jovanovic
Cc: GNU C Library; Mike Frysinger; Roland McGrath
Subject: Re: [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
On Tue, Jul 14, 2015 at 4:27 AM, Petar Jovanovic <petar.jovanovic@rt-rk.com> wrote:
> It will be helpful to open a bug report.
>
> --
> H.J.
There has been a bug report [1] for this issue since 2012.
I mentioned it in my post [2] almost a year ago.
Regards,
Petar
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=14341
[2] https://sourceware.org/ml/libc-alpha/2014-08/msg00322.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
2015-07-14 13:31 ` Petar Jovanovic
@ 2015-07-14 13:34 ` H.J. Lu
0 siblings, 0 replies; 4+ messages in thread
From: H.J. Lu @ 2015-07-14 13:34 UTC (permalink / raw)
To: Petar Jovanovic; +Cc: GNU C Library, Mike Frysinger, Roland McGrath
On Tue, Jul 14, 2015 at 6:31 AM, Petar Jovanovic
<petar.jovanovic@rt-rk.com> wrote:
> -----Original Message-----
> From: H.J. Lu [mailto:hjl.tools@gmail.com]
> Sent: Tuesday, July 14, 2015 3:17 PM
> To: Petar Jovanovic
> Cc: GNU C Library; Mike Frysinger; Roland McGrath
> Subject: Re: [PING 3][PATCH v4] Fix dynamic linker issue with bind-now
>
> On Tue, Jul 14, 2015 at 4:27 AM, Petar Jovanovic <petar.jovanovic@rt-rk.com> wrote:
>> It will be helpful to open a bug report.
>>
>> --
>> H.J.
>
> There has been a bug report [1] for this issue since 2012.
> I mentioned it in my post [2] almost a year ago.
>
> Regards,
> Petar
>
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=14341
> [2] https://sourceware.org/ml/libc-alpha/2014-08/msg00322.html
>
Please include PR # in your patch as well as ChangeLog entry.
--
H.J.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-07-14 13:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-14 11:27 [PING 3][PATCH v4] Fix dynamic linker issue with bind-now Petar Jovanovic
2015-07-14 13:17 ` H.J. Lu
2015-07-14 13:31 ` Petar Jovanovic
2015-07-14 13:34 ` H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).