X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= Newsgroups: comp.os.msdos.djgpp Subject: Re: ANNOUNCE: Update of DJGPP port of gcc-5.3.0 Date: Thu, 18 Feb 2016 00:12:32 +0100 Lines: 39 Message-ID: References: <201601312013 DOT u0VKDC4O017569 AT delorie DOT com> <56AF7CFB DOT 8010507 AT iki DOT fi> <83twlsyya8 DOT fsf AT gnu DOT org> <56B03232 DOT 8040802 AT iki DOT fi> <7c07fdd8-c7f5-4cba-b83d-42407a6717f7 AT googlegroups DOT com> <4b2f2149-2994-4ff0-bda2-8051f1a27097 AT googlegroups DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.dfncis.de j1sOpDPJ3jFg7jBX2m4TCg4C+7/R62OUpsjD1b8qUXSMwEyNh0/Zi5u5b9 Cancel-Lock: sha1:EUBNX4fPHXBxtGPVLHOUZTR22YI= User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 In-Reply-To: <4b2f2149-2994-4ff0-bda2-8051f1a27097@googlegroups.com> Bytes: 3233 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Am 17.02.2016 um 03:05 schrieb rugxulo AT gmail DOT com: > The actual file should've been named d_copy.S (capital S) since it > uses the preprocessor (to #include three *.h files and #define > stuff). The file makefile.linux seems to use "-x assembler-with-cpp" > to guarantee this. So does the DJGPP makefile do that, too? If not: why not? > The actual line (137) is this: > > " rep/movsl (%esi),(%edi)" > > ... which is really this: "rep/movsl(%esi),(%edi)" > > But even more curious is that the file has copious line comments > starting with "//". So if I had to guess, it's that GAS is (now) > confusing the rest of the instruction as a comment. If the above line ever worked, it must have been for one of three reasons: 1) the Quake source and GAS were _both_ wrong all along, and this line only ever worked because their bugs happened to hide each other. A bug fix to GAS then exposed the existing bug in the source. 2) Both the source and GAS were correct all this time, and the error is caused by a sudden change to how this source is presented to GAS (preprocessed or not, case-correct file name or not, flipped state of the --divide command line flag, ...) during the test build, which just so happened to coincide with this binutils upgrade. 3) the Quake source itself was changed, and that change happened to coincide with this binutils upgrade. But no, that line appears to have been in there for at least 14 years. The answer may simply be file name case. If the makefile relies on the distinction between filename extensions 's' and 'S', any random file management operation (e.g. if there was some macro to transform "rep/movsl" into "rep movsl") on a Windows might have broken it.