summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog50
-rw-r--r--NEWS4
2 files changed, 52 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 481f44a..898ce10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,53 @@
+2003-01-08 Roland McGrath <roland@redhat.com>
+
+ * NEWS: Update for 4.4.90 test release.
+
+ Support for new Linux 2.5 thread features.
+ * defs.h [LINUX]: Define __NR_exit_group if not defined.
+ (struct tcb): New members nclone_threads, nclone_detached,
+ and nclone_waiting.
+ (TCB_CLONE_DETACHED, TCB_CLONE_THREAD, TCB_GROUP_EXITING): New macros.
+ (waiting_parent): Macro removed.
+ (pid2tcb): Declare it.
+ * process.c (internal_clone) [TCB_CLONE_THREAD]: Reparent the new
+ child to our parent if we are a CLONE_THREAD child ourselves.
+ Maintain TCB_CLONE_THREAD and TCB_CLONE_DETACHED flags and counts.
+ (internal_wait) [TCB_CLONE_THREAD]: Factor out detached children when
+ determining if we have any. If TCB_CLONE_THREAD is set, check
+ parent's children instead of our own, and bump nclone_waiting count.
+ (internal_exit) [__NR_exit_group]: Set the TCB_GROUP_EXITING flag if
+ the syscall was exit_group.
+ * syscall.c (internal_syscall): Use internal_exit for exit_group.
+ * strace.c (pid2tcb): No longer static.
+ (alloctcb) [TCB_CLONE_THREAD]: Initialize new fields.
+ (droptcb) [TCB_CLONE_THREAD]: Maintain new fields.
+ If we have thread children, set TCB_EXITING and don't clear the TCB.
+ (resume) [TCB_CLONE_THREAD]: Decrement parent's nclone_waiting.
+ (detach) [TCB_CLONE_THREAD]: When calling resume, check all thread
+ children of our parent that might be waiting for us too.
+ [TCB_GROUP_EXITING] (handle_group_exit): New function.
+ (trace) [TCB_GROUP_EXITING]: Use that in place of detach or droptcb.
+
+ Revamp -f support for Linux.
+ * util.c [LINUX] (setbpt, clearbpt): New implementations that tweak
+ the system call to be clone with CLONE_PTRACE set. Various new static
+ helper functions.
+ * process.c (internal_clone): Define also #ifdef SYS_clone2.
+ Initialize TCPCHILD->parent field.
+ [CLONE_PTRACE]: Don't do PTRACE_ATTACH here, because it's preattached.
+ Check in case the new child is in the tcb already.
+ (internal_fork) [LINUX]: Just call internal_clone.
+ * strace.c (trace) [LINUX]: Under -f/-F, grok an unknown pid
+ reporting to wait, put it in the TCB with TCB_ATTACHED|TCB_SUSPENDED.
+
+ * linux/x86_64/syscallent1.h (sys_oldlstat): #define as printargs.
+
+ * file.c [LINUX]: #undef st_[amc]time in case they are macros.
+
+ * Makefile.am (AM_CFLAGS): New variable, define to $(WARNFLAGS).
+
+ * Makefile.am (EXTRA_DIST): Remove debian/postinst and debian/prerm.
+
2003-01-09 Wichert Akkerman <wichert@deephackmode.org>
* debian/postinst, debian/prerm: removed, /usr/doc symlink is no
diff --git a/NEWS b/NEWS
index 0181ff3..af71620 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Changes in CVS (not yet released)
+Changes in 4.4.90 TEST release
==============
* New port to AMD's x86-64 architecture. One strace binary can
handle both new x86-64 and old i386 processes.
@@ -6,7 +6,7 @@ Changes in CVS (not yet released)
* New switch (-z) for printing only non-failing syscalls.
* Merged s390/s390x port.
* Trace an unbounded number of processes.
-* Handle numerous new system calls in Linux 2.5.
+* Handle numerous new system calls in Linux 2.5, and new threads semantics.
* Fixed bugs with attach/detach leaving things stopped.
* Fixed traced process seeing ECHILD despite live, traced children
in waitpid calls with WNOHANG.