diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/pt-vfork.S | 9 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/vfork.S | 11 |
3 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 271e31d45d..a126a4ac5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-05-25 Richard Henderson <rth@twiddle.net> + + * sysdeps/unix/sysv/linux/alpha/vfork.S (vfork, __vfork): Only + define if !NOT_IN_libc. + * sysdeps/unix/sysv/linux/alpha/pt-vfork.S (vfork, __vfork): Only + define with non-default symbol versions. + 2014-05-23 Richard Henderson <rth@twiddle.net> * nptl/pt-vfork.c (vfork_resolve): Rename from vfork_ifunc. diff --git a/sysdeps/unix/sysv/linux/alpha/pt-vfork.S b/sysdeps/unix/sysv/linux/alpha/pt-vfork.S index 1d137365b2..18bf338b9f 100644 --- a/sysdeps/unix/sysv/linux/alpha/pt-vfork.S +++ b/sysdeps/unix/sysv/linux/alpha/pt-vfork.S @@ -32,3 +32,12 @@ #include <vfork.S> #endif + +#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) +compat_symbol (libpthread, __libc_vfork, vfork, GLIBC_2_0); +#endif + +#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20) +strong_alias (__libc_vfork, __vfork_compat) +compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2); +#endif diff --git a/sysdeps/unix/sysv/linux/alpha/vfork.S b/sysdeps/unix/sysv/linux/alpha/vfork.S index 0507d3523e..befcd78e60 100644 --- a/sysdeps/unix/sysv/linux/alpha/vfork.S +++ b/sysdeps/unix/sysv/linux/alpha/vfork.S @@ -18,7 +18,7 @@ #include <sysdep.h> #include <tcb-offsets.h> -ENTRY(__vfork) +ENTRY(__libc_vfork) PSEUDO_PROLOGUE /* Load the thread pointer value in A1 across the vfork. */ @@ -47,11 +47,10 @@ ENTRY(__vfork) bne a3, SYSCALL_ERROR_LABEL ret -PSEUDO_END (__vfork) -libc_hidden_def (__vfork) - -weak_alias (__vfork, vfork) +PSEUDO_END (__libc_vfork) #if !NOT_IN_libc -strong_alias (__vfork, __libc_vfork) +weak_alias (__libc_vfork, vfork) +strong_alias (__libc_vfork, __vfork) +libc_hidden_def (__vfork) #endif |