From owner-freebsd-amd64@FreeBSD.ORG Fri Mar 16 22:50:04 2012 Return-Path: Delivered-To: freebsd-amd64@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 98030106566B for ; Fri, 16 Mar 2012 22:50:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 6A33A8FC0A for ; Fri, 16 Mar 2012 22:50:04 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q2GMo48E069908 for ; Fri, 16 Mar 2012 22:50:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q2GMo4CK069907; Fri, 16 Mar 2012 22:50:04 GMT (envelope-from gnats) Date: Fri, 16 Mar 2012 22:50:04 GMT Message-Id: <201203162250.q2GMo4CK069907@freefall.freebsd.org> To: freebsd-amd64@FreeBSD.org From: Peter Wemm Cc: Subject: Re: amd64/163710: setjump in userboot.so causes stack corruption X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Peter Wemm List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2012 22:50:04 -0000 The following reply was made to PR amd64/163710; it has been noted by GNATS. From: Peter Wemm To: Russell Cattelan Cc: freebsd-gnats-submit@freebsd.org Subject: Re: amd64/163710: setjump in userboot.so causes stack corruption Date: Fri, 16 Mar 2012 15:49:36 -0700 On Fri, Mar 16, 2012 at 3:35 PM, Peter Wemm wrote: > 2012/3/16 Russell Cattelan : >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> On 3/16/12 3:51 PM, Peter Wemm wrote: >>> 2012/3/16 Russell Cattelan : >>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>>> >>>> On 3/16/12 11:56 AM, Peter Wemm wrote: >>>>> On Thu, Mar 15, 2012 at 2:40 PM, Russell Cattelan >>>>> wrote: >>>>>> The following reply was made to PR amd64/163710; it has been >>>>>> noted by GNATS. >>>>> [..] >>>>>> Does the last patch seem acceptable? >>>>>> >>>>>> Can we close this issue out? >>>>> >>>>> Sadly not, >>>>> >>>>> +no-machine: + rm -f =A0 ${.CURDIR}/../../ficl/machine >>>>> >>>>> .. this is definitely bogus no matter what. This attempts to >>>>> modify the source tree which may be read only, and should >>>>> never even have a "machine->..." symlink in it to remove in the >>>>> first place. >>>> The sym link is created by the build of ficl for the loader. See: >>>> boot/ficl/Makefile machine: ln -sf ${.CURDIR}/../../i386/include >>>> machine >>>> >>>> Are you suggesting that is incorrect and should be fixed? >>> >>> No, you're reading it wrong: "ln -sf ${.CURDIR}/../../i386/include >>> machine" creates ${.OBJDIR}/machine" >>> >>> Your patch does a "rm -f =A0 ${.CURDIR}/../../ficl/machine" which is >>> in the source tree, not the obj tree, so it would never exist. =A0And >>> if it does, then something is wrong with your build environment. >>> >> This is pretty easy to reproduce. >> cd /sys/boot >> make > > You don't do that without a 'make obj' first. > >> there will be a symlink in /sys/boot/ficl/machine that points to >> i386/include. > > And this is user error. =A0Don't do that. More specifically.. You can't put code in the Makefiles that modifies the source tree explicitly. If sys/boot/userboot/ficl needs a different "#include " then sys/boot/userboot/ficl needs to create the machine link there and set the -I paths so that one has precedence. But reaching over and trying to modify another tool's build area is always wrong, aside from the obvious problem of it trying to modify the source tree. If you're pulling the wrong include files into userboot/ficl, then that's because machine and -I aren't being set correctly in userboot/ficl/Makefile. --=20 Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV "All of this is for nothing if we don't go to the stars" - JMS/B5 "If Java had true garbage collection, most programs would delete themselves upon execution." -- Robert Sewell