From owner-cvs-all@FreeBSD.ORG Sat Jun 11 12:31:21 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org 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 D35F016A41C; Sat, 11 Jun 2005 12:31:21 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailout1.pacific.net.au (mailout1.pacific.net.au [61.8.0.84]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0BD2E43D4C; Sat, 11 Jun 2005 12:31:20 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.0.87]) by mailout1.pacific.net.au (8.13.4/8.13.4/Debian-1) with ESMTP id j5BCVJnR032160; Sat, 11 Jun 2005 22:31:19 +1000 Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailproxy2.pacific.net.au (8.13.4/8.13.4/Debian-1) with ESMTP id j5BCVHDU019018; Sat, 11 Jun 2005 22:31:18 +1000 Date: Sat, 11 Jun 2005 22:31:18 +1000 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Stefan Farfeleder In-Reply-To: <20050611072537.GB39090@wombat.fafoe.narf.at> Message-ID: <20050611221306.G28805@delplex.bde.org> References: <200506110321.j5B3LKi2025443@repoman.freebsd.org> <20050611072537.GB39090@wombat.fafoe.narf.at> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, Marcel Moolenaar , cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ata ata-raid.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: Sat, 11 Jun 2005 12:31:22 -0000 On Sat, 11 Jun 2005, Stefan Farfeleder wrote: > On Sat, Jun 11, 2005 at 03:21:20AM +0000, Marcel Moolenaar wrote: > >> Avoid GCC optimizations from injecting a call to memset(?) in order >> to initialize the buffer array in ata_raid_attach() by removing the >> initializer. There's no memset(?) in the kernel. Instead, assign >> '\0' to the first element. The buffer array holds strings only, so >> this is functionally equivalent. > > Maybe GCC should be taught to generate a bzero call instead? No. gcc -ffreestanding shouldn't generate calls to memset(), but generating calls to bzero() is no better, since there are no symbols are reserved for the library in freestanding implementations. Even symbols with lots of leading underscores are not reserved, so gcc shouldn't use any libcalls in freestanding environments. The latter seems too extreme, so I think generating calls to functions named something like __builtout_memset() would be OK. However, for using libcalls for the memset family rather defeats optimizations. gcc's MD builtin memset is likely to be much better than an MI library version. Bruce