From owner-cvs-all@FreeBSD.ORG Thu Dec 4 17:36:45 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8EC8416A4D1; Thu, 4 Dec 2003 17:36:45 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B755543FBD; Thu, 4 Dec 2003 17:36:44 -0800 (PST) (envelope-from peter@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hB51aiXJ068400; Thu, 4 Dec 2003 17:36:44 -0800 (PST) (envelope-from peter@repoman.freebsd.org) Received: (from peter@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hB51aibO068399; Thu, 4 Dec 2003 17:36:44 -0800 (PST) (envelope-from peter) Message-Id: <200312050136.hB51aibO068399@repoman.freebsd.org> From: Peter Wemm Date: Thu, 4 Dec 2003 17:36:44 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/lib/libc/amd64/gen makecontext.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Dec 2003 01:36:45 -0000 peter 2003/12/04 17:36:44 PST FreeBSD src repository Modified files: lib/libc/amd64/gen makecontext.c Log: "Fix" makecontext() so that the C code begins execution with its ABI-required stack alignment. C code expects that the push of the return address disturbed the 16 byte alignment and it will take corrective measures to fix it before making another call. Of course, if its wrong to start with, then all hell breaks loose. Essentially we "fix" this by making the stack alignment odd to start with. This was one of the things that broke on libkse with apps that use floating point/varargs/etc. Approved by: re (scottl) Revision Changes Path 1.2 +6 -2 src/lib/libc/amd64/gen/makecontext.c