[Buildroot] [PATCH 1/1] e2fsprogs: fix missing fallocate64() on nios2

Frank Bergmann frank at frajasalo.de
Thu Feb 20 20:52:34 UTC 2014


Hello,

On 19.02.2014 00:13, Frank Bergmann wrote:
> On 18.02.2014 22:19, Thomas Petazzoni wrote:
>>> diff --git a/package/e2fsprogs/Config.in b/package/e2fsprogs/Config.in
>>> index 7775e94..1e87aef 100644
>>> --- a/package/e2fsprogs/Config.in
>>> +++ b/package/e2fsprogs/Config.in
>>> @@ -49,7 +49,7 @@ config BR2_PACKAGE_E2FSPROGS_E2UNDO
>>>
>>>    config BR2_PACKAGE_E2FSPROGS_E4DEFRAG
>>>           bool "e4defrag"
>>> -       depends on !BR2_avr32 # fallocate not implemented
>>> +       depends on !BR2_avr32 && !BR2_nios2 # fallocate not implemented
>>>
>>>    config BR2_PACKAGE_E2FSPROGS_FILEFRAG
>>>           bool "filefrag"
>>> diff --git a/package/e2fsprogs/e2fsprogs.mk b/package/e2fsprogs/e2fsprogs.mk
>>> index 2eb59f5..310f549 100644
>>> --- a/package/e2fsprogs/e2fsprogs.mk
>>> +++ b/package/e2fsprogs/e2fsprogs.mk
>>> @@ -23,7 +23,8 @@ E2FSPROGS_CONF_OPT = \
>>>           --disable-libuuid \
>>>           --enable-fsck \
>>>           --disable-e2initrd-helper \
>>> -       --disable-testio-debug
>>> +       --disable-testio-debug \
>>> +       $(if $(BR2_nios2),ac_cv_func_fallocate=no,)
>>
>> Such variables are normally passed in <pkg>_CONF_ENV. Also, in
>> Config.in, the fallocate problem seems to also apply for AVR32, while
>> you only pass ac_cv_func_fallocate=no for NIOS II here. Could you
>> explain why?
>
> As written in the patch description fallocate is replaced by fallocate64 if using
> _FILE_OFFSET_BITS=64 . fallocate64 is not available in nios2 toolchain library. So
> if in that case we want to avoid fallocate64 then we have to avoid fallocate.
>
> Not sure for the moment why it's working for AVR32 but fallocate is referenced in
> lib/ext2fs/unix_io.c which builds libext2fs.so and therefore it's independent of
> e4defrag. Only avoiding e4defrag does not work for nios2.

On AVR32 there is neither fallocate nor fallocate64 available. e4defrag has to be
disabled on this architecture because it uses the fallocate system call which is
also not available.

Frank.


More information about the buildroot mailing list