Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
2002-12-19  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/system.c: Define FORK only if
	__ASSUME_CLONE_THREAD_FLAGS is defined.
	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_CLONE_THREAD_FLAGS): Define for x86 and kernel >=
	2.5.50.

	* sysdeps/unix/sysv/linux/i386/brk.c: Use INTERNAL_SYSCALL instead
	of asm.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
  • Loading branch information
Ulrich Drepper committed Dec 19, 2002
1 parent df45b31 commit 7d092b6
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
12 changes: 12 additions & 0 deletions ChangeLog
@@ -1,5 +1,17 @@
2002-12-19 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/system.c: Define FORK only if
__ASSUME_CLONE_THREAD_FLAGS is defined.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_CLONE_THREAD_FLAGS): Define for x86 and kernel >=
2.5.50.

2002-12-18 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/brk.c: Use INTERNAL_SYSCALL instead
of asm.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.

* elf/dl-support.c [NEED_DL_SYSINFO]: Define and initialize
_dl_sysinfo.
[DL_SYSINFO_IMPLEMENTATION]: If defined use it to generate the needed
Expand Down
5 changes: 4 additions & 1 deletion sysdeps/unix/sysv/linux/i386/system.c
Expand Up @@ -22,6 +22,7 @@
#include <unistd.h>
#include <sys/wait.h>
#include <bits/libc-lock.h>
#include <kernel-features.h>

/* We have to and actually can handle cancelable system(). The big
problem: we have to kill the child process if necessary. To do
Expand All @@ -31,8 +32,10 @@
return. It might still be in the kernel when the cancellation
request comes. Therefore we have to use the clone() calls ability
to have the kernel write the PID into the user-level variable. */
#define FORK() \
#ifdef __ASSUME_CLONE_THREAD_FLAGS
# define FORK() \
INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid)
#endif

static void cancel_handler (void *arg);

Expand Down
8 changes: 8 additions & 0 deletions sysdeps/unix/sysv/linux/kernel-features.h
Expand Up @@ -232,3 +232,11 @@
# define __ASSUME_FCNTL64 1
# define __ASSUME_GETDENTS64_SYSCALL 1
#endif

/* The late 2.5 kernels saw a lot of new CLONE_* flags. Summarize
their availability with one define. The changes were made first
for i386 and the have to be done separately for the other archs.
For i386 we pick 2.5.50 as the first version with support. */
#if __LINUX_KERNEL_VERSION >= 132432
# define __ASSUME_CLONE_THREAD_FLAGS 1
#endif

0 comments on commit 7d092b6

Please sign in to comment.