Darktable source code is heavily tuned for GCC and its optimizations. It always required some work to make it compile with LLVM. With LLVM 14+, new errors around `static inline __attribute__((target-clones))` appeared: the compiler failed to link the final executable because there was multiple copies of the same ifunc resolver (the code originated from a header included in a couple places). Apparently GCC knows how to deal with the "static-inline"-ness of the resolver somehow. Unfortunately, even with GCC, we get several compilation failures because the source files enable Graphite optimizations (using `#pragma`) but our GCC compiler has Graphite disabled by default. All the patches included in this commit simply delete all the corresponding `#pragma`. I suppose Darktable will be slightly slower because of this, but I didn't measure anything. In the end, the dependencies of the port change a bit because GCC replaces LLVM.
19 lines
978 B
C
19 lines
978 B
C
--- src/develop/blends/blendif_lab.c.orig 2023-01-26 22:14:31 UTC
|
|
+++ src/develop/blends/blendif_lab.c
|
|
@@ -16,15 +16,6 @@
|
|
along with darktable. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
-#if defined(__GNUC__)
|
|
-#pragma GCC optimize("unroll-loops", "tree-loop-if-convert", "tree-loop-distribution", "no-strict-aliasing", \
|
|
- "loop-interchange", "loop-nest-optimize", "tree-loop-im", "unswitch-loops", \
|
|
- "tree-loop-ivcanon", "ira-loop-pressure", "split-ivs-in-unroller", "tree-loop-vectorize", \
|
|
- "variable-expansion-in-unroller", "split-loops", "ivopts", "predictive-commoning", \
|
|
- "tree-loop-linear", "loop-block", "loop-strip-mine", "finite-math-only", "fp-contract=fast", \
|
|
- "fast-math", "no-math-errno")
|
|
-#endif
|
|
-
|
|
#include "common/colorspaces_inline_conversions.h"
|
|
#include "common/imagebuf.h"
|
|
#include "common/math.h"
|