[Bug 1985956] Re: linux-libc-dev and libc6-dev do not agree who owns fsconfig_command
Launchpad Bug Tracker
1985956 at bugs.launchpad.net
Fri Aug 26 18:16:52 UTC 2022
This bug was fixed in the package glibc - 2.36-0ubuntu2
---------------
glibc (2.36-0ubuntu2) kinetic; urgency=medium
* Add patches to fix build with GCC 12:
- d/patches/0001-Avoid-undefined-behaviour-in-ibm128-implementation-o.patch
- d/patches/0001-Ensure-calculations-happen-with-desired-rounding-mod.patch
- d/patches/0001-Fix-BZ-29463-in-the-ibm128-implementation-of-y1l-too.patch
* Switch back to building with the default GCC (i.e. 12)
* Add patches to fix incompatibility between kernel and glibc mount.h
headers (LP: #1985956):
- d/patches/0001-glibcextract.py-Add-compile_c_snippet.patch
- d/patches/0003-linux-Mimic-kernel-defition-for-BLOCK_SIZE.patch
- d/patches/0004-linux-Use-compile_c_snippet-to-check-linux-mount.h-a.patch
- d/patches/0005-linux-Fix-sys-mount.h-usage-with-kernel-headers.patch
- d/patches/0006-Linux-Fix-enum-fsconfig_command-detection-in-sys-mou.patch
* Add patch to restore DT_HASH tag/SHT_HASH section (see
https://sourceware.org/bugzilla/show_bug.cgi?id=29456):
- d/patches/restore-libc-DT_HASH.patch
* Add nss/tst-reload2 to xfails as it fails in autopkgtests in check_prof
run.
-- Michael Hudson-Doyle <michael.hudson at ubuntu.com> Mon, 22 Aug 2022
13:24:16 +1200
** Changed in: glibc (Ubuntu)
Status: New => Fix Released
** Bug watch added: Sourceware.org Bugzilla #29456
https://sourceware.org/bugzilla/show_bug.cgi?id=29456
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1985956
Title:
linux-libc-dev and libc6-dev do not agree who owns fsconfig_command
Status in glibc package in Ubuntu:
Fix Released
Status in libvirt package in Ubuntu:
New
Status in linux package in Ubuntu:
Confirmed
Bug description:
Right now in kinetic-proposed builds are failing due to both sets of
headers defining fsconfig_command.
(kinetic-amd64)root at Keschdeichel:/build/libvirt-LTnG76/libvirt-8.6.0/debian/build# apt-cache policy libc6-dev linux-libc-dev
libc6-dev:
Installed: 2.36-0ubuntu1
Candidate: 2.36-0ubuntu1
Version table:
*** 2.36-0ubuntu1 500
500 http://archive.ubuntu.com/ubuntu kinetic-proposed/main amd64 Packages
100 /var/lib/dpkg/status
2.35-0ubuntu3 500
500 http://archive.ubuntu.com/ubuntu kinetic/main amd64 Packages
linux-libc-dev:
Installed: 5.19.0-15.15
Candidate: 5.19.0-15.15
Version table:
*** 5.19.0-15.15 500
500 http://archive.ubuntu.com/ubuntu kinetic-proposed/main amd64 Packages
100 /var/lib/dpkg/status
5.15.0-27.28 500
500 http://archive.ubuntu.com/ubuntu kinetic/main amd64 Packages
Actually also with "just the kernel" from proposed this happens as in the past only:
linux-libc-dev:amd64: /usr/include/linux/mount.h
included that struct.
File ownership
$ dpkg -S /usr/include/x86_64-linux-gnu/sys/mount.h /usr/include/linux/mount.h
libc6-dev:amd64: /usr/include/x86_64-linux-gnu/sys/mount.h
linux-libc-dev:amd64: /usr/include/linux/mount.h
Example error from building libvirt:
In file included from /usr/include/linux/fs.h:19,
from ../../src/util/virfile.c:74:
/usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command'
95 | enum fsconfig_command {
| ^~~~~~~~~~~~~~~~
In file included from ../../src/util/virfile.c:46:
/usr/include/x86_64-linux-gnu/sys/mount.h:189:6: note: originally defined here
189 | enum fsconfig_command
| ^~~~~~~~~~~~~~~~
Repro-test:
$ cat test.c
# include <sys/mount.h>
# include <linux/fs.h>
#include <stdio.h>
int main() {
printf("Hello %d", FSCONFIG_SET_FLAG);
return 0;
}
gcc test.c -o /dev/null
In file included from /usr/include/linux/fs.h:19,
from test.c:2:
/usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command'
95 | enum fsconfig_command {
| ^~~~~~~~~~~~~~~~
In file included from test.c:1:
/usr/include/x86_64-linux-gnu/sys/mount.h:189:6: note: originally defined here
189 | enum fsconfig_command
| ^~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:96:9: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG'
96 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
| ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:191:3: note: previous definition of 'FSCONFIG_SET_FLAG' with type 'enum fsconfig_command'
191 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
| ^~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:97:9: error: redeclaration of enumerator 'FSCONFIG_SET_STRING'
97 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:193:3: note: previous definition of 'FSCONFIG_SET_STRING' with type 'enum fsconfig_command'
193 | FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:98:9: error: redeclaration of enumerator 'FSCONFIG_SET_BINARY'
98 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:195:3: note: previous definition of 'FSCONFIG_SET_BINARY' with type 'enum fsconfig_command'
195 | FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:99:9: error: redeclaration of enumerator 'FSCONFIG_SET_PATH'
99 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
| ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:197:3: note: previous definition of 'FSCONFIG_SET_PATH' with type 'enum fsconfig_command'
197 | FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
| ^~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:100:9: error: redeclaration of enumerator 'FSCONFIG_SET_PATH_EMPTY'
100 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:199:3: note: previous definition of 'FSCONFIG_SET_PATH_EMPTY' with type 'enum fsconfig_command'
199 | FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:101:9: error: redeclaration of enumerator 'FSCONFIG_SET_FD'
101 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
| ^~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:201:3: note: previous definition of 'FSCONFIG_SET_FD' with type 'enum fsconfig_command'
201 | FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
| ^~~~~~~~~~~~~~~
/usr/include/linux/mount.h:102:9: error: redeclaration of enumerator 'FSCONFIG_CMD_CREATE'
102 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:203:3: note: previous definition of 'FSCONFIG_CMD_CREATE' with type 'enum fsconfig_command'
203 | FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
| ^~~~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:103:9: error: redeclaration of enumerator 'FSCONFIG_CMD_RECONFIGURE'
103 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:205:3: note: previous definition of 'FSCONFIG_CMD_RECONFIGURE' with type 'enum fsconfig_command'
205 | FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/linux/mount.h:129:8: error: redefinition of 'struct mount_attr'
129 | struct mount_attr {
| ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/mount.h:161:8: note: originally defined here
161 | struct mount_attr
| ^~~~~~~~~~
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1985956/+subscriptions
More information about the foundations-bugs
mailing list