[llvm-dev] [RFC] [tools] Changing Behavior of LLVM binutils When No File Is Specified

Alex Brachet-Mialot via llvm-dev
Wed, 26 Jun 2019 07:27:23 -0000

Sounds good, I'll work on removing these in favor of defaulting to stdin
then?

> I think it would be much friendlier to just print "file or pipe
expected"
and then print the help.
Do you have thoughts on this? I'm not sure there is a clean way to do this,
the cleanest would be through getFileOrSTDIN(), but I'm not sure all of its
users want this behavior. I don't think we need it personally, but if you
think its a good quality of life change to the tools and worth working on,
I'd be happy to do so.

On Wed, Jun 26, 2019 at 1:41 AM Fāng-ruì Sòng <maskray at google.com>
wrote:

> GNU addr2line, nm, objdump, and size default to a.out when no input file
> is specified.
> Among llvm binary utilities, llvm-nm llvm-objdump llvm-size llvm-dwarfdump
> default to a.out.
>
> I agree with Michael that a.out behavior may not be used by many people.
> If people don't care too much
> about these utilities' compatibility with GNU, deleting the default
a.out
> LGTM.
>
> (I am opposed to make more utilities default to a.out)
>
> On Wed, Jun 26, 2019 at 9:02 AM Alex Brachet-Mialot via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> > Does anyone actually use the default to a.out behavior?
>> This is a good point. What bugs me is continuity across the tools, I
>> agree with you that it isn't particularly useful to default to
a.out. But
>> we are kind of stuck with the weird way that GNU's binutils do
things. I am
>> not in favor of llvm-objdump defaulting to a.out, but llvm-readelf
giving
>> this warning message. My guess is that moving away from using a.out by
>> default for llvm-objdump, llvm-nm and others whose gnu counter parts do
>> this would be more disruptive than my proposal.
>>
>> As Jake pointed out we use "-" to describe stdin/stdout,
GNU's tools do
>> not do this, so I think there is some precedence for us slightly
modifying
>> behavior when we can reasonably say things will not happen, like the
file
>> "-" existing.
>>
>> On Tue, Jun 25, 2019 at 8:28 PM Michael Spencer <bigcheesegs at
gmail.com>
>> wrote:
>>
>>> On Tue, Jun 25, 2019 at 4:58 PM Alex Brachet-Mialot via llvm-dev
<
>>> llvm-dev at lists.llvm.org> wrote:
>>>
>>>> Some binutils, nm comes to mind, when to input file is
specified will
>>>> default to a.out. Others do not do this and read from stdin by
default. The
>>>> rest of this email will be specifically referencing these which
read from
>>>> stdin, and not the tools which for various reasons do things
differently.
>>>>
>>>> I propose that we change the behavior of these tools to use
a.out when
>>>> appropriate. By appropriate I mean firstly, no input file
specified and
>>>> also no stream redirection to stdin. These are the file types
of stdin in
>>>> these scenarios:
>>>> $ writes-to-stdout | prog # named pipe (fifo)
>>>> $ prog < file # regular file
>>>> $ prog # reading from tty, character device
>>>>
>>>> Perhaps if stdin is a named pipe or regular file, then the
default
>>>> behavior should be as it always was, to read from stdin, but if
stdin is a
>>>> tty then we should use a.out as a default file. This lets these
tools act
>>>> the same as their gnu counterparts (when meaningful) but also
adds what I
>>>> think is convenient to not have to specify a.out.
>>>>
>>>> This proposal would look something like this:
>>>> $ llvm-strings # not meanigful to read from stdin here, look
for a.out
>>>> $ llvm-strings < file # use stdin
>>>>
>>>> I may have got the behavior of stream redirection wrong here,
or missed
>>>> a situation when reading from the terminal is useful. I would
love some
>>>> feedback.
>>>>
>>>> Best,
>>>> Alex
>>>>
>>>>
>>> Does anyone actually use the default to a.out behavior?  I think it
>>> would be much friendlier to just print "file or pipe
expected" and then
>>> print the help.
>>>
>>> - Michael Spencer
>>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
>
> --
> 宋方睿
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190626/cbdf0f18/attachment.html>