Subject: [bug#43679] [PATCH 3/5] gnu: clang-toolchain: Create 'cc' and 'c++' symlinks.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 29 Sep 2020 09:53:18 +0200

Hi Efraim,

Efraim Flashner <[email-masked]> skribis:

> On Mon, Sep 28, 2020 at 09:56:46PM +0200, Ludovic Courtès wrote:
>> From: Ludovic Courtès <[email-masked]>
>> 
>> * gnu/packages/llvm.scm (make-clang-toolchain)[arguments]: Create 'cc'
>> and 'c++' symlinks.
>> ---
>>  gnu/packages/llvm.scm | 6 ++++++
>>  1 file changed, 6 insertions(+)
>> 
>> diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
>> index 4b42c4921a..361b39710b 100644
>> --- a/gnu/packages/llvm.scm
>> +++ b/gnu/packages/llvm.scm
>> @@ -476,6 +476,12 @@ code analysis tools.")
>>                         (((names . directories) ...)
>>                          (union-build out directories)))
>>  
>> +                     ;; Create 'cc' and 'c++' so that one can use it as a
>> +                     ;; drop-in replacement for the default tool chain and
>> +                     ;; have configure scripts find the compiler.
>> +                     (symlink "clang" (string-append out "/bin/cc"))
>> +                     (symlink "clang++" (string-append out "/bin/c++"))
>> +
>>                       (union-build (assoc-ref %outputs "debug")
>>                                    (list (assoc-ref %build-inputs
>>                                                     "libc-debug")))
>> -- 
>> 2.28.0
>
> Isn't this something we've turned down patches for in the past with gcc?

That is true, and, ahem, I even know a person who was against it.

But!  I think it’s a bit different here: (1) we’re only changing
‘clang-toolchain’, not ‘clang’, (2) while most build systems look for
‘gcc’ in addition to ‘cc’, few of them look for ‘clang’.

‘--with-toolchain’ is useful even if ‘clang-toolchain’ cannot be dropped
in (it allows you to try out different GCC versions, for instance), but
I think it’s more useful if one can use it to build their code with a
different free tool chain.  One use case that comes to mind is
portability testing for C/C++ developers.

WDYT?

Thanks,
Ludo’.