]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
MIPS, SPARC: more fixes to the vfork aliases in libpthread.so
authorAurelien Jarno <aurelien@aurel32.net>
Tue, 21 Jun 2016 21:59:37 +0000 (23:59 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 27 Jun 2016 08:02:14 +0000 (10:02 +0200)
Commit 43c29487 tried to fix the vfork aliases in libpthread.so on MIPS
and SPARC, but failed to do it correctly, introducing an ABI change.

This patch does the remaining changes needed to align the MIPS and SPARC
vfork implementations with the other architectures. That way the the
alpha version of pt-vfork.S works correctly for MIPS and SPARC. The
changes for alpha were done in 82aab97c.

Changelog:
* sysdeps/unix/sysv/linux/mips/vfork.S (__vfork): Rename into
__libc_vfork.
(__vfork) [IS_IN (libc)]: Remove alias.
(__libc_vfork) [IS_IN (libc)]: Define as an alias.
* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.

(cherry picked from commit b87c1ec3fa398646f042a68f0ce0f7d09c1348c7)

ChangeLog
sysdeps/unix/sysv/linux/mips/vfork.S
sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S

index 234f3cd8f7ac61f46862b55c5d1208736f32f380..8e748280e2d8b4c3c4a26641f109e8f54eeaaced 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-06-21  Aurelien Jarno  <aurelien@aurel32.net>
+
+       * sysdeps/unix/sysv/linux/mips/vfork.S (__vfork): Rename into
+       __libc_vfork.
+       (__vfork) [IS_IN (libc)]: Remove alias.
+       (__libc_vfork) [IS_IN (libc)]: Define as an alias.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
+
 2016-06-18  Aurelien Jarno  <aurelien@aurel32.net>
 
        * sysdeps/unix/sysv/linux/mips/vfork.S (__vfork): Conditionalize
index c0c0ce699159589d862acbaa5acf0b0b33601153..1867c8626ebedc9f0f43c7e3e83f85ea61330ea2 100644 (file)
 LOCALSZ= 1
 FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
 GPOFF= FRAMESZ-(1*SZREG)
-NESTED(__vfork,FRAMESZ,sp)
+NESTED(__libc_vfork,FRAMESZ,sp)
 #ifdef __PIC__
        SETUP_GP
 #endif
        PTR_SUBU sp, FRAMESZ
        cfi_adjust_cfa_offset (FRAMESZ)
-       SETUP_GP64_REG (a5, __vfork)
+       SETUP_GP64_REG (a5, __libc_vfork)
 #ifdef __PIC__
        SAVE_GP (GPOFF)
 #endif
@@ -104,10 +104,10 @@ L(error):
        RESTORE_GP64_REG
        j               __syscall_error
 #endif
-       END(__vfork)
+       END(__libc_vfork)
 
 #if IS_IN (libc)
-libc_hidden_def(__vfork)
-weak_alias (__vfork, vfork)
-strong_alias (__vfork, __libc_vfork)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
+libc_hidden_def (__vfork)
 #endif
index 94f2c8d3e45791c88fe1bd815075de4907178843..0d0a3b529824bdb62beed95e1138a81cb4654a51 100644 (file)
@@ -21,7 +21,7 @@
 
        .text
        .globl          __syscall_error
-ENTRY(__vfork)
+ENTRY(__libc_vfork)
        ld      [%g7 + PID], %o5
        cmp     %o5, 0
        bne     1f
@@ -42,10 +42,10 @@ ENTRY(__vfork)
         st     %o5, [%g7 + PID]
 1:     retl
         nop
-END(__vfork)
+END(__libc_vfork)
 
 #if IS_IN (libc)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
 libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
-strong_alias (__vfork, __libc_vfork)
 #endif
index a7479e9f25c845d4ba4aaf5ab0dad79496445156..0818eba02e31b12bafde8823e65a7bffae8bf678 100644 (file)
@@ -21,7 +21,7 @@
 
        .text
        .globl  __syscall_error
-ENTRY(__vfork)
+ENTRY(__libc_vfork)
        ld      [%g7 + PID], %o5
        sethi   %hi(0x80000000), %o3
        cmp     %o5, 0
@@ -42,10 +42,10 @@ ENTRY(__vfork)
         st     %o5, [%g7 + PID]
 1:     retl
         nop
-END(__vfork)
+END(__libc_vfork)
 
 #if IS_IN (libc)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
 libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
-strong_alias (__vfork, __libc_vfork)
 #endif