From: "Alexei K." Newsgroups: comp.os.msdos.djgpp Subject: Re: SIGILL 386 (illegal opcode) Date: Wed, 14 May 2003 18:46:04 +0500 Organization: Communication Company MARK-ITT Lines: 33 Message-ID: References: <3eb08a5a$0$79355$cc7c7865 AT news DOT luth DOT se> NNTP-Posting-Host: d2-236.net.mark-itt.net Mime-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Trace: hq.mark-itt.ru 1052921523 26788 217.14.194.236 (14 May 2003 14:12:03 GMT) X-Complaints-To: abuse AT mark-itt DOT ru NNTP-Posting-Date: Wed, 14 May 2003 14:12:03 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Martin Stromberg" сообщил/сообщила в новостях следующее: news:b9qi83$cgq$1 AT antares DOT lu DOT erisoft DOT se... > Martin Stromberg (eplmst AT lu DOT erisoft DOT se) wrote: > : If the problem is where Andris has indicated, you don't have to. You > : just need to correct a header file. > > Today I think that won't work as the instruction is compiled into > libstdxx.a. Sorry. Thanks a lot. As I see it is not problem of DJGPP libstdcxx. I found in libstdc++-v3 FAQ the following article: "Threading is broken on i386 Support for atomic integer operations is/was broken on i386 platforms. The assembly code accidentally used opcodes that are only available on the i486 and later. So if you configured GCC to target, for example, i386-linux, but actually used the programs on an i686, then you would encounter no problems. Only when actually running the code on a i386 will the problem appear. This is fixed in 3.2.2." But really it is not fixed. (may be in 3.2.3?) I had replaced (as you recommend) atomicity.h for each IA-32 compatible CPU (just in case) to /generic/atomicity.h. After that I had rebuilded libstdcxx. And now my programs are runing fine on 386 CPU. Alexei K.