From owner-freebsd-current Sat Jun 15 20:56: 7 2002 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 80A6237B400; Sat, 15 Jun 2002 20:56:04 -0700 (PDT) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id NAA26742; Sun, 16 Jun 2002 13:55:59 +1000 Date: Sun, 16 Jun 2002 14:00:36 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Terry Lambert Cc: Maxime Henrion , Subject: Re: duplicate -ffreestanding in kernel build In-Reply-To: <3D0B9B9C.DB27DD33@mindspring.com> Message-ID: <20020616134100.M1933-100000@gamplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sat, 15 Jun 2002, Terry Lambert wrote: > Maxime Henrion wrote: > > Terry Lambert wrote: > > > What exactly does this do, besides implying "-fno-builtin"? > > > > > > The documentation says "and implies main has no special requirements"... > > > > > > Neither the kernel nor modules have a "main", so the only thing that's > > > relevent here is the "-fno-builtin", right? > > > > IIRC, -ffreestanding prevented GCC3 from being stupid optimizations like ^^^^^^ smart > > changing occurences of printf("constant string\n") to puts("constant > > string"), which failed for kernel builds since we don't have puts() in > > the kernel... > > That is an incredibly *fugly* "optimization". It assumes that I > use libc, unless I have "-ffreestanding", and it assumes my > implementation of printf vs. puts. This is a routine optimization. It assumes that you use a C compiler (printf and even libc might not exist, since they might be builtins). A non-routine optimization might involve building hardware to run the application and emitting the 1 bit instruction to turn the hardware on. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message