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

Alex Brachet-Mialot via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 26 00:27:23 PDT 2019


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>


More information about the llvm-dev mailing list