Date: Mon, 8 Mar 1999 21:50:04 +0100 To: pgcc AT delorie DOT com Cc: trn AT trn DOT nu Subject: Re: Miscompilation of Linux 2.2.2i-ac7 w/ FPU memcpy(). Message-ID: <19990308215004.C3750@cerebro.laendle> Mail-Followup-To: pgcc AT delorie DOT com, trn AT trn DOT nu References: <19990308123240 DOT A30623 AT waea DOT trn DOT nu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <19990308123240.A30623@waea.trn.nu>; from I treat her like a lady... on Mon, Mar 08, 1999 at 12:32:40PM -0500 X-Operating-System: Linux version 2.2.2 (marc AT cerebro) (gcc driver version pgcc-2.93.04 19990131 (gcc2 ss-980929 experimental) executing gcc version 2.7.2.3) From: Marc Lehmann Reply-To: pgcc AT delorie DOT com X-Mailing-List: pgcc AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Mon, Mar 08, 1999 at 12:32:40PM -0500, I treat her like a lady... wrote: > This is my first attempt at compiling the Linux kernel after > updating from pgcc-1.1.1. I updated mainly for the MMX support > and reading the assembly output to try to teach myself a little > about MMX. I'm compiling to kernel to update from LVM 0.5 to pgcc is a bad teching tool about mmx, first, it does not use many mmx instructions, and secondly, it doesn't use mmx the way its supposed to (yet). > filemap.c: In function `sys_sendfile': > filemap.c:911: impossible register constraint in `asm' > filemap.c:911: impossible register constraint in `asm' > filemap.c:911: impossible register constraint in `asm' > /usr/src/linux/include/asm/uaccess.h: In function > `__generic_copy_to_user_nocheck': > /usr/src/linux/include/asm/uaccess.h:351: Invalid `asm' statement: > /usr/src/linux/include/asm/uaccess.h:351: fixed or forbidden register 4 > (si) was spilled for class SIREG. These errors are usually valid and indicate bugs in asm() statements, in this case, in linux (or in the fast memcpy patch). > I'm compiling this particular file with optimiztions disabled, using the > lowest compatible CPU type (-O0 -pipe -fno-strength-reduce -g0 -DCPU=386 > -m386 -march=i386). Using higher optimizations or CPU instruction levels > gives different similar errors. The function in question in uaccess.h > is as follows: You can't compile the kernel without optimization. Ever. -- -----==- | ----==-- _ | ---==---(_)__ __ ____ __ Marc Lehmann +-- --==---/ / _ \/ // /\ \/ / pcg AT goof DOT com |e| -=====/_/_//_/\_,_/ /_/\_\ XX11-RIPE --+ The choice of a GNU generation | |