[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