[Android-tools-devel] Bug#1096309: android-platform-external-libselinux: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:03:11 GMT 2025


Package: src:android-platform-external-libselinux
Version: 10.0.0+r36-2
Severity: important
Tags: sid forky
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-15

[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/android-platform-external-libselinux_10.0.0+r36-2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
   57 |         uint32_t bool;
      |                      ^
libsepol/src/link.c: In function ‘copy_cond_list’:
libsepol/src/link.c:1584:35: error: expected identifier before ‘bool’
 1584 |                         cur_expr->bool =
      |                                   ^~~~
In file included from libsepol/include/sepol/policydb/expand.h:30,
                 from libsepol/src/module.c:25:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
In file included from libsepol/src/module_to_cil.c:48:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
libsepol/src/module_to_cil.c: In function ‘cond_expr_to_cil’:
libsepol/src/module_to_cil.c:1285:62: error: expected identifier before ‘bool’
 1285 |                         val1 = pdb->p_bool_val_to_name[curr->bool - 1];
      |                                                              ^~~~
In file included from libsepol/include/sepol/policydb/expand.h:30,
                 from libsepol/src/policydb.c:48:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
In file included from libsepol/src/services.c:61:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
In file included from libsepol/include/sepol/policydb/expand.h:30,
                 from libsepol/src/users.c:11:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
In file included from libsepol/src/write.c:41:
libsepol/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
libsepol/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
In file included from libsepol/src/write.c:46:
libsepol/src/write.c: In function ‘cond_write_node’:
libsepol/src/write.c:772:54: error: expected identifier before ‘bool’
  772 |                 buf[items++] = cpu_to_le32(cur_expr->bool);
      |                                                      ^~~~
libsepol/src/private.h:27:25: note: in definition of macro ‘cpu_to_le32’
   27 | #define cpu_to_le32(x) (x)
      |                         ^
make[2]: *** [debian/libsepol.mk:62: build] Error 1
make[2]: Leaving directory '/build/reproducible-path/android-platform-external-libselinux-10.0.0+r36'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" -f debian/libsepol.mk returned exit code 2
make[1]: *** [debian/rules:16: debian/out/libsepol.so] Error 25
make[1]: Leaving directory '/build/reproducible-path/android-platform-external-libselinux-10.0.0+r36'
make: *** [debian/rules:10: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the Android-tools-devel mailing list