Subject: Bug#1097510: open-vm-tools: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:41:20 +0000

Package: src:open-vm-tools
Version: 2:12.5.0-1
Severity: important
Tags: sid forky
User: [email-masked]
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/open-vm-tools_12.5.0-1_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

[...]
libtool: link: ar cr .libs/libHgfsServerPolicyGuest.a .libs/hgfsServerPolicyGuest.o 
libtool: link: ranlib .libs/libHgfsServerPolicyGuest.a
libtool: link: ( cd ".libs" && rm -f "libHgfsServerPolicyGuest.la" && ln -s "../libHgfsServerPolicyGuest.la" "libHgfsServerPolicyGuest.la" )
make[3]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/hgfsServerPolicyGuest'
Making all in hgfsUri
make[3]: Entering directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/hgfsUri'
libtool: link: ar cr .libs/libHgfsUri.a .libs/hgfsUriPosix.o 
libtool: link: ranlib .libs/libHgfsUri.a
libtool: link: ( cd ".libs" && rm -f "libHgfsUri.la" && ln -s "../libHgfsUri.la" "libHgfsUri.la" )
make[3]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/hgfsUri'
Making all in impersonate
make[3]: Entering directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/impersonate'
libtool: link: ar cr .libs/libImpersonate.a .libs/impersonate.o .libs/impersonatePosix.o 
libtool: link: ranlib .libs/libImpersonate.a
libtool: link: ( cd ".libs" && rm -f "libImpersonate.la" && ln -s "../libImpersonate.la" "libImpersonate.la" )
make[3]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/impersonate'
Making all in lock
make[3]: Entering directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/lock'
ul.c:32:8: error: conflicting types for 'MXUserTryAcquireForceFail'; have 'Bool (*)(void)' {aka 'char (*)(void)'}
   32 | Bool (*MXUserTryAcquireForceFail)() = NULL;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ul.c:24:
ulInt.h:515:18: note: previous declaration of 'MXUserTryAcquireForceFail' with type 'Bool (*)(const char *)' {aka 'char (*)(const char *)'}
  515 |    extern Bool (*MXUserTryAcquireForceFail)(const char *name);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:537: ul.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib/lock'
make[2]: *** [Makefile:520: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools/lib'
make[1]: *** [Makefile:568: all-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/open-vm-tools-12.5.0/open-vm-tools'
dh_auto_build: error: cd open-vm-tools && make -j8 returned exit code 2
make: *** [debian/rules:13: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2