Thanks for the patch Sergio! Also for the well explained reason why
those patches are needed. I did not build the package since it takes too
long but I see it built fine in the PPA so far (I'd wait until the
builds end in all architectures before uploading it to the archive).

One thing that you need to fix before uploading is adding a reference to
this LP bug in the changelog to close it automatically. After that, feel
free to upload the package once it builds in all architectures.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to llvm-toolchain-11 in Ubuntu.
https://bugs.launchpad.net/bugs/1939424

Title:
  FTBFS with Linux 5.13/GCC 11

Status in llvm-toolchain-11 package in Ubuntu:
  Confirmed

Bug description:
  llvm-toolchain-11 is FTBFS'ing with Linux 5.13 because of:

  [  8%] Building CXX object 
projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cpp.o
  cd /<<PKGBUILDDIR>>/build-llvm/projects/compiler-rt/lib/sanitizer_common && 
/usr/bin/g++-11 -DHAVE_RPC_XDR_H=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS 
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-I/<<PKGBUILDDIR>>/build-llvm/projects/compiler-rt/lib/sanitizer_common 
-I/<<PKGBUILDDIR>>/compiler-rt/lib/sanitizer_common 
-I/<<PKGBUILDDIR>>/build-llvm/include -I/<<PKGBUILDDIR>>/llvm/include 
-I/<<PKGBUILDDIR>>/compiler-rt/lib/sanitizer_common/.. -g -O2 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -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 -Wno-comment -ffunction-sections 
-fdata-sections -Wall -std=c++14 -Wno-unused-parameter -O2 -DNDEBUG -g1  -m64 
-fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables 
-fno-stack-protector -fvisibility=hidden -fno-lto -O3 -g -Wno-variadic-macros 
-Wno-non-virtual-dtor -fno-rtti -Wframe-larger-than=570 -std=c++14 -o 
CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cpp.o -c 
/<<PKGBUILDDIR>>/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
  
/<<PKGBUILDDIR>>/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp:133:10:
 fatal error: linux/cyclades.h: No such file or directory
    133 | #include <linux/cyclades.h>
        |          ^~~~~~~~~~~~~~~~~~
  compilation terminated.
  make[5]: *** 
[projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/build.make:358:
 
projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_posix.cpp.o]
 Error 1
  make[5]: *** Waiting for unfinished jobs....
  make  -f 
projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/build.make
 
projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/depend
  make[5]: Entering directory '/<<PKGBUILDDIR>>/build-llvm'

  This is happening because the Cyclades driver has been finally removed
  from Linux (after being orphaned 13 years ago):

  
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux?h=v5.12&id=f76edd8f7ce06cdff2fe5b6b39a49644c684a161

  LLVM includes cyclades.h when building libsanitizer, and therefore the
  FTBFS occurs.

  Upstream has fixed this by removing support for Cyclades from
  libsanitizer:

  https://github.com/llvm/llvm-
  project/commit/884040db086936107ec81656aa5b4c607235fb9a

  
  As for the GCC 11 failure, the problem is:

  [ 19%] Building CXX object 
tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o
  cd 
/<<PKGBUILDDIR>>/build-llvm/tools/clang/stage2-bins/tools/clang/utils/TableGen 
&& /<<PKGBUILDDIR>>/build-llvm/./bin/clang++ -DCLANG_VENDOR="\"Ubuntu \"" 
-D_GNU_SOURCE -D__STDC_CONSTANT_M
  ACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-I/<<PKGBUILDDIR>>/build-llvm/tools/clang/stage2-bins/tools/clang/utils/TableGen
 -I/<<PKGBUILDDIR>>/clang/utils/TableGen -I/<<PKGBUILDDIR>
  >/clang/include 
-I/<<PKGBUILDDIR>>/build-llvm/tools/clang/stage2-bins/tools/clang/include 
-I/<<PKGBUILDDIR>>/build-llvm/tools/clang/stage2-bins/include 
-I/<<PKGBUILDDIR>>/llvm/include -fuse
  -ld=gold -fPIC -Wno-unused-command-line-argument -Wno-unknown-warning-option 
-fPIC -fvisibility-inlines-hidden -Werror=date-time 
-Werror=unguarded-availability-new -Wall -Wextra -Wno-unused
  -parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic 
-Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default 
-Wno-class-memaccess -Wno-noexcept-type -Wnon-vi
  rtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -ffunction-sections 
-fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O2 
-DNDEBUG -g1  -fno-exceptions -std=c
  ++14 -o CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o -c 
/<<PKGBUILDDIR>>/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
  In file included from 
/<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.cc:15:
  /<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.h:17:30: error: 
no member named 'numeric_limits' in namespace 'std'
    static const T kmax = std::numeric_limits<T>::max();
                          ~~~~~^
  /<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.h:17:45: error: 
'T' does not refer to a value
    static const T kmax = std::numeric_limits<T>::max();
                                              ^
  /<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.h:8:20: note: 
declared here
  template <typename T>
                     ^
  /<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.h:17:47: error: 
no member named 'max' in the global namespace; did you mean 'kmax'?
    static const T kmax = std::numeric_limits<T>::max();
                                                ^~~~~
                                                kmax
  /<<PKGBUILDDIR>>/llvm/utils/benchmark/src/benchmark_register.h:17:18: note: 
'kmax' declared here
    static const T kmax = std::numeric_limits<T>::max();

  This comes from the fact that GCC 11 requires the inclusion of the
  <limits> header in order to access std::numeric_limits<T>.  This has
  also been fixed upstream:

  https://github.com/llvm/llvm-
  project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1

  I'm preparing and testing a patch, and will attach it to this bug
  soon.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-11/+bug/1939424/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to