X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: Rugxulo Newsgroups: comp.os.msdos.djgpp Subject: Re: CC1.EXE/GCC.EXE crashes with SIGILL, hard. Date: Mon, 30 Apr 2012 18:56:29 -0700 (PDT) Organization: http://groups.google.com Lines: 70 Message-ID: <8ef38a89-8802-4cac-b1e6-3efb5fd7cf08@35g2000yqq.googlegroups.com> References: <16777375 DOT 1302 DOT 1331688966231 DOT JavaMail DOT geo-discussion-forums AT vbat19> <4F60E096 DOT 2060106 AT iki DOT fi> <496fa848-de2c-4020-aced-ef298a0c5ec9 AT r21g2000yqa DOT googlegroups DOT com> <75057a79-95a3-41ec-93c6-8b459c4d9f9a AT h20g2000yqd DOT googlegroups DOT com> <963ed3e2-354f-48ce-90fd-43fb7263fe2d AT v2g2000vbx DOT googlegroups DOT com> <20a1f7c2-2a4a-430f-a762-2e53b10cef12 AT f37g2000yqc DOT googlegroups DOT com> <2414077 DOT 1981 DOT 1335755547650 DOT JavaMail DOT geo-discussion-forums AT ynjn4> <4F9E1CBC DOT 9020203 AT iki DOT fi> NNTP-Posting-Host: 65.13.115.246 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1335839749 31702 127.0.0.1 (1 May 2012 02:35:49 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Tue, 1 May 2012 02:35:49 +0000 (UTC) Complaints-To: groups-abuse AT google DOT com Injection-Info: 35g2000yqq.googlegroups.com; posting-host=65.13.115.246; posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.630.0 Safari/534.16,gzip(gfe) Bytes: 5038 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id q412j1vQ023538 Reply-To: djgpp AT delorie DOT com Hi, On Apr 30, 12:01 am, Andris Pavenis wrote: > On 04/30/2012 06:12 AM, Claude Freeman wrote: > > > Since a lot of distros dropped 586 recently, I don't think anyone's noticed.... When was the last time that a Linux distro could actually run on a real 586? Not recently, even the "lightweight" ones barely run on so- called 686 anymore, esp. due to RAM or other reasons (drivers?). Hence why people like Fedora 11 (switched to i586) quickly jumped to i686 for F12 (and newer). Though I personally (very highly!) doubt that "i686" (bunch of CMOVxx) optimization does jack squat to help for newer cpus. > According to the bug reports for GCC it was noticed. So why didn't they just revert back to a sane choice? It's quite a silly regression. > The problem is perhaps that few of developers have 586 any more and this problem most likely have > very low priority now for them. It is actually detection which CPU features area available what is > broken for 586. It is detecting that CMOV can be used when it is really not supported. This is really not hard, just testing a few bits from CPUID. It's not rocket science. But I gather that GCC developers are few (relatively) compared to audience and they obviously have a lot of their plates (billion architectures and OSes, though mainly focusing on POSIX). > PS. You can of course try my build of GCC-4.7.0 for DJGPP (see http://ap1.pp.fi/djgpp/gcc/4.7.0/), > but be warned that I do not know whether this problem is fixed neither I have any 586 system for > testing. Also be warned that this version will perhaps be even more memory starved and slow on 586. Since the OP is the one with the actual 586 he's trying to use, he should do this (IMO, feel free to ignore): 1). Recompile something relatively simple like Gzip (or Bzip2) with GCC 2.95.3 with "-O2 -march=pentium", and do a "redir -t gzip -d random5mb.tgz". 2). Do the same but with GCC 4.7.0 (or 4.6.3 or 4.2.3 or whatever). Though I would be surprised if it did anything better as I doubt much has changed (if anything!!!) in 586 optimizations since then. So unless you really want newer language standards (C++, Ada) or features, I'd stick to older GCCs (or another compiler entirely or even interpreter), esp. if you're just dinking around to learn C. Though perhaps GCC 3.4.4 would be a good compromise. But on such an "old" machine, it's just not reasonable to use latest GCC, IMO. On my old P166, which I don't use due to broken floppy drive [among other things], I just used both my own slimmed C-only 2.95.3 and full 3.4.4 for some other stuff [GPC]. Though it was a DOS-only machine, heh, so I didn't have the overhead of Windows. P.S. I should probably mention that, IIRC, 2.7.2.3's "GCC -O2" was as fast (or faster) than 2.95.3's -O0. And 3.x obviously slowed down a lot vs. 2.x, similar big slowdown for 4.x, so I dunno. Just try a few things and get a feel for it. You're the one using it, so it's your ultimate decision! (2.7.2.3 [1995-7] only did optimizations 386 or 486 [only added extra alignment], it was 2.8.1 [1998] that added preliminary 586 optimizations [UV pairing], and 2.95.3 [1999-2001] first added 686 support and was last of series before switch to 3.x.)