Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] fio: new package
@ 2013-10-30 15:22 Ezequiel Garcia
  2013-12-25 16:34 ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2013-10-30 15:22 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
---
 package/Config.in     |  1 +
 package/fio/Config.in |  6 ++++++
 package/fio/fio.mk    | 25 +++++++++++++++++++++++++
 3 files changed, 32 insertions(+)
 create mode 100644 package/fio/Config.in
 create mode 100644 package/fio/fio.mk

diff --git a/package/Config.in b/package/Config.in
index 4c4da51..7cb46aa 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -47,6 +47,7 @@ source "package/dmalloc/Config.in"
 source "package/dropwatch/Config.in"
 source "package/dstat/Config.in"
 source "package/duma/Config.in"
+source "package/fio/Config.in"
 source "package/gdb/Config.in"
 source "package/iozone/Config.in"
 source "package/kexec/Config.in"
diff --git a/package/fio/Config.in b/package/fio/Config.in
new file mode 100644
index 0000000..263e7f5
--- /dev/null
+++ b/package/fio/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_FIO
+	bool "fio"
+	depends on BR2_USE_MMU # fork()
+	help
+	  fio is an I/O tool meant to be used both for benchmark
+	  and stress/hardware verification.
diff --git a/package/fio/fio.mk b/package/fio/fio.mk
new file mode 100644
index 0000000..60cd14f
--- /dev/null
+++ b/package/fio/fio.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# fio
+#
+################################################################################
+
+FIO_VERSION = 2.1.3
+FIO_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/f/fio
+FIO_SOURCE = fio_$(FIO_VERSION).orig.tar.gz
+FIO_LICENSE = GPLv2
+FIO_LICENSE_FILES = LICENSE
+
+define FIO_CONFIGURE_CMDS
+	(cd $(@D); ./configure --cc="$(TARGET_CC)" --extra-cflags="$(TARGET_CFLAGS)")
+endef
+
+define FIO_BUILD_CMDS
+	$(MAKE) -C $(@D)
+endef
+
+define FIO_INSTALL_TARGET_CMDS
+	$(INSTALL) -D $(@D)/fio $(TARGET_DIR)/usr/bin/fio
+endef
+
+$(eval $(generic-package))
-- 
1.8.1.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-10-30 15:22 [Buildroot] [PATCH] fio: new package Ezequiel Garcia
@ 2013-12-25 16:34 ` Thomas Petazzoni
  2013-12-25 20:17   ` Ezequiel Garcia
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2013-12-25 16:34 UTC (permalink / raw)
  To: buildroot

Dear Ezequiel Garcia,

On Wed, 30 Oct 2013 12:22:25 -0300, Ezequiel Garcia wrote:
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> ---
>  package/Config.in     |  1 +
>  package/fio/Config.in |  6 ++++++
>  package/fio/fio.mk    | 25 +++++++++++++++++++++++++
>  3 files changed, 32 insertions(+)
>  create mode 100644 package/fio/Config.in
>  create mode 100644 package/fio/fio.mk

Thanks, I've applied this, after making several changes.

> 
> diff --git a/package/Config.in b/package/Config.in
> index 4c4da51..7cb46aa 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -47,6 +47,7 @@ source "package/dmalloc/Config.in"
>  source "package/dropwatch/Config.in"
>  source "package/dstat/Config.in"
>  source "package/duma/Config.in"
> +source "package/fio/Config.in"
>  source "package/gdb/Config.in"
>  source "package/iozone/Config.in"
>  source "package/kexec/Config.in"
> diff --git a/package/fio/Config.in b/package/fio/Config.in
> new file mode 100644
> index 0000000..263e7f5
> --- /dev/null
> +++ b/package/fio/Config.in
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_FIO
> +	bool "fio"
> +	depends on BR2_USE_MMU # fork()

The package required largefile and thread support.

> +	help
> +	  fio is an I/O tool meant to be used both for benchmark
> +	  and stress/hardware verification.

I've added an upstream URL here.

> diff --git a/package/fio/fio.mk b/package/fio/fio.mk
> new file mode 100644
> index 0000000..60cd14f
> --- /dev/null
> +++ b/package/fio/fio.mk
> @@ -0,0 +1,25 @@
> +################################################################################
> +#
> +# fio
> +#
> +################################################################################
> +
> +FIO_VERSION = 2.1.3
> +FIO_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/f/fio
> +FIO_SOURCE = fio_$(FIO_VERSION).orig.tar.gz

I've switched to use the official Git repository at git.kernel.dk, and
used the new 2.1.4 version.

> +FIO_LICENSE = GPLv2

I've changed that to "GPLv2 + special obligations", because the LICENSE
file makes additional requirements to the GPLv2.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-25 16:34 ` Thomas Petazzoni
@ 2013-12-25 20:17   ` Ezequiel Garcia
  2013-12-25 20:28     ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2013-12-25 20:17 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Wed, Dec 25, 2013 at 05:34:55PM +0100, Thomas Petazzoni wrote:
> On Wed, 30 Oct 2013 12:22:25 -0300, Ezequiel Garcia wrote:
> > Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> > ---
> >  package/Config.in     |  1 +
> >  package/fio/Config.in |  6 ++++++
> >  package/fio/fio.mk    | 25 +++++++++++++++++++++++++
> >  3 files changed, 32 insertions(+)
> >  create mode 100644 package/fio/Config.in
> >  create mode 100644 package/fio/fio.mk
> 
> Thanks, I've applied this, after making several changes.
> 

All the changes look good to me, thanks for doing this and
sorry for being lazy and not take better care to push this
submission.
-- 
Ezequiel Garc?a, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-25 20:17   ` Ezequiel Garcia
@ 2013-12-25 20:28     ` Thomas Petazzoni
  2013-12-25 20:32       ` Ezequiel Garcia
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2013-12-25 20:28 UTC (permalink / raw)
  To: buildroot

Dear Ezequiel Garcia,

On Wed, 25 Dec 2013 17:17:32 -0300, Ezequiel Garcia wrote:

> > Thanks, I've applied this, after making several changes.
> > 
> 
> All the changes look good to me, thanks for doing this and
> sorry for being lazy and not take better care to push this
> submission.

We still have the problem that fio uses posix_madvise(), which isn't
supported in uClibc 0.9.33. It is supported in uClibc git, and we have
backported the patch in package/uclibc/, so Buildroot internal
toolchains are working fine.

But older uClibc toolchains do not work, and are causing build failures
such as
http://autobuild.buildroot.org/results/f7a/f7ae7ac2b5da9afc6314f1e813300597896e5ca6/build-end.log.

I believe the best solution for now is to mark this package as not
available for uClibc toolchains.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-25 20:28     ` Thomas Petazzoni
@ 2013-12-25 20:32       ` Ezequiel Garcia
  2013-12-26  9:40         ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2013-12-25 20:32 UTC (permalink / raw)
  To: buildroot

On Wed, Dec 25, 2013 at 09:28:29PM +0100, Thomas Petazzoni wrote:
> Dear Ezequiel Garcia,
> 
> On Wed, 25 Dec 2013 17:17:32 -0300, Ezequiel Garcia wrote:
> 
> > > Thanks, I've applied this, after making several changes.
> > > 
> > 
> > All the changes look good to me, thanks for doing this and
> > sorry for being lazy and not take better care to push this
> > submission.
> 
> We still have the problem that fio uses posix_madvise(), which isn't
> supported in uClibc 0.9.33. It is supported in uClibc git, and we have
> backported the patch in package/uclibc/, so Buildroot internal
> toolchains are working fine.
> 
> But older uClibc toolchains do not work, and are causing build failures
> such as
> http://autobuild.buildroot.org/results/f7a/f7ae7ac2b5da9afc6314f1e813300597896e5ca6/build-end.log.
> 
> I believe the best solution for now is to mark this package as not
> available for uClibc toolchains.
> 

Right. And in parallel, we can also take care of upstreaming a patch which uses
HAVE_POSIX_MADVISE to handle such case.

-- 
Ezequiel Garc?a, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-25 20:32       ` Ezequiel Garcia
@ 2013-12-26  9:40         ` Thomas Petazzoni
  2013-12-26 11:30           ` Ezequiel Garcia
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2013-12-26  9:40 UTC (permalink / raw)
  To: buildroot

Dear Ezequiel Garcia,

On Wed, 25 Dec 2013 17:32:53 -0300, Ezequiel Garcia wrote:

> > But older uClibc toolchains do not work, and are causing build
> > failures such as
> > http://autobuild.buildroot.org/results/f7a/f7ae7ac2b5da9afc6314f1e813300597896e5ca6/build-end.log.
> > 
> > I believe the best solution for now is to mark this package as not
> > available for uClibc toolchains.
> > 
> 
> Right. And in parallel, we can also take care of upstreaming a patch
> which uses HAVE_POSIX_MADVISE to handle such case.

The problem is what should we use in replacement of posix_madvise()
when it is not available.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-26  9:40         ` Thomas Petazzoni
@ 2013-12-26 11:30           ` Ezequiel Garcia
  2013-12-26 13:38             ` Thomas Petazzoni
  0 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2013-12-26 11:30 UTC (permalink / raw)
  To: buildroot

On Thu, Dec 26, 2013 at 10:40:37AM +0100, Thomas Petazzoni wrote:
> Dear Ezequiel Garcia,
> 
> On Wed, 25 Dec 2013 17:32:53 -0300, Ezequiel Garcia wrote:
> 
> > > But older uClibc toolchains do not work, and are causing build
> > > failures such as
> > > http://autobuild.buildroot.org/results/f7a/f7ae7ac2b5da9afc6314f1e813300597896e5ca6/build-end.log.
> > > 
> > > I believe the best solution for now is to mark this package as not
> > > available for uClibc toolchains.
> > > 
> > 
> > Right. And in parallel, we can also take care of upstreaming a patch
> > which uses HAVE_POSIX_MADVISE to handle such case.
> 
> The problem is what should we use in replacement of posix_madvise()
> when it is not available.
> 

madvise()?

If you do:

  #define posix_madvise madvise

then I've managed to fix the build issues on uClibc v0.9.32.

Problem is, I'm not sure there's a clean way to detect posix_madvise /
madvise presence; it must be done by hand in the configure script.

Anyway, it all sounds like too much work to fix such a small use case.
-- 
Ezequiel Garc?a, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] fio: new package
  2013-12-26 11:30           ` Ezequiel Garcia
@ 2013-12-26 13:38             ` Thomas Petazzoni
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2013-12-26 13:38 UTC (permalink / raw)
  To: buildroot

Dear Ezequiel Garcia,

On Thu, 26 Dec 2013 08:30:07 -0300, Ezequiel Garcia wrote:

> > > Right. And in parallel, we can also take care of upstreaming a patch
> > > which uses HAVE_POSIX_MADVISE to handle such case.
> > 
> > The problem is what should we use in replacement of posix_madvise()
> > when it is not available.
> > 
> 
> madvise()?
> 
> If you do:
> 
>   #define posix_madvise madvise

Are they strictly equivalent? Also, the code uses some POSIX_MADV_*
constants, while madvise() provides MADV_* constants.

> Problem is, I'm not sure there's a clean way to detect posix_madvise /
> madvise presence; it must be done by hand in the configure script.

AC_CHECK_FUNCS([posix_madvise]) should do the trick.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-12-26 13:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-30 15:22 [Buildroot] [PATCH] fio: new package Ezequiel Garcia
2013-12-25 16:34 ` Thomas Petazzoni
2013-12-25 20:17   ` Ezequiel Garcia
2013-12-25 20:28     ` Thomas Petazzoni
2013-12-25 20:32       ` Ezequiel Garcia
2013-12-26  9:40         ` Thomas Petazzoni
2013-12-26 11:30           ` Ezequiel Garcia
2013-12-26 13:38             ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox