From owner-cvs-all Sat Jul 29 4:34: 7 2000 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 6026137B5B3; Sat, 29 Jul 2000 04:34:05 -0700 (PDT) (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id EAA38997; Sat, 29 Jul 2000 04:34:05 -0700 (PDT) (envelope-from peter@FreeBSD.org) Message-Id: <200007291134.EAA38997@freefall.freebsd.org> From: Peter Wemm Date: Sat, 29 Jul 2000 04:34:04 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/lib/libc/i386/gen rfork_thread.S X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG peter 2000/07/29 04:34:04 PDT Modified files: lib/libc/i386/gen rfork_thread.S Log: Fix some rather interesting bugs that managed to not turn up in various testing and real-life applications: 1) If you returned from the thread function, you got a segv instead of calling _exit() with your return code. 2) clean up some bogus stack management. There was also an underflow on function return. 3) when making syscalls, the kernel is expecting to have to leave space for the function's return address. We need to duplicate this. It was an accident that the rfork syscall actually worked here. :-/ Revision Changes Path 1.2 +6 -6 src/lib/libc/i386/gen/rfork_thread.S To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message