From owner-svn-src-projects@FreeBSD.ORG Sat Jan 30 18:50:57 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE278106566B; Sat, 30 Jan 2010 18:50:57 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AE50D8FC25; Sat, 30 Jan 2010 18:50:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0UIovUJ077081; Sat, 30 Jan 2010 18:50:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0UIovGh077079; Sat, 30 Jan 2010 18:50:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201001301850.o0UIovGh077079@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 30 Jan 2010 18:50:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r203215 - projects/ppc64/sys/powerpc/powerpc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2010 18:50:57 -0000 Author: nwhitehorn Date: Sat Jan 30 18:50:57 2010 New Revision: 203215 URL: http://svn.freebsd.org/changeset/base/203215 Log: Really fix setting argc. This problem should be properly fixed in kern_exec.c, which incorrectly uses suword() instead of suword32() to set nargvstr, but I am afraid of breaking sparc64. This should be revisited before merging. With this change, all statically linked binaries appear to be working correctly -- I can even compile things with gcc! Discussed with: Patrick Kerharo Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jan 30 18:45:10 2010 (r203214) +++ projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jan 30 18:50:57 2010 (r203215) @@ -524,7 +524,7 @@ exec_setregs(struct thread *td, u_long e * Emulate by setting the syscall return value cells. The * registers still have to be set for init's fork trampoline. */ - td->td_retval[0] = arginfo.ps_nargvstr; + td->td_retval[0] = *((register_t *)(&arginfo.ps_nargvstr)); td->td_retval[1] = (register_t)arginfo.ps_argvstr; tf->fixreg[3] = *((register_t *)(&arginfo.ps_nargvstr)); tf->fixreg[4] = (register_t)arginfo.ps_argvstr;