[cfe-users] Why doesn't clang use colors for diagnostics by default?

don hinton via cfe-users cfe-users at lists.llvm.org
Thu Sep 10 09:06:35 PDT 2015


I meant the headers.  If you use cmake, take a look at
cmake/config-ix.cmake.  Configure does something similar.

Basically, if it finds the right headers, it will #define HAS_TERMINFO, and
the code that checks it is terminalHasColors() in
lib/Support/Unix/Process.inc.

Not sure how gcc checks.


On Thu, Sep 10, 2015 at 11:58 AM, Victor <d.v.a at ngs.ru> wrote:

> Did you build clang?
>>
> Yes
>
> Do you have terminfo installed?
>>
> $ find /usr/share/terminfo -type f
> /usr/share/terminfo/k/kon2
> /usr/share/terminfo/k/kon
> /usr/share/terminfo/k/konsole-256color
> /usr/share/terminfo/k/konsole
> /usr/share/terminfo/v/vs100
> /usr/share/terminfo/c/cygwin
> /usr/share/terminfo/c/cons25
> /usr/share/terminfo/t/teraterm2.3
> /usr/share/terminfo/t/teraterm
> /usr/share/terminfo/g/gnome
> /usr/share/terminfo/g/gnome-256color
> /usr/share/terminfo/w/wsvt25
> /usr/share/terminfo/w/wsvt25m
> /usr/share/terminfo/n/nxterm
> /usr/share/terminfo/n/nsterm
> /usr/share/terminfo/m/mrxvt
> /usr/share/terminfo/m/mach
> /usr/share/terminfo/m/mach-bold
> /usr/share/terminfo/m/mach-color
> /usr/share/terminfo/m/mlterm
> /usr/share/terminfo/E/Eterm-88color
> /usr/share/terminfo/E/Eterm-256color
> /usr/share/terminfo/E/Eterm
> /usr/share/terminfo/E/Eterm-color
> /usr/share/terminfo/a/aterm
> /usr/share/terminfo/a/ansis
> /usr/share/terminfo/a/ansi80x25
> /usr/share/terminfo/p/putty-vt100
> /usr/share/terminfo/p/pcansi
> /usr/share/terminfo/p/putty-256color
> /usr/share/terminfo/p/putty
> /usr/share/terminfo/s/screen.xterm-new
> /usr/share/terminfo/s/sun
> /usr/share/terminfo/s/screen-16color-bce
> /usr/share/terminfo/s/screen-16color-s
> /usr/share/terminfo/s/screen-16color-bce-s
> /usr/share/terminfo/s/sun1
> /usr/share/terminfo/s/screen
> /usr/share/terminfo/s/screen.rxvt
> /usr/share/terminfo/s/sun2
> /usr/share/terminfo/s/screen.linux
> /usr/share/terminfo/s/screen-256color-bce
> /usr/share/terminfo/s/screen-16color
> /usr/share/terminfo/s/screen-256color-s
> /usr/share/terminfo/s/screen.xterm-xfree86
> /usr/share/terminfo/s/screen-256color-bce-s
> /usr/share/terminfo/s/screen.teraterm
> /usr/share/terminfo/s/screen-bce
> /usr/share/terminfo/s/screen-s
> /usr/share/terminfo/s/screen.mlterm
> /usr/share/terminfo/s/screen-w
> /usr/share/terminfo/s/screen.xterm-r6
> /usr/share/terminfo/s/screen-256color
> /usr/share/terminfo/s/screen.Eterm
> /usr/share/terminfo/j/jfbterm
> /usr/share/terminfo/h/hurd
> /usr/share/terminfo/r/rxvt-color
> /usr/share/terminfo/r/rxvt-xpm
> /usr/share/terminfo/r/rxvt-unicode
> /usr/share/terminfo/r/rxvt-basic
> /usr/share/terminfo/r/rxvt
> /usr/share/terminfo/r/rxvt-88color
> /usr/share/terminfo/r/rxvt-16color
> /usr/share/terminfo/r/rxvt-cygwin-native
> /usr/share/terminfo/r/rxvt-256color
> /usr/share/terminfo/r/rxvt-cygwin
> /usr/share/terminfo/x/xterm-xf86-v32
> /usr/share/terminfo/x/xterm-xi
> /usr/share/terminfo/x/xterm-r5
> /usr/share/terminfo/x/xterm-vt220
> /usr/share/terminfo/x/xterm-new
> /usr/share/terminfo/x/xterm-sun
> /usr/share/terminfo/x/xterm-nic
> /usr/share/terminfo/x/xterm-8bit
> /usr/share/terminfo/x/xterm-old
> /usr/share/terminfo/x/xterm-hp
> /usr/share/terminfo/x/xterm-color
> /usr/share/terminfo/x/xterm-256color
> /usr/share/terminfo/x/xterm-pcolor
> /usr/share/terminfo/x/xterm-basic
> /usr/share/terminfo/x/xterm-noapp
> /usr/share/terminfo/x/xterm-24
> /usr/share/terminfo/x/xterm-bold
> /usr/share/terminfo/x/xterms
> /usr/share/terminfo/x/xterm
> /usr/share/terminfo/x/xterm-1003
> /usr/share/terminfo/x/xterm-sco
> /usr/share/terminfo/x/xterm-1002
> /usr/share/terminfo/x/xterm-vt52
> /usr/share/terminfo/x/xterm-16color
> /usr/share/terminfo/x/xterm-r6
> /usr/share/terminfo/x/xterm-xf86-v44
> /usr/share/terminfo/x/xfce
> /usr/share/terminfo/x/xterm-xf86-v333
> /usr/share/terminfo/x/xterm-88color
> /usr/share/terminfo/x/xterm-xfree86
> /usr/share/terminfo/x/xterm-xf86-v43
> /usr/share/terminfo/x/xterm-xf86-v40
> /usr/share/terminfo/x/xterm-xf86-v33
> /usr/share/terminfo/e/eterm
> /usr/share/terminfo/e/eterm-color
> /usr/share/terminfo/A/Apple_Terminal
>
> On Thu, 10 Sep 2015 11:53:48 -0400
>
>  don hinton <hintonda at gmail.com> wrote:
>
>> Did you build clang?  Do you have terminfo installed?  I think that's what
>> it checks.
>>
>> On Thu, Sep 10, 2015 at 11:49 AM, Victor <d.v.a at ngs.ru> wrote:
>>
>> No. Still no luck. Tried both
>>>
>>>
>>> On Thu, 10 Sep 2015 11:39:24 -0400
>>>  don hinton <hintonda at gmail.com> wrote:
>>>
>>> Hi Victor:
>>>>
>>>> Try setting TERM to a color terminal, e.g., xterm-color or
>>>> xterm-256color
>>>> and see if that helps.  I use xterm-256color inside tmux and it works
>>>> fine.
>>>>
>>>> hth...
>>>> don
>>>>
>>>> On Thu, Sep 10, 2015 at 2:40 AM, Victor via cfe-users <
>>>> cfe-users at lists.llvm.org> wrote:
>>>>
>>>> I'm using command like this:
>>>>
>>>>>
>>>>> $ clang++ prg.cpp
>>>>>
>>>>> My Clang is built from sources. What libraries it needs to use colors
>>>>> automatically? Or may be there is some option that I can specify for
>>>>> configure?
>>>>>
>>>>>
>>>>> On Wed, 9 Sep 2015 19:49:21 -0700
>>>>>  Richard Trieu <rtrieu at google.com> wrote:
>>>>>
>>>>> Are you invoking Clang with "clang foo.cc" or "clang -cc1 foo.cc"?  The
>>>>>
>>>>>> first should detect if you have a color capable terminal and
>>>>>> automatically
>>>>>> turn on color diagnostics while the second needs the flag explicitly.
>>>>>> The
>>>>>> other possibility is that the Clang you are using was compiled with
>>>>>> the
>>>>>> libraries needed to detect a color terminal, and defaults to no color.
>>>>>>
>>>>>> On Mon, Sep 7, 2015 at 5:15 AM, Victor via cfe-users <
>>>>>> cfe-users at lists.llvm.org> wrote:
>>>>>>
>>>>>> Hello, all.
>>>>>>
>>>>>>
>>>>>>> Why doesn't clang use colors for diagnostics by default?
>>>>>>> My environment:
>>>>>>>
>>>>>>> $ cat /etc/*-release
>>>>>>> Red Hat Enterprise Linux Server release 6.3 (Santiago)
>>>>>>>
>>>>>>> $ echo $TERM
>>>>>>> xterm
>>>>>>>
>>>>>>> Doc here
>>>>>>> http://clang.llvm.org/docs/UsersManual.html#formatting-of-diagnostics
>>>>>>> says: "This option, which defaults to on when a color-capable
>>>>>>> terminal
>>>>>>> is
>>>>>>> detected". Isn't xterm "a color-capable terminal"?
>>>>>>>
>>>>>>> If I give -fcolor-diagnostics explicitly, all works as expected. But
>>>>>>> why
>>>>>>> must I do that? GCC uses colors by default.
>>>>>>> _______________________________________________
>>>>>>> cfe-users mailing list
>>>>>>> cfe-users at lists.llvm.org
>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>>
>>>>>> cfe-users mailing list
>>>>> cfe-users at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>>>>>
>>>>>
>>>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20150910/658c1171/attachment.html>


More information about the cfe-users mailing list