[PATCH] block/export/fuse.c: fix musl build

Fabrice Fontaine posted 1 patch 2 years, 5 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211022095209.1319671-1-fontaine.fabrice@gmail.com
Maintainers: Hanna Reitz <hreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>
There is a newer version of this series
block/export/fuse.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] block/export/fuse.c: fix musl build
Posted by Fabrice Fontaine 2 years, 5 months ago
Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
and avoid the following build failure on musl:

../block/export/fuse.c: In function 'fuse_fallocate':
../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
  643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
      |                     ^~~~~~~~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 block/export/fuse.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/block/export/fuse.c b/block/export/fuse.c
index 2e3bf8270b..823c126d23 100644
--- a/block/export/fuse.c
+++ b/block/export/fuse.c
@@ -31,6 +31,10 @@
 #include <fuse.h>
 #include <fuse_lowlevel.h>
 
+#if defined(CONFIG_FALLOCATE_ZERO_RANGE)
+#include <linux/falloc.h>
+#endif
+
 #ifdef __linux__
 #include <linux/fs.h>
 #endif
-- 
2.33.0


Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Michael Tokarev 2 years, 5 months ago
22.10.2021 12:52, Fabrice Fontaine пишет:
> Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> and avoid the following build failure on musl:
> 
> ../block/export/fuse.c: In function 'fuse_fallocate':
> ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
>    643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
>        |                     ^~~~~~~~~~~~~~~~~~~~
> 
> Fixes:
>   - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>   block/export/fuse.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/block/export/fuse.c b/block/export/fuse.c
> index 2e3bf8270b..823c126d23 100644
> --- a/block/export/fuse.c
> +++ b/block/export/fuse.c
> @@ -31,6 +31,10 @@
>   #include <fuse.h>
>   #include <fuse_lowlevel.h>
>   
> +#if defined(CONFIG_FALLOCATE_ZERO_RANGE)

shouldn't it be "if !defined" ?

/mjt

> +#include <linux/falloc.h>
> +#endif
> +
>   #ifdef __linux__
>   #include <linux/fs.h>
>   #endif
> 


Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Fabrice Fontaine 2 years, 5 months ago
Le lun. 25 oct. 2021 à 08:31, Michael Tokarev <mjt@tls.msk.ru> a écrit :
>
> 22.10.2021 12:52, Fabrice Fontaine пишет:
> > Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> > https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> > and avoid the following build failure on musl:
> >
> > ../block/export/fuse.c: In function 'fuse_fallocate':
> > ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
> >    643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
> >        |                     ^~~~~~~~~~~~~~~~~~~~
> >
> > Fixes:
> >   - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > ---
> >   block/export/fuse.c | 4 ++++
> >   1 file changed, 4 insertions(+)
> >
> > diff --git a/block/export/fuse.c b/block/export/fuse.c
> > index 2e3bf8270b..823c126d23 100644
> > --- a/block/export/fuse.c
> > +++ b/block/export/fuse.c
> > @@ -31,6 +31,10 @@
> >   #include <fuse.h>
> >   #include <fuse_lowlevel.h>
> >
> > +#if defined(CONFIG_FALLOCATE_ZERO_RANGE)
>
> shouldn't it be "if !defined" ?
Nope, here is an extract of meson.build:

config_host_data.set('CONFIG_FALLOCATE_ZERO_RANGE',
                     cc.has_header_symbol('linux/falloc.h',
'FALLOC_FL_ZERO_RANGE'))

So, CONFIG_FALLOCATE_ZERO_RANGE is defined if FALLOC_FL_ZERO_RANGE is
found in linux/falloc.h which is fine.
However, because linux/falloc.h is not included in fuse.c, a build
failure will be raised on musl (which does not define
FALLOC_FL_ZERO_RANGE)
>
> /mjt
>
> > +#include <linux/falloc.h>
> > +#endif
> > +
> >   #ifdef __linux__
> >   #include <linux/fs.h>
> >   #endif
> >
>
Best Regards,

Fabrice

Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Kevin Wolf 2 years, 5 months ago
Am 22.10.2021 um 11:52 hat Fabrice Fontaine geschrieben:
> Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> and avoid the following build failure on musl:
> 
> ../block/export/fuse.c: In function 'fuse_fallocate':
> ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
>   643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
>       |                     ^~~~~~~~~~~~~~~~~~~~
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

This patches makes sense to me, but does this mean that commit 50482fda
was completely untested and the build still failed after the patch?

If so, is at least this one tested and builds successfully now?

Kevin


Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Fabrice Fontaine 2 years, 5 months ago
Le lun. 25 oct. 2021 à 11:33, Kevin Wolf <kwolf@redhat.com> a écrit :
>
> Am 22.10.2021 um 11:52 hat Fabrice Fontaine geschrieben:
> > Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> > https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> > and avoid the following build failure on musl:
> >
> > ../block/export/fuse.c: In function 'fuse_fallocate':
> > ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
> >   643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
> >       |                     ^~~~~~~~~~~~~~~~~~~~
> >
> > Fixes:
> >  - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>
> This patches makes sense to me, but does this mean that commit 50482fda
> was completely untested and the build still failed after the patch?
First iteration of this patch was tested (and applied on buildroot
side): https://lists.gnu.org/archive/html/qemu-devel/2021-08/msg01394.html.
Unfortunately, second iteration (which was merged) was not tested:
https://lists.gnu.org/archive/html/qemu-devel/2021-08/msg01440.html.
>
> If so, is at least this one tested and builds successfully now?
Yes, this patch builds fine.
>
> Kevin
>
Fabrice

Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Kevin Wolf 2 years, 5 months ago
Am 22.10.2021 um 11:52 hat Fabrice Fontaine geschrieben:
> Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> and avoid the following build failure on musl:
> 
> ../block/export/fuse.c: In function 'fuse_fallocate':
> ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
>   643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
>       |                     ^~~~~~~~~~~~~~~~~~~~
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Thanks, applied to the block branch.

Kevin


Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Philippe Mathieu-Daudé 2 years, 5 months ago
On 10/22/21 11:52, Fabrice Fontaine wrote:
> Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
> https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
> and avoid the following build failure on musl:
> 
> ../block/export/fuse.c: In function 'fuse_fallocate':
> ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
>   643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
>       |                     ^~~~~~~~~~~~~~~~~~~~
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b

The 2 previous lines aren't really helpful, however this is:

Fixes: 50482fda98b ("block/export/fuse.c: fix musl build")

> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  block/export/fuse.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/block/export/fuse.c b/block/export/fuse.c
> index 2e3bf8270b..823c126d23 100644
> --- a/block/export/fuse.c
> +++ b/block/export/fuse.c
> @@ -31,6 +31,10 @@
>  #include <fuse.h>
>  #include <fuse_lowlevel.h>
>  
> +#if defined(CONFIG_FALLOCATE_ZERO_RANGE)
> +#include <linux/falloc.h>
> +#endif
> +
>  #ifdef __linux__
>  #include <linux/fs.h>
>  #endif
> 

With 'Fixes:' tag:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


Re: [PATCH] block/export/fuse.c: fix musl build
Posted by Philippe Mathieu-Daudé 2 years, 5 months ago
On 10/25/21 13:01, Philippe Mathieu-Daudé wrote:
> On 10/22/21 11:52, Fabrice Fontaine wrote:
>> Include linux/falloc.h if CONFIG_FALLOCATE_ZERO_RANGE is defined to fix
>> https://gitlab.com/qemu-project/qemu/-/commit/50482fda98bd62e072c30b7ea73c985c4e9d9bbb
>> and avoid the following build failure on musl:
>>
>> ../block/export/fuse.c: In function 'fuse_fallocate':
>> ../block/export/fuse.c:643:21: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
>>   643 |     else if (mode & FALLOC_FL_ZERO_RANGE) {
>>       |                     ^~~~~~~~~~~~~~~~~~~~
>>
>> Fixes:
>>  - http://autobuild.buildroot.org/results/be24433a429fda681fb66698160132c1c99bc53b
> 
> The 2 previous lines aren't really helpful, however this is:
> 
> Fixes: 50482fda98b ("block/export/fuse.c: fix musl build")

Also better to change this patch subject to distinct:
"block/export/fuse.c: fix musl build (again)"

>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> ---
>>  block/export/fuse.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/block/export/fuse.c b/block/export/fuse.c
>> index 2e3bf8270b..823c126d23 100644
>> --- a/block/export/fuse.c
>> +++ b/block/export/fuse.c
>> @@ -31,6 +31,10 @@
>>  #include <fuse.h>
>>  #include <fuse_lowlevel.h>
>>  
>> +#if defined(CONFIG_FALLOCATE_ZERO_RANGE)
>> +#include <linux/falloc.h>
>> +#endif
>> +
>>  #ifdef __linux__
>>  #include <linux/fs.h>
>>  #endif
>>
> 
> With 'Fixes:' tag:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>