[llvm-dev] Build requirement changes missing from 12.0.0 release notes

Gregory Szorc via llvm-dev llvm-dev at lists.llvm.org
Thu Apr 15 14:52:39 PDT 2021


Thank you for the hard work on LLVM 12!

I build LLVM/Clang from source in a minimal Docker image based on Debian
Jessie.

First, it appears Python 3 is now required to build. This requirement is
not reflected at https://releases.llvm.org/12.0.0/docs/ReleaseNotes.html.
Fortunately, it builds with Jessie's old Python 3.4 just fine, so this was
easy enough to address.

Second, I got a compiler error during the build:

> FAILED: tools/lld/MachO/CMakeFiles/lldMachO2.dir/UnwindInfoSection.cpp.o
> /build/sccache /tools/host/bin/g++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-Itools/lld/MachO -I/build/llvm/tools/lld/MachO
-I/build/llvm/tools/lld/include -Itools/lld/include -Iinclude
-I/build/llvm/include -I/build/llvm/../libunwind/include
-Wno-cast-function-type -fPIC -fvisibility-inlines-hidden -Werror=date-time
-Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers -pedantic -Wno-long-long
-Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess
-Wno-redundant-move -Wno-noexcept-type -Wdelete-non-virtual-dtor
-Wsuggest-override -Wno-comment -fdiagnostics-color -ffunction-sections
-fdata-sections -O3 -DNDEBUG  -fno-exceptions -fno-rtti -std=c++14 -MD -MT
tools/lld/MachO/CMakeFiles/lldMachO2.dir/UnwindInfoSection.cpp.o -MF
tools/lld/MachO/CMakeFiles/lldMachO2.dir/UnwindInfoSection.cpp.o.d -o
tools/lld/MachO/CMakeFiles/lldMachO2.dir/UnwindInfoSection.cpp.o -c
/build/llvm/tools/lld/MachO/UnwindInfoSection.cpp
clang> In file included from
/build/llvm/tools/lld/MachO/UnwindInfoSection.cpp:9:
clang> /build/llvm/tools/lld/MachO/UnwindInfoSection.h:15:10: fatal error:
mach-o/compact_unwind_encoding.h: No such file or directory
>    15 | #include "mach-o/compact_unwind_encoding.h"
>         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.

It looks like libunwind got split out into its own source archive.
Extracting it to the appropriate directory made the build happy. But I was
surprised there wasn't a CMake check either disabling the optional
functionality or failing the build on missing libunwind.

I also see a handful of other source archives that might be new in 12.0.
Was there any other functionality split out into new archives that would
result in feature loss from prior versions if we fail to materialize the
sources in the proper locations?

Great work on the release! These seem like minor hiccups.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210415/8ea6a395/attachment.html>


More information about the llvm-dev mailing list