mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-19 13:40:59 +08:00
mips: Do not use jal to reach __libc_start_main
Since __libc_start_main may not be in the same 256MB-aligned region as the function __start, replace use of jal instruction with la/jalr. This fixes linker issue reported in: https://sourceware.org/bugzilla/show_bug.cgi?id=17601 [BZ #17601] * sysdeps/mips/start.S (__start): Use indirect jump to call __libc_start_main.
This commit is contained in:
parent
909e16d960
commit
bbe4c142b0
@ -1,3 +1,9 @@
|
||||
2014-12-02 Petar Jovanovic <petar.jovanovic@rt-rk.com>
|
||||
|
||||
[BZ #17601]
|
||||
* sysdeps/mips/start.S (__start): Use indirect jump to call
|
||||
__libc_start_main.
|
||||
|
||||
2014-12-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* nptl/tst-stack4.c (dso_process): Use int not uintptr_t for t.
|
||||
|
2
NEWS
2
NEWS
@ -13,7 +13,7 @@ Version 2.21
|
||||
16619, 16740, 16857, 17192, 17266, 17344, 17363, 17370, 17371, 17411,
|
||||
17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571,
|
||||
17572, 17573, 17574, 17581, 17582, 17583, 17584, 17585, 17589, 17594,
|
||||
17608, 17616, 17625, 17633, 17664, 17665.
|
||||
17601, 17608, 17616, 17625, 17633, 17664, 17665.
|
||||
|
||||
* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
|
||||
under certain input conditions resulting in the execution of a shell for
|
||||
|
@ -106,7 +106,8 @@ ENTRY_POINT:
|
||||
move $9, $2 /* rtld_fini */
|
||||
move $10, $29 /* stack_end */
|
||||
# endif
|
||||
jal __libc_start_main
|
||||
PTR_LA $25, __libc_start_main
|
||||
jalr $25
|
||||
hlt: b hlt /* Crash if somehow it does return. */
|
||||
|
||||
#elif _MIPS_SIM == _ABIO32 /* __mips16 */
|
||||
@ -157,7 +158,9 @@ ENTRY_POINT:
|
||||
sw $4, 16($sp) /* fini */
|
||||
lw $4, 3f /* main */
|
||||
sw $2, 20($sp) /* rtld_fini */
|
||||
jal __libc_start_main
|
||||
/* Load and call __libc_start_main(). */
|
||||
lw $3, 4f
|
||||
jalr $3
|
||||
# endif
|
||||
hlt: b hlt /* Crash if somehow it does return. */
|
||||
# ifndef __PIC__
|
||||
@ -165,6 +168,7 @@ hlt: b hlt /* Crash if somehow it does return. */
|
||||
1: .word __libc_csu_fini
|
||||
2: .word __libc_csu_init
|
||||
3: .word main
|
||||
4: .word __libc_start_main
|
||||
# endif
|
||||
|
||||
#else /* __mips16 && _MIPS_SIM != _ABIO32 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user