From owner-cvs-all@FreeBSD.ORG Fri Jul 27 11:16:59 2007 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C05DF16A419; Fri, 27 Jul 2007 11:16:58 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (adsl-75-1-14-242.dsl.scrm01.sbcglobal.net [75.1.14.242]) by mx1.freebsd.org (Postfix) with ESMTP id 6497B13C480; Fri, 27 Jul 2007 11:16:58 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (scratch.catspoiler.org [192.168.101.3]) by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id l6RAgKhZ082086; Fri, 27 Jul 2007 03:42:24 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <200707271042.l6RAgKhZ082086@gw.catspoiler.org> Date: Fri, 27 Jul 2007 03:42:20 -0700 (PDT) From: Don Lewis To: jhb@FreeBSD.org In-Reply-To: <200706132237.l5DMbmLf033460@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/i386 trap.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 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, 27 Jul 2007 11:16:59 -0000 On 13 Jun, John Baldwin wrote: > jhb 2007-06-13 22:37:48 UTC > > FreeBSD src repository > > Modified files: > sys/i386/i386 trap.c > Log: > Don't clobber tf_err with the eva from a page fault as the page fault > address is saved in ksi_addr already. > > PR: i386/101379 > Submitted by: Tijl Coosemans : tijl ulyssis org > > Revision Changes Path > 1.306 +0 -3 src/sys/i386/i386/trap.c This change appears to have broken the garbage collector in ports/lang/pm3-base, which means that cvsup no longer works on -CURRENT. The garbage collector uses the old sigvec() interface, and counts on getting the fault address from the sc_err field in struct sigcontext, which is copied from tf_err. The Modula-3 source code for the handler and the sigvec() call is in pm3-1.1.15/libs/m3core/src/runtime/FreeBSD4/RTHeapDep.m3 under the port work directory. Since Modula-3 compiler uses this code, the compiler is bootstrapped from a version of this file that has already been translated to i386 assembly language. The latter lives in pm3-1.1.15/boot-FreeBSD4/m3core/FreeBSD4/RTHeapDep.ms. Modifying the assembly code to convert it to use sigaction() and to pull the fault address out of the siginfo structure is left as an exercise for someone more masochistic than me.