diff mbox

[1/1] fio: fix missing fallocate64()

Message ID 1399668168-4521-1-git-send-email-frank@frajasalo.de
State Superseded
Headers show

Commit Message

Frank Bergmann May 9, 2014, 8:42 p.m. UTC
Current nios2 toolchain is missing the falloacte64() function call. The
configure script does not detect this correctly and the C library is
swapping fallocate with fallocate64 while compiling with the LARGEFILE*
flags.

The patch disables fallocate in the configure script.

Fixes http://autobuild.buildroot.net/results/9cd30031a40f768f6090cfba44c880fb2406672b

Signed-off-by: Frank Bergmann <frank@frajasalo.de>
---
 .../fio-0001-nios2-configure-disable-fallocate.patch   | 18 ++++++++++++++++++
 package/fio/fio.mk                                     |  4 ++++
 2 files changed, 22 insertions(+)
 create mode 100644 board/common-nios2/fio/fio-0001-nios2-configure-disable-fallocate.patch

Comments

Thomas Petazzoni May 12, 2014, 7:44 p.m. UTC | #1
Dear Frank Bergmann,

On Fri,  9 May 2014 22:42:48 +0200, Frank Bergmann wrote:

> +ifeq ($(BR2_nios2),y)
> +BR2_GLOBAL_PATCH_DIR += "board/common-nios2"
> +endif

Unfortunately, we don't want to have architecture-specific patches, and
not applied with this mechanism.

I believe the easiest solution is just to make the fio package not
available on NIOS II.

Thanks,

Thomas
Frank Bergmann May 19, 2014, 7:34 p.m. UTC | #2
Dear Thomas Petazzoni,

On 12.05.2014 21:44, Thomas Petazzoni wrote:
> Dear Frank Bergmann,
>
> On Fri,  9 May 2014 22:42:48 +0200, Frank Bergmann wrote:
>
>> +ifeq ($(BR2_nios2),y)
>> +BR2_GLOBAL_PATCH_DIR += "board/common-nios2"
>> +endif
>
> Unfortunately, we don't want to have architecture-specific patches, and
> not applied with this mechanism.

Sorry I didn't take notice of that.
Maybe someone could edit chapter 3.4.4 "Customizing packages"
(http://buildroot.org/downloads/manual/manual.html#packages-custom)
where such architecture-specific patches are mentioned to avoid
misinterpreting it like I did.

With regards,
Frank Bergmann.
Thomas Petazzoni May 19, 2014, 8:15 p.m. UTC | #3
Dear Frank Bergmann,

On Mon, 19 May 2014 21:34:44 +0200, Frank Bergmann wrote:

> On 12.05.2014 21:44, Thomas Petazzoni wrote:
> > Dear Frank Bergmann,
> >
> > On Fri,  9 May 2014 22:42:48 +0200, Frank Bergmann wrote:
> >
> >> +ifeq ($(BR2_nios2),y)
> >> +BR2_GLOBAL_PATCH_DIR += "board/common-nios2"
> >> +endif
> >
> > Unfortunately, we don't want to have architecture-specific patches, and
> > not applied with this mechanism.
> 
> Sorry I didn't take notice of that.
> Maybe someone could edit chapter 3.4.4 "Customizing packages"
> (http://buildroot.org/downloads/manual/manual.html#packages-custom)
> where such architecture-specific patches are mentioned to avoid
> misinterpreting it like I did.

I don't think chapter 3.4.4 is wrong, but the BR2_GLOBAL_PATCH_DIR is
not meant to be used by Buildroot upstream itself. It's a way for
Buildroot *users* to apply their own custom patches on top of the
various packages that Buildroot has.

Thomas
Frank Bergmann May 19, 2014, 8:44 p.m. UTC | #4
On 19.05.2014 22:15, Thomas Petazzoni wrote:
> Dear Frank Bergmann,
>
> On Mon, 19 May 2014 21:34:44 +0200, Frank Bergmann wrote:
>
>> On 12.05.2014 21:44, Thomas Petazzoni wrote:
>>> Dear Frank Bergmann,
>>>
>>> On Fri,  9 May 2014 22:42:48 +0200, Frank Bergmann wrote:
>>>
>>>> +ifeq ($(BR2_nios2),y)
>>>> +BR2_GLOBAL_PATCH_DIR += "board/common-nios2"
>>>> +endif
>>>
>>> Unfortunately, we don't want to have architecture-specific patches, and
>>> not applied with this mechanism.
>>
>> Sorry I didn't take notice of that.
>> Maybe someone could edit chapter 3.4.4 "Customizing packages"
>> (http://buildroot.org/downloads/manual/manual.html#packages-custom)
>> where such architecture-specific patches are mentioned to avoid
>> misinterpreting it like I did.
>
> I don't think chapter 3.4.4 is wrong, but the BR2_GLOBAL_PATCH_DIR is
> not meant to be used by Buildroot upstream itself. It's a way for
> Buildroot *users* to apply their own custom patches on top of the
> various packages that Buildroot has.

Ah, I understand now. Thanks for the explanation !

Regards,
Frank Bergmann.
diff mbox

Patch

diff --git a/board/common-nios2/fio/fio-0001-nios2-configure-disable-fallocate.patch b/board/common-nios2/fio/fio-0001-nios2-configure-disable-fallocate.patch
new file mode 100644
index 0000000..97b8b63
--- /dev/null
+++ b/board/common-nios2/fio/fio-0001-nios2-configure-disable-fallocate.patch
@@ -0,0 +1,18 @@ 
+configure: Disable fallocate
+
+Signed-off-by: Frank Bergmann <frank@frajasalo.de>
+
+--- fio-fio-2.1.4.orig/configure	2013-11-16 19:15:12.000000000 +0100
++++ fio-fio-2.1.4/configure	2014-05-09 20:06:35.000000000 +0200
+@@ -578,7 +578,10 @@ int main(int argc, char **argv)
+ }
+ EOF
+ if compile_prog "" "" "linux_fallocate"; then
+-    linux_fallocate="yes"
++    # For nios2 disable fallocate because with LARGE_FILE flags it
++    # becomes fallocate64 which isn't available
++    #linux_fallocate="yes"
++    linux_fallocate="no"
+ fi
+ echo "Linux fallocate               $linux_fallocate"
+ 
diff --git a/package/fio/fio.mk b/package/fio/fio.mk
index f9a690e..311779b 100644
--- a/package/fio/fio.mk
+++ b/package/fio/fio.mk
@@ -9,6 +9,10 @@  FIO_SITE = git://git.kernel.dk/fio.git
 FIO_LICENSE = GPLv2 + special obligations
 FIO_LICENSE_FILES = LICENSE
 
+ifeq ($(BR2_nios2),y)
+BR2_GLOBAL_PATCH_DIR += "board/common-nios2"
+endif
+
 define FIO_CONFIGURE_CMDS
 	(cd $(@D); ./configure --cc="$(TARGET_CC)" --extra-cflags="$(TARGET_CFLAGS)")
 endef