From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.3 From: Led To: ALT Linux Sisyphus discussions Date: Wed, 27 Feb 2008 16:14:44 +0200 User-Agent: KMail/1.9.7 References: <200802261916.44512.shrek@altlinux.ru> <200802271555.56112.ledest@gmail.com> <20080227141255.GA20439@localhost.localdomain> In-Reply-To: <20080227141255.GA20439@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200802271614.44643.ledest@gmail.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: Re: [sisyphus] IQ: kernel-image-std-smp-2.6.24-alt0.3 X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: ledest@gmail.com, ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Feb 2008 14:13:18 -0000 Archived-At: List-Archive: List-Post: =C2 =F1=EE=EE=E1=F9=E5=ED=E8=E8 =EE=F2 Wednesday 27 February 2008 16:12:55 = =E2=FB =ED=E0=EF=E8=F1=E0=EB=E8: > On [Wed, 27.02.2008 15:55], Led wrote: > > =CD=E5 =E7=ED=E0=FE =E8=E7-=E7=E0 =FD=F2=EE=E3=EE =E8=EB=E8 =ED=E5=F2, = =ED=EE qemu-kvm =E2 =F1=E8=E7=E8=F4=E5 =EF=F0=E8=ED=F3=E4=E8=F2=E5=EB=FC=ED= =EE =F1=EE=E1=F0=E0=ED > > gcc4.1, =E0 =ED=E5 gcc3.4 > > =DD=F2=EE=E3=EE =E4=E5=EB=E0=F2=FC =ED=E5=EB=FC=E7=FF. > > > Could someone please explain the issue with gcc4, please? Or point me > > to an existing explanation? > > The issue is that gcc4 optimizes better, but this breaks assumptions of > QEmu. > > Example: The basic idea (simplified!) of QEmu is writing C functions which > implement the instructions of the target CPU. Then, code to be emulated is > translated by chaining the _compiled_ functions (corresponding to the > target code) together, but _leaving_ out the return instruction at the end > of the function (otherwise, the resulting code would return already after > the first emulated instruction). > > Now, gcc4 can produce code with several return instructions (with no > option to turn that of, as far as I understand). You cannot cut them out, > and therefore you cannot chain the simple functions. > > There seem to be other issues, too, like not being able to correctly link > the user emulation code, but I am not that sure about it. qemu-kvm =ED=E8=F7=E5=E3=EE =EF=F0=E0=EA=F2=E8=F7=E5=F1=EA=E8 =ED=E5 =FD=EC= =F3=EB=E8=F0=F3=E5=F2, =E0 =E8=F1=EF=EE=EB=FC=E7=F3=E5=F2 =E0=EF=EF=E0=F0= =E0=F2=ED=F3=FE=20 =E2=E8=F0=F2=F3=E0=EB=E8=E7=E0=F6=E8=FE, =EF=EE=FD=F2=EE=EC=F3 =EE=ED =F2= =EE=EB=FC=EA=EE =E4=EB=FF =E7=E0=EF=F3=F1=EA=E0 x84_64 =E8 x86_32 =2D-=20 Led