]> 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:27 +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 0d3a8025cb2e8bc74e8acd1c2182f27e4eb686d3..32e31642bdac1267f8e73197ae5e9d698eff0038 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 60a91310ff85eb82ac7300f675f18070e752e400..e06c4e988bb049ef5e252b663c439b911784b4a3 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 3727877fd3f6daa1e4706b649f93d6476cd882ac..c42ba9b50cc71192f2b25dc6804bde1ac14b42e6 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 7bf5165b8ecc735d4d9cc175406bc7c78913ab6d..506490c54a2d9c23890f6d39d2b78774213879be 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