From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jst59-0004I4-Gx for qemu-devel@nongnu.org; Mon, 05 May 2008 01:17:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jst57-0004Ge-Mv for qemu-devel@nongnu.org; Mon, 05 May 2008 01:17:45 -0400 Received: from [199.232.76.173] (port=48996 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jst57-0004GN-Fp for qemu-devel@nongnu.org; Mon, 05 May 2008 01:17:45 -0400 Received: from wa-out-1112.google.com ([209.85.146.177]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Jst57-00061x-0h for qemu-devel@nongnu.org; Mon, 05 May 2008 01:17:45 -0400 Received: by wa-out-1112.google.com with SMTP id j5so619184wah.18 for ; Sun, 04 May 2008 22:17:43 -0700 (PDT) Message-ID: Date: Mon, 5 May 2008 01:17:43 -0400 From: "Ben Taylor" Subject: Re: [Qemu-devel] Re: Qemu 32-bit i386, gcc >= 3.4 spill error fix In-Reply-To: <20080505035627.GB15189@hall.aurel32.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_22405_6875078.1209964663765" References: <20080505035627.GB15189@hall.aurel32.net> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: qemu-devel@nongnu.org ------=_Part_22405_6875078.1209964663765 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sun, May 4, 2008 at 11:56 PM, Aurelien Jarno wrote: > > On Sun, May 04, 2008 at 09:13:52PM -0400, Ben Taylor wrote: > > On Sun, May 4, 2008 at 5:41 PM, Ben Taylor wrote: > > > This patch applies some additional flags to op.c and helper.c > > > for compiling on i386 32-bit systems with gcc >= 3.4. > > > > > > This has been tested on both ubuntu 7.10/32-bit and > > > Solaris SXCE/32-bit with both gcc-3.3 and gcc-3.4 > > > and the behavior is consistent between both. > > > > > > This is just a short term fix til the SSE ops are converted > > > to TCG. > > > > > > > I updated the patch to take care of -mtune options that might > > be set by --extra-cflags, as well as the -march flags. I added > > support for athlon-xp, as someone mentioned it in #qemu > > with the exact error that helper.c sees in this context, so I > > fixed it as I have an athlon-xp. > > > > Ben > > > > diff -ruN qemu.ORIG/Makefile.target qemu/Makefile.target > > --- qemu.ORIG/Makefile.target 2008-05-04 17:21:08.000000000 -0400 > > +++ qemu/Makefile.target 2008-05-04 20:58:47.000000000 -0400 > > @@ -96,6 +96,12 @@ > > ifeq ($(ARCH),i386) > > HELPER_CFLAGS+=-fomit-frame-pointer > > OP_CFLAGS+=-mpreferred-stack-boundary=2 -fomit-frame-pointer > > +# OP_CFLAGS needs this on 32-bit x86 system to avoid > > +# a compiler spill error. This can probably go away > > +# once the SSE ops have been converted to TCG > > +ifeq ($(HAVE_GT_GCC_3_3), true) > > +MTUNE_CFLAGS=-march=i486 -mtune=i686 > > MTUNE is not really a good name, given it overrides both -mtune and > -march. What about I386_CFLAGS? Done. > > @@ -309,7 +315,7 @@ > > $(DYNGEN) -g -o $@ $< > > > > op.o: op.c > > - $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< > > + $(CC) $(OP_CFLAGS) $(CPPFLAGS) $(MTUNE_CFLAGS) -c -o $@ $< > > > > machine.o: machine.c > > $(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $< > > @@ -317,9 +323,24 @@ > > # HELPER_CFLAGS is used for all the code compiled with static register > > # variables > > ifeq ($(TARGET_BASE_ARCH), i386) > > + # if current host is i386 and gcc >= -3.4, CFLAGS requires some > > + # handling as helper.c generates a compiler spill error if > > + # "-march=i686 -mtune=i686" or -"march=athlon-xp -mtune=athlon-xp" > > + # We set MTUNE_CFLAGS="-march=i486 -mtune=i686" here > > + # Once SSE ops are converted to TCG, this can go away > > + HCFLAGS=$(CFLAGS) > > + ifeq ($(ARCH), i386) > > + ifeq ($(HAVE_GT_GCC_3_3), true) > > + # if CFLAGS has -march=i686, remove it so helper.o > > + # can compile on 32-bit intel systems > > + HCFLAGS=`echo $(CFLAGS) | sed 's,-march=i686,,' | sed 's,-mtune=i686,,' \ > > + | sed 's,-march=athlon-xp,,' | sed 's,-mtune=athlon-xp,,'` > > + endif > > + endif > > + > > This part looks overcomplicated, and probably doesn't handle all cases. > What's the point of trying to remove options from CFLAGS? Multiple > -march or -mtune should be harmless, gcc should use the latest provided > one. So just make sure MTUNE_CFLAGS or I386_CFLAGS is after CFLAGS. Done. Because I had put the flags forward, they were getting over-riden by CFLAGS. Now it is much simpler and we don't care what the user puts in --extra-cflags. Ben ------=_Part_22405_6875078.1209964663765 Content-Type: text/x-patch; name=qemu-gcc-3.4-spill-error-v3.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_ffulq0nm0 Content-Disposition: attachment; filename=qemu-gcc-3.4-spill-error-v3.patch ZGlmZiAtcnVOIHFlbXUuT1JJRy9jb25maWd1cmUgcWVtdS9jb25maWd1cmUKLS0tIHFlbXUuT1JJ Ry9jb25maWd1cmUJMjAwOC0wNS0wNCAxNzoyMTowOC4wMDAwMDAwMDAgLTA0MDAKKysrIHFlbXUv Y29uZmlndXJlCTIwMDgtMDUtMDQgMTc6MzY6NTUuMDAwMDAwMDAwIC0wNDAwCkBAIC0xMTk5LDYg KzExOTksMTMgQEAKICAgICB0aGVuCiAgICAgICBlY2hvICIjZGVmaW5lIFVTRV9LUUVNVSAxIiA+ PiAkY29uZmlnX2gKICAgICBmaQorICAgIGdjYzNtaW52ZXI9YCRjYyAtLXZlcnNpb24gMj4gL2Rl di9udWxsfCBmZ3JlcCAiKEdDQykgMy4iIHwgYXdrICd7IHByaW50ICQzIH0nIHwgY3V0IC1mMiAt ZC5gCisgICAgaWYgdGVzdCAtbiAiJGdjYzNtaW52ZXIiIC1hICRnY2MzbWludmVyIC1ndCAzCisg ICAgdGhlbgorICAgICAgZWNobyAiSEFWRV9HVF9HQ0NfM18zPXRydWUiID4+ICRjb25maWdfbWFr CisgICAgZWxzZQorICAgICAgZWNobyAiSEFWRV9HVF9HQ0NfM18zPWZhbHNlIiA+PiAkY29uZmln X21haworICAgIGZpCiAgIDs7CiAgIHg4Nl82NCkKICAgICBlY2hvICJUQVJHRVRfQVJDSD14ODZf NjQiID4+ICRjb25maWdfbWFrCmRpZmYgLXJ1TiBxZW11Lk9SSUcvTWFrZWZpbGUudGFyZ2V0IHFl bXUvTWFrZWZpbGUudGFyZ2V0Ci0tLSBxZW11Lk9SSUcvTWFrZWZpbGUudGFyZ2V0CTIwMDgtMDUt MDQgMTc6MjE6MDguMDAwMDAwMDAwIC0wNDAwCisrKyBxZW11L01ha2VmaWxlLnRhcmdldAkyMDA4 LTA1LTA1IDAxOjE1OjA5LjAwMDAwMDAwMCAtMDQwMApAQCAtOTYsNiArOTYsMTIgQEAKIGlmZXEg KCQoQVJDSCksaTM4NikKIEhFTFBFUl9DRkxBR1MrPS1mb21pdC1mcmFtZS1wb2ludGVyCiBPUF9D RkxBR1MrPS1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTIgLWZvbWl0LWZyYW1lLXBvaW50ZXIK KyMgb3AuYyBhbmQgaGVscGVyLmMgbmVlZCB0aGlzIG9uIDMyLWJpdCB4ODYgc3lzdGVtIHRvIGF2 b2lkCisjIGEgY29tcGlsZXIgc3BpbGwgZXJyb3IuIFRoaXMgY2FuIHByb2JhYmx5IGdvIGF3YXkK KyMgb25jZSB0aGUgU1NFIG9wcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIFRDRworaWZlcSAoJChI QVZFX0dUX0dDQ18zXzMpLCB0cnVlKQorSTM4Nl9DRkxBR1M9LW1hcmNoPWk0ODYgLW10dW5lPWk2 ODYKK2VuZGlmCiBlbmRpZgogCiBpZmVxICgkKEFSQ0gpLHBwYykKQEAgLTMwOSw3ICszMTUsNyBA QAogCSQoRFlOR0VOKSAtZyAtbyAkQCAkPAogCiBvcC5vOiBvcC5jCi0JJChDQykgJChPUF9DRkxB R1MpICQoQ1BQRkxBR1MpIC1jIC1vICRAICQ8CisJJChDQykgJChPUF9DRkxBR1MpICQoQ1BQRkxB R1MpICQoSTM4Nl9DRkxBR1MpIC1jIC1vICRAICQ8CiAKIG1hY2hpbmUubzogbWFjaGluZS5jCiAJ JChDQykgJChPUF9DRkxBR1MpICQoQ1BQRkxBR1MpIC1jIC1vICRAICQ8CkBAIC0zMTksNyArMzI1 LDcgQEAKIGlmZXEgKCQoVEFSR0VUX0JBU0VfQVJDSCksIGkzODYpCiAjIFhYWDogcmVuYW1lIGhl bHBlci5jIHRvIG9wX2hlbHBlci5jCiBoZWxwZXIubzogaGVscGVyLmMKLQkkKENDKSAkKEhFTFBF Ul9DRkxBR1MpICQoQ1BQRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyAkQCAkPAorCSQoQ0MpICQoSEVM UEVSX0NGTEFHUykgJChDUFBGTEFHUykgJChDRkxBR1MpICQoSTM4Nl9DRkxBR1MpIC1jIC1vICRA ICQ8CiBlbHNlCiBvcF9oZWxwZXIubzogb3BfaGVscGVyLmMKIAkkKENDKSAkKEhFTFBFUl9DRkxB R1MpICQoQ1BQRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyAkQCAkPAo= ------=_Part_22405_6875078.1209964663765--