diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 7 | ||||
-rw-r--r-- | linuxthreads/Versions | 2 | ||||
-rw-r--r-- | linuxthreads/ptfork.c | 16 |
3 files changed, 21 insertions, 4 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 108fdf4f38..13c85c588b 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,10 @@ +1999-09-03 Andreas Schwab <schwab@suse.de> + + * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add + fork as weak alias. + (__vfork): New function, alias vfork. + * Versions: Export __fork, vfork, and __vfork in libpthread. + 1999-08-23 Andreas Schwab <schwab@suse.de> * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to diff --git a/linuxthreads/Versions b/linuxthreads/Versions index 38b135d0a2..c0ec792382 100644 --- a/linuxthreads/Versions +++ b/linuxthreads/Versions @@ -46,6 +46,7 @@ libpthread { __close; __connect; __fcntl; __lseek; __open; __read; __send; __wait; __write; _IO_flockfile; _IO_ftrylockfile; _IO_funlockfile; + vfork; __fork; # POSIX.1c extensions to libc. flockfile; funlockfile; ftrylockfile; @@ -115,5 +116,6 @@ libpthread { } GLIBC_2.1.2 { __pthread_kill_other_threads_np; + __vfork; } } diff --git a/linuxthreads/ptfork.c b/linuxthreads/ptfork.c index 2245407224..1dfa8b6ab7 100644 --- a/linuxthreads/ptfork.c +++ b/linuxthreads/ptfork.c @@ -73,11 +73,11 @@ static inline void pthread_call_handlers(struct handler_list * list) for (/*nothing*/; list != NULL; list = list->next) (list->handler)(); } -extern int __fork(void); +extern int __libc_fork(void); -int fork(void) +pid_t __fork(void) { - int pid; + pid_t pid; struct handler_list * prepare, * child, * parent; pthread_mutex_lock(&pthread_atfork_lock); @@ -86,7 +86,7 @@ int fork(void) parent = pthread_atfork_parent; pthread_mutex_unlock(&pthread_atfork_lock); pthread_call_handlers(prepare); - pid = __fork(); + pid = __libc_fork(); if (pid == 0) { __pthread_reset_main_thread(); __fresetlockfiles(); @@ -96,3 +96,11 @@ int fork(void) } return pid; } + +weak_alias (__fork, fork); + +pid_t __vfork(void) +{ + return __fork(); +} +weak_alias (__vfork, vfork); |