This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Gas vs irregular files
- From: Nick Clifton <nickc at redhat dot com>
- To: "Maciej W. Rozycki" <macro at ds2 dot pg dot gda dot pl>
- Cc: binutils at sources dot redhat dot com
- Date: Tue, 16 Dec 2003 17:50:21 +0000
- Subject: Re: Gas vs irregular files
- References: <Pine.LNX.4.55.0312161715140.8262@jurand.ds.pg.gda.pl>
Hi Maciej,
> This patch:
>
> http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/input-file.c.diff?r1=1.11&r2=1.12&cvsroot=src
>
> breaks setups that invoke gas on non-regular files, e.g. like:
>
> $ as -o /dev/null /dev/null
>
> which may be used to check for supported command line options.
Urk - is this really done ?
One workaround would be to use an empty file:
% rm -f empty.s
% touch empty.s
% as -o /dev/null empty.s
% rm empty.s
Although I suspect that this would not be popular.
> And I find the new setup breaking the *nix tradition of treating all
> files the same as far as possible.
How so ?
> The ChangeLog entry states it's for detecting directories -- if so,
> it should do that explicitly with S_ISDIR().
Well yes and no. The point is that it is not sensible to attempt to
assemble anything other than a regular text file. Hence the code uses
S_ISREG() to check for files for which there is no point in even
attempting to call open() or read().
> And why has it be done at all? If a system doesn't support reading
> directories, it'll refuse to do so.
And if it does support them ? What is the assembler supposed to do
with them ? Assemble every source file it finds in the directory ?
I am not against altering this patch if necessary, but I would like to
know why the current behaviour is wrong.
Cheers
Nick