Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jan 2023 17:37:24 +0100
From:      =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= <dumbbell@FreeBSD.org>
To:        Matthias Andree <matthias.andree@gmx.de>, Dima Panov <fluffy@FreeBSD.org>
Cc:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   Re: git: 75ac7903573c - main - graphics/darktable: Use GCC as the compiler instead of LLVM
Message-ID:  <fd8b8c19-36c0-6fb0-7438-0aa8572b0482@FreeBSD.org>
In-Reply-To: <3e6b66b1-c01e-095a-fb95-61db65787d9b@gmx.de>
References:  <202301272245.30RMjpHY013683@gitrepo.freebsd.org> <e7503770-7637-2880-e374-ba4f3b8ee402@FreeBSD.org> <3e6b66b1-c01e-095a-fb95-61db65787d9b@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28/01/2023 15:51, Matthias Andree wrote:
> Am 28.01.23 um 14:22 schrieb Dima Panov:
>> Moin-moin!
>>
>>
>> USES+= llvm:14,build
>>
>> with
>>
>> USES+= compiler:gcc-c++11-lib
>> USE_GCC=yes
>>
>> at same time?
>> Please choose only one set, compiler.mk have a higher priority and
>> conflicting with overriding CC
>>
>> BTW, USES=llvm also needs to set USE_CXXSTD='gnu++17', for example
> 
> Dima,
> 
> thanks for looking again.
> 
> I can't judge on the details because that's been Jean-Sébastien's doing,
> but I know that darktable uses two compilers:
> - one is for the C++ librawspeed and the C darktable code, and
> - the other compiler shall be LLVM to compile the OpenCL kernels.  I
> don't think GCC could do the latter, and certainly darktable expects to
> use LLVM by way of its build tooling and configuration (cmake-based).

Indeed, I could have given more explanations in the commit message or in 
comments in the Makefile.

We used to compile Darktable entirely with LLVM. Unfortunately, it 
breaks on a regular basis because GCC is used upstream and Darktable 
uses a lot of GCC-specific flags and optimizations. I wanted to switch 
from LLVM 13 we used so far to LLVM 15, the one used by mesa-dri to 
reduce the number of installed LLVM. But again, Darktable doesn't 
compile with LLVM 14/15; that's the part I described in the commit message.

So instead of fighting the expectations of the upstream developers, I 
preferred to use GCC as the main compiler for Darktable.

Now, as Matthias said, LLVM is still required for the OpenCL part of 
Darktable. That's why it is a build dependency, not a runtime one. I 
agree it's annoying, but that's how Darktable is compiled upstream.

-- 
Jean-Sébastien Pédron
The FreeBSD Project




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fd8b8c19-36c0-6fb0-7438-0aa8572b0482>