2020-03-17 17:40:17

by Alan Maguire

[permalink] [raw]
Subject: [PATCH] arch/um: falloc.h needs to be directly included for older libc

When building UML with glibc 2.17 installed, compilation
of arch/um/os-Linux/file.c fails due to failure to find
FALLOC_FL_PUNCH_HOLE and FALLOC_FL_KEEP_SIZE definitions.

It appears that /usr/include/bits/fcntl-linux.h (indirectly
included by /usr/include/fcntl.h) does not include falloc.h
with an older glibc, whereas a more up-to-date version
does.

Adding the direct include to file.c resolves the issue
and does not cause problems for more recent glibc.

Fixes: 50109b5a03b4 ("um: Add support for DISCARD in the UBD Driver")
Cc: Brendan Higgins <[email protected]>
Signed-off-by: Alan Maguire <[email protected]>
---
arch/um/os-Linux/file.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index fbda105..5c819f8 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -8,6 +8,7 @@
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
+#include <linux/falloc.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <sys/socket.h>
--
1.8.3.1


2020-03-17 19:00:51

by Brendan Higgins

[permalink] [raw]
Subject: Re: [PATCH] arch/um: falloc.h needs to be directly included for older libc

On Tue, Mar 17, 2020 at 10:38 AM Alan Maguire <[email protected]> wrote:
>
> When building UML with glibc 2.17 installed, compilation
> of arch/um/os-Linux/file.c fails due to failure to find
> FALLOC_FL_PUNCH_HOLE and FALLOC_FL_KEEP_SIZE definitions.
>
> It appears that /usr/include/bits/fcntl-linux.h (indirectly
> included by /usr/include/fcntl.h) does not include falloc.h
> with an older glibc, whereas a more up-to-date version
> does.
>
> Adding the direct include to file.c resolves the issue
> and does not cause problems for more recent glibc.
>
> Fixes: 50109b5a03b4 ("um: Add support for DISCARD in the UBD Driver")
> Cc: Brendan Higgins <[email protected]>
> Signed-off-by: Alan Maguire <[email protected]>

Reviewed-by: Brendan Higgins <[email protected]>

2020-03-20 15:58:05

by Anton Ivanov

[permalink] [raw]
Subject: Re: [PATCH] arch/um: falloc.h needs to be directly included for older libc



On 17/03/2020 17:35, Alan Maguire wrote:
> When building UML with glibc 2.17 installed, compilation
> of arch/um/os-Linux/file.c fails due to failure to find
> FALLOC_FL_PUNCH_HOLE and FALLOC_FL_KEEP_SIZE definitions.
>
> It appears that /usr/include/bits/fcntl-linux.h (indirectly
> included by /usr/include/fcntl.h) does not include falloc.h
> with an older glibc, whereas a more up-to-date version
> does.
>
> Adding the direct include to file.c resolves the issue
> and does not cause problems for more recent glibc.
>
> Fixes: 50109b5a03b4 ("um: Add support for DISCARD in the UBD Driver")
> Cc: Brendan Higgins <[email protected]>
> Signed-off-by: Alan Maguire <[email protected]>
> ---
> arch/um/os-Linux/file.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
> index fbda105..5c819f8 100644
> --- a/arch/um/os-Linux/file.c
> +++ b/arch/um/os-Linux/file.c
> @@ -8,6 +8,7 @@
> #include <errno.h>
> #include <fcntl.h>
> #include <signal.h>
> +#include <linux/falloc.h>
> #include <sys/ioctl.h>
> #include <sys/mount.h>
> #include <sys/socket.h>
>

Acked-By: Anton Ivanov <[email protected]>

--
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/

2020-03-29 22:48:19

by Richard Weinberger

[permalink] [raw]
Subject: Re: [PATCH] arch/um: falloc.h needs to be directly included for older libc

On Fri, Mar 20, 2020 at 4:58 PM Anton Ivanov
<[email protected]> wrote:
>
>
>
> On 17/03/2020 17:35, Alan Maguire wrote:
> > When building UML with glibc 2.17 installed, compilation
> > of arch/um/os-Linux/file.c fails due to failure to find
> > FALLOC_FL_PUNCH_HOLE and FALLOC_FL_KEEP_SIZE definitions.
> >
> > It appears that /usr/include/bits/fcntl-linux.h (indirectly
> > included by /usr/include/fcntl.h) does not include falloc.h
> > with an older glibc, whereas a more up-to-date version
> > does.
> >
> > Adding the direct include to file.c resolves the issue
> > and does not cause problems for more recent glibc.
> >
> > Fixes: 50109b5a03b4 ("um: Add support for DISCARD in the UBD Driver")
> > Cc: Brendan Higgins <[email protected]>
> > Signed-off-by: Alan Maguire <[email protected]>
> > ---
> > arch/um/os-Linux/file.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
> > index fbda105..5c819f8 100644
> > --- a/arch/um/os-Linux/file.c
> > +++ b/arch/um/os-Linux/file.c
> > @@ -8,6 +8,7 @@
> > #include <errno.h>
> > #include <fcntl.h>
> > #include <signal.h>
> > +#include <linux/falloc.h>
> > #include <sys/ioctl.h>
> > #include <sys/mount.h>
> > #include <sys/socket.h>
> >
>
> Acked-By: Anton Ivanov <[email protected]>

Applied, thanks!

BTW: Anton & Brendan, thanks a lot for reviewing all these patches!

--
Thanks,
//richard