delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2016/02/17/18:30:12

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= <HBBroeker AT t-online DOT de>
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: <dikd2rFnhrtU1@mid.dfncis.de>
References: <201601312013 DOT u0VKDC4O017569 AT delorie DOT com>
<n8norb$gck$1 AT usenet DOT news DOT interia DOT pl> <56AF7CFB DOT 8010507 AT iki DOT fi>
<n8obct$m4c$1 AT usenet DOT news DOT interia DOT pl> <83twlsyya8 DOT fsf AT gnu DOT org>
<56B03232 DOT 8040802 AT iki DOT fi> <n8skjg$bf4$1 AT usenet DOT news DOT interia DOT pl>
<n9siu0$hu6$1 AT usenet DOT news DOT interia DOT pl>
<7c07fdd8-c7f5-4cba-b83d-42407a6717f7 AT googlegroups DOT com>
<CAA2C=vAujKzSw-dfU8OyZZnvjGY_rRWEuDSVTgaou4DLn1dV-A AT mail DOT gmail DOT com>
<4b2f2149-2994-4ff0-bda2-8051f1a27097 AT googlegroups DOT com>
Mime-Version: 1.0
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

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: "<tab>rep/movsl<tab>(%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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019