FTBFS with glibc 2.35
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
VMWare tools |
Unknown
|
Unknown
|
|||
open-vm-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
FTBFS found when building in jammy-proposed:
libtool: compile: gcc -DPACKAGE_
In file included from /usr/include/
In function ‘poll’,
inlined from ‘AsyncTCPSocket
/usr/include/
39 | return __glibc_fortify (poll, __nfds, sizeof (*__fds),
| ^~~~~~~~~~~~~~~
In file included from /usr/include/
/usr/include/
/usr/include/
28 | extern int __poll_chk (struct pollfd *__fds, nfds_t __nfds, int __timeout,
| ^~~~~~~~~~
cc1: all warnings being treated as errors
Recently libc6 2.35 was uploaded and poll is implemented there.
libc6 | 2.34-0ubuntu3 | jammy | amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libc6 | 2.35-0ubuntu1 | jammy-proposed | amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
We know that internally to vmware there is a 12.0 version prepared,
but public github master still is at 11.3.5.
Checking combinations:
11.3.5 as in Jammy - Jammyi (via d/rules): working
11.3.5 as in Jammy - Jammy-proposed (via d/rules): failing
open-vm-tools latest master - Jammy-proposed (autoconf/
tag stable-11.3.5 from git (autoconf/
tag stable-11.3.5 from git (autoconf/conf/make Ubuntu options) - Jammy proposed: failing
1. Ubuntu build "d/rules build"
2. Upstream build:
autoreconf -i
./configure
make
sudo make install
sudo ldconfig
3. upstream build with Ubuntu options
git clean -x -f -d
autoreconf -i
./configure --without-
make
I've tried various config options, this issue seems to happen only if the following conditions align:
1. build against glibc 2.35: 2.35-0ubuntu1
2. LTO is enabled: -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects
3. Optimizing with gcc: -O2
4. gcc 11.2.0
This isn't a new or show-stopping issue compared to before, therefore in Ubuntu
we will ignore this particular error for now.
In addition I have reported it upstream to eventually be resolved for real.
Working in tests for now is the following mitigation which I'll propose:
diff --git a/open-
index 05147d2e..546932ec 100644
--- a/open-
+++ b/open-
@@ -2850,6 +2850,10 @@ AsyncTCPSocketP
}
+#if defined(__GNUC__) && (__GNUC__ >= 11)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstringop-
+#endif
if (parentSock != NULL) {
retval = poll(pfd, numSock, timeoutMS);
@@ -2863,6 +2867,9 @@ AsyncTCPSocketP
}
}
+#if defined(__GNUC__) && (__GNUC__ >= 11)
+#pragma GCC diagnostic pop
+#endif
#else
tv.tv_sec = timeoutMS / 1000;
tv.tv_usec = (timeoutMS % 1000) * 1000;
Related branches
- Paride Legovini (community): Approve (modulo ppa build)
- Canonical Server: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 122 lines (+61/-4)5 files modifieddebian/changelog (+9/-0)
debian/control (+3/-3)
debian/patches/libc-2.35-compat-FTBFS-fix.patch (+47/-0)
debian/patches/series (+1/-0)
debian/rules (+1/-1)
Reported upstream: /github. com/vmware/ open-vm- tools/issues/ 570
https:/