clone 1011078 -1
retitle -1 chromium: i386 and armhf packages FTBFS in bullseye
tags -1 bullseye ftbfs
severity -1 serious
thanks
On Mon, 16 May 2022 20:33:46 +0200
Salvatore Bonaccorso <
car...@debian.org> wrote:
[...]
Okay, so arm64 should be building now (thanks Salvatore!). Assuming no
build failures, they should show up in the archive in a day or two.
Chromium is a slow build. :)
While looking at this, I noticed that i386 and armhf in
bullseye-security were even older (last built circa chromium v99). The
build log shows this build failure on armhf:
[12837/50904] CXX obj/base/base/task_annotator.o
FAILED: obj/base/base/task_annotator.o
clang++ -MMD -MF obj/base/base/task_annotator.o.d -DPA_PCSCAN_STACK_SUPPORTED -DUSE_SYMBOLIZE
-DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LAR
GEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-15-init-3677-g
8133778d-4\" -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -DGLI
B_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DU_USI
NG_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_R
ESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -
Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third
_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/libevent_shim -I../../third_p
arty/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -I
gen/protoc_out -Igen/third_party/perfetto -I../../third_party/icu/source/common -I../../third
_party/icu/source/i18n -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code-aggressive -Wt
hread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analys
is -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-prag
ma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=
ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC
-pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/
crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off --target=arm-linux-gnu
eabihf -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -fdebug-compilation-dir=. -no-c
anonical-prefixes -mfpu=vfpv3-d16 -mthumb -ftrivial-auto-var-init=pattern -fno-omit-frame-poi
nter -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-comp
are -Wexit-time-destructors -Wglobal-constructors -I/usr/include/glib-2.0 -I/usr/lib/arm-linu
x-gnueabihf/glib-2.0/include -Wexit-time-destructors -fdata-sections -ffunction-sections -fno
-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -std=c++17 -Wno-trigraphs -fno-aligned-ne
w -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -
fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-securit
y -Wno-conversion -Wno-unused-function -Wno-unused-variable -Wno-unused-private-field -Wno-de
precated-declarations -Wno-unknown-pragmas -fno-delete-null-pointer-checks -c ../../base/tas
k/common/task_annotator.cc -o obj/base/base/task_annotator.o
In file included from ../../base/task/common/task_annotator.cc:15:
../../base/sys_byteorder.h:56:28: error: constexpr function never produces a constant express
ion [-Winvalid-constexpr]
inline constexpr uintptr_t ByteSwapUintPtrT(uintptr_t x) {
../../base/sys_byteorder.h:65:12: note: non-constexpr function 'ByteSwap' cannot be used in a constant expression
return ByteSwap(static_cast<uint32_t>(x));
^
../../base/sys_byteorder.h:33:17: note: declared here
inline uint32_t ByteSwap(uint32_t x) {
^
1 error generated.
And this build failure on i386:
[12741/51668] CXX obj/base/base/sampling_heap_profiler.o
FAILED: obj/base/base/sampling_heap_profiler.o
clang++ -MMD -MF obj/base/base/sampling_heap_profiler.o.d -DPA_PCSCAN_STACK_SUPPORTED -DUSE_S
YMBOLIZE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTAN
T_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURC
E -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-15-ini
t-3677-g8133778d-4\" -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATI
ON -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_
ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -
I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Ig
en/third_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/libevent_shim -I../..
/third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobu
f/src -Igen/protoc_out -Igen/third_party/perfetto -I../../third_party/icu/source/common -I../
../third_party/icu/source/i18n -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code-aggres
sive -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloo
p-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-igno
red-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing
--param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-table
s -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tool
s/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -m32 -mfpmath=
sse -msse3 -fdebug-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -
fno-omit-frame-pointer -momit-leaf-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Ws
tring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors
-I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -Wexit-time-destructors -
fdata-sections -ffunction-sections -fno-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -s
td=c++17 -Wno-trigraphs -fno-aligned-new -fno-exceptions -fno-rtti -fvisibility-inlines-hidde
n -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector
-strong -Wformat -Werror=format-security -Wno-conversion -Wno-unused-function -Wno-unused-var
iable -Wno-unused-private-field -Wno-deprecated-declarations -Wno-unknown-pragmas -fno-delet
e-null-pointer-checks -c ../../base/sampling_heap_profiler/sampling_heap_profiler.cc -o obj/b
ase/base/sampling_heap_profiler.o
In file included from ../../base/sampling_heap_profiler/sampling_heap_profiler.cc:12:
In file included from ../../base/allocator/partition_allocator/partition_alloc.h:10:
In file included from ../../base/allocator/partition_allocator/partition_root.h:53:
In file included from ../../base/allocator/partition_allocator/partition_direct_map_extent.h:
10:
In file included from ../../base/allocator/partition_allocator/partition_page.h:21:
In file included from ../../base/allocator/partition_allocator/partition_freelist_entry.h:21:
../../base/sys_byteorder.h:56:28: error: constexpr function never produces a constant express
ion [-Winvalid-constexpr]
inline constexpr uintptr_t ByteSwapUintPtrT(uintptr_t x) {
^
../../base/sys_byteorder.h:65:12: note: non-constexpr function 'ByteSwap' cannot be used in a
constant expression
return ByteSwap(static_cast<uint32_t>(x));
^
../../base/sys_byteorder.h:33:17: note: declared here
inline uint32_t ByteSwap(uint32_t x) {
^
1 error generated.
Both are occurring in chromium's ./base/sys_byteorder.h header. ByteSwapUintPtrT is marked
constexpr but it includes a non-constexpr function (ByteSwap). Clang-13 is smart enough to
inline ByteSwap this and not care about the differences in constexpr marking, but clang-11 is not.
I'll need to remove the constexpr, like I did in
debian/patches/bullseye/blink-constexpr.patch. And/or send a patch upstream to mark ByteSwap as
constexpr, which I couldn't do with blink-constexpr.patch because it was using a non-constexpr
function from the c++ std library.