[Bug 1739300] [NEW] The header files fcntl.h and linux/fcntl.h are incompatible
Launchpad Bug Tracker
1739300 at bugs.launchpad.net
Wed Dec 20 09:47:46 UTC 2017
You have been subscribed to a public bug:
The program try.c, below, does not compile.
Though with HAVE_ARCH_STRUCT_FLOCK and HAVE_ARCH_STRUCT_FLOCK64 defined, it compiles.
But then fails again to compile, when _GNU_SOURCE is also defined.
I expect this to compile in all three cases.
$ cat try.c
//#define _GNU_SOURCE
//#define HAVE_ARCH_STRUCT_FLOCK
//#define HAVE_ARCH_STRUCT_FLOCK64
#include <fcntl.h>
#include <linux/fcntl.h>
int main(int argc, char *argv[]){}
$ gcc try.c
In file included from /usr/include/x86_64-linux-gnu/asm/fcntl.h:1:0,
from /usr/include/linux/fcntl.h:4,
from try.c:5:
/usr/include/asm-generic/fcntl.h:195:8: error: redefinition of ‘struct flock’
struct flock {
^~~~~
In file included from /usr/include/fcntl.h:35:0,
from try.c:4:
/usr/include/x86_64-linux-gnu/bits/fcntl.h:35:8: note: originally defined here
struct flock
^~~~~
$ gcc -DHAVE_ARCH_STRUCT_FLOCK -DHAVE_ARCH_STRUCT_FLOCK64 try.c ## this is ok
$ gcc -D_GNU_SOURCE -DHAVE_ARCH_STRUCT_FLOCK -DHAVE_ARCH_STRUCT_FLOCK64 try.c
In file included from /usr/include/x86_64-linux-gnu/asm/fcntl.h:1:0,
from /usr/include/linux/fcntl.h:4,
from try.c:5:
/usr/include/asm-generic/fcntl.h:155:8: error: redefinition of ‘struct f_owner_ex’
struct f_owner_ex {
^~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/bits/fcntl.h:61:0,
from /usr/include/fcntl.h:35,
from try.c:4:
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:267:8: note: originally defined here
struct f_owner_ex
^~~~~~~~~~
$ gcc --version | head -1
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
$ lsb_release -rd
Description: Ubuntu 17.10
Release: 17.10
$ dpkg -S /usr/include/x86_64-linux-gnu/bits/fcntl.h
libc6-dev:amd64: /usr/include/x86_64-linux-gnu/bits/fcntl.h
# Package: libc6-dev
# Version: 2.26-0ubuntu2
$ dpkg -S /usr/include/x86_64-linux-gnu/asm/fcntl.h
linux-libc-dev:amd64: /usr/include/x86_64-linux-gnu/asm/fcntl.h
# Package: linux-libc-dev
# Version: 4.13.0-19.22
Regards, Mike
** Affects: build-essential (Ubuntu)
Importance: Undecided
Status: New
** Tags: bot-comment
--
The header files fcntl.h and linux/fcntl.h are incompatible
https://bugs.launchpad.net/bugs/1739300
You received this bug notification because you are a member of Ubuntu Foundations Bugs, which is subscribed to build-essential in Ubuntu.
More information about the foundations-bugs
mailing list