clang issues a report for a “probable internal compiler bug.” On gcc, the symptom is a compiler error message about the ifunc attribute not being supported. ![]() The C attribute target_clones is accepted by both clang and gcc front ends, but the back ends don’t implement it on 10.13. One issue requires modifying the darktable C source. I hope to find a solution for this, and report it to the rawspeed team, if it isn’t already fixed in the source. Building with LTO off works, but is (by definition) suboptimal. The resulting compiler errors cause the CMake configuration process to fail in ugly ways. With -DRAWSPEED_ENABLE_LTO=ON, the rawspeed build system uses clang compiler/linker arguments that do not work with clang 15 on macOS. I’ve observed this as well in earlier efforts to build DT on Ubuntu, on a Zen 3 system, so it’s not unique to this obsolete target platform. You will see many “warning: loop not vectorized” messages. I have not yet tried earlier versions of either compiler.Ĭlang’s OpenMP optimizations are, shall we say, suboptimal. gcc doesn’t work because it fails to recognize which is apparently an Apple extension to Objective-C, in darktable/src/osx/osx.mm. I tried both clang 15 and gcc 12 (both as installed by MacPorts). The Rust compiler took well over an hour to install! I hope to identify the subset of prerequisite dependencies which can be installed prebuilt. This is especially annoying because many of the dependencies aren’t part of the final darktable executables, e.g. The list in the instructions is not complete, and you will probably trip over older inactive versions of the same libraries.īeware: if you tell MacPorts to install all the prerequisites and their dependencies from source, it’ll take forever. Uninstall all MacPorts-built shared libraries that DT uses, and any executables that depend on them, before attempting this build. You will not be able to use Xcode’s clang to build DT. The instructions linked above by are mostly complete, but you will trip over issues if you attempt to build on High Sierra or earlier. Until then, here are some breadcrumbs for anyone else foolhardy enough to try this. When I get optimizations working, I would be willing to provide a. I’m working on reproducible instructions for this process. I’ve only built it once, in RelWithDebInfo mode. darktable-cltest even recognized the ancient GPU as OpenCL capable! I’ve managed to successfully build and run (briefly) darktable 4.2.0 on my 2011 15" MacBook Pro running macOS 10.13.6 (High Sierra). After removing a few more foot bullets, and ensuring all of the documented prerequisites were in fact installed, I discovered that RAWSPEED_ENABLE_LTO=ON was breaking the rawspeed compiler tests, at least with MacPorts LLVM 15 on macOS 10.13. ![]() An older build was installed that I failed to remove before starting the process. The glib2 conflict turned out to be of my own making. I should probably mention I cloned the release-4.2.0 tag. And I can’t install the MacPorts copy of LensFun, because of a glib2 variant conflict. It appears the DT build system treats LensFun as a requirement, even when -DUSE_LENSFUN=OFF is passed to CMake. I can’t find any evidence of OpenCL anywhere on this system, but then I don’t think the external GPU on this laptop is beefy enough to bother with it anyway. ![]() The DT build system thinks the native Xcode clang is too old, so I’ve had to install a newer LLVM and clang via MacPorts, and pass the compilers on the CMake command line. I’ve gotten past a few hurdles, and I’m taking notes to document the process for others who want to follow this path.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |