+2015-08-18 Alan Modra <amodra@gmail.com>
+
+ [BZ #18421]
+ * sysdeps/hppa/start.S [SHARED]: Use .section .data.rel.ro and define
+ .Lp__global.
+ (_start): Load %dp via .Lp__global.
+ [!SHARED]: Use .section .rodata.
+
2015-08-18 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/hppa/bits/timerfd.h: New file.
/* Have the linker create plabel words so we get PLABEL32
relocs and not 21/14. The use of 21/14 relocs is only
supported in the latest dynamic linker. */
- .section .rodata
+#ifdef SHARED
+ .section .data.rel.ro,"aw",@progbits
+#else
+ .section .rodata,"a",@progbits
+#endif
.align 4
.Lpmain:
.word P%main
.word P%__libc_csu_fini
.Lp__libc_csu_init:
.word P%__libc_csu_init
+#ifdef SHARED
+.Lp__global:
+ .word $global$
+#endif
.text
.align 4
/* void *stack_end (7th argument) */
stw %sp, -60(%sp)
+#ifdef SHARED
+ addil LT'.Lp__global, %r19
+ ldw RT'.Lp__global(%r1), %dp
+#else
/* load global */
ldil L%$global$, %dp
ldo R%$global$(%dp), %dp
-
+#endif
bl __libc_start_main,%r2
nop
/* die horribly if it returned (it shouldn't) */