[Debian-med-packaging] Bug#1133523: libmmap-allocator: ftbfs with GCC-16
Emanuele Rocca
ema at debian.org
Mon Apr 13 14:05:50 BST 2026
Package: src:libmmap-allocator
Version: 0.4.0+git20200122.adbfbe1-2.1
Severity: important
Tags: sid forky ftbfs
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-16
Hi,
libmmap-allocator fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.
The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/libmmap-allocator_arm64.build.xz
The last lines of the build log are at the end of this report.
To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html
Please only close this issue after double-checking that the package can be
built correctly with GCC 16.
Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.
[...]
make[1]: Entering directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
dh_auto_build -- libmmap_allocator.so libmmap_allocator.a
make -j128 INSTALL="install --strip-program=true" libmmap_allocator.so libmmap_allocator.a
make[2]: Entering directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
g++ -g -O2 -ffile-prefix-map=/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -fPIC -c -o mmap_file_pool.o mmap_file_pool.cpp
g++ -shared -o libmmap_allocator.so mmap_file_pool.o -Wl,-z,relro
ar r libmmap_allocator.a mmap_file_pool.o
ar: creating libmmap_allocator.a
make[2]: Leaving directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
make[1]: Leaving directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
debian/rules override_dh_auto_test
make[1]: Entering directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
make test
make[2]: Entering directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
g++ -g -O2 -ffile-prefix-map=/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -fPIC -c -o test_allocator.o test_allocator.cpp
test_allocator.cpp: In function ‘void test_test_file(int, bool)’:
test_allocator.cpp:40:24: warning: unused variable ‘r’ [-Wunused-variable]
40 | size_t r = fread(&j, 1, sizeof(j), f);
| ^
test_allocator.cpp: In function ‘void test_throw_catch()’:
test_allocator.cpp:71:43: warning: catching polymorphic type ‘class mmap_allocator_namespace::mmap_allocator_exception’ by value [-Wcatch-value=]
71 | } catch (mmap_allocator_exception e) {
| ^
test_allocator.cpp:78:43: warning: catching polymorphic type ‘class mmap_allocator_namespace::mmap_allocator_exception’ by value [-Wcatch-value=]
78 | } catch (mmap_allocator_exception e) {
| ^
test_allocator.cpp: In function ‘void test_exceptions()’:
test_allocator.cpp:95:43: warning: catching polymorphic type ‘class mmap_allocator_namespace::mmap_allocator_exception’ by value [-Wcatch-value=]
95 | } catch (mmap_allocator_exception e) {
| ^
test_allocator.cpp:105:43: warning: catching polymorphic type ‘class mmap_allocator_namespace::mmap_allocator_exception’ by value [-Wcatch-value=]
105 | } catch (mmap_allocator_exception e) {
| ^
test_allocator.cpp: In function ‘void test_new_interface()’:
test_allocator.cpp:357:43: warning: catching polymorphic type ‘class mmap_allocator_namespace::mmap_allocator_exception’ by value [-Wcatch-value=]
357 | } catch (mmap_allocator_exception e) {
| ^
In file included from test_allocator.cpp:1:
mmap_allocator.h: In instantiation of ‘T* mmap_allocator_namespace::mmap_allocator<T>::allocate(size_type, const void*) [with T = int; pointer = int*; size_type = long unsigned int]’:
/usr/include/c++/16/bits/alloc_traits.h:385:28: required from ‘static constexpr std::allocator_traits< <template-parameter-1-1> >::pointer std::allocator_traits< <template-parameter-1-1> >::allocate(_Alloc&, size_type) [with _Alloc = mmap_allocator_namespace::mmap_allocator<int>; pointer = int*; size_type = long unsigned int]’
385 | { return __a.allocate(__n); }
| ~~~~~~~~~~~~^~~~~
/usr/include/c++/16/bits/stl_vector.h:389:33: required from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = int; _Alloc = mmap_allocator_namespace::mmap_allocator<int>; pointer = int*; std::size_t = long unsigned int]’
389 | return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer();
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~
/usr/include/c++/16/bits/vector.tcc:82:33: required from ‘constexpr void std::vector<_Tp, _Alloc>::reserve(size_type) [with _Tp = int; _Alloc = mmap_allocator_namespace::mmap_allocator<int>; size_type = long unsigned int]’
82 | __tmp = this->_M_allocate(__n);
| ~~~~~~~~~~~~~~~~~^~~~~
mmappable_vector.h:71:17: required from ‘void mmap_allocator_namespace::mmappable_vector<T, A>::mmap_file(size_t) [with T = int; A = mmap_allocator_namespace::mmap_allocator<int>; size_t = long unsigned int]’
71 | Base::reserve(n);
| ~~~~~~~~~~~~~^~~
test_allocator.cpp:129:27: required from here
129 | int_vec_default.mmap_file(1024);
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
mmap_allocator.h:39:67: error: no matching function for call to ‘mmap_allocator_namespace::mmap_allocator<int>::allocate(mmap_allocator_namespace::mmap_allocator<int>::size_type&, const void*&)’
39 | return std::allocator<T>::allocate(n, hint);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
• there is 1 candidate
In file included from /usr/include/c++/16/memory:67,
from mmap_allocator.h:4:
• candidate 1: ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = int; std::size_t = long unsigned int]’
/usr/include/c++/16/bits/allocator.h:194:7:
194 | allocate(size_t __n)
| ^~~~~~~~
• candidate expects 1 argument, 2 provided
make[2]: *** [<builtin>: test_allocator.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
make[1]: *** [debian/rules:13: override_dh_auto_test] Error 2
make[1]: Leaving directory '/build/reproducible-path/libmmap-allocator-0.4.0+git20200122.adbfbe1'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
More information about the Debian-med-packaging
mailing list