Re: [OE-core] [PATCH] bonnie++: New recipe for version 2.0

2023-06-28 Thread Alexander Kanavin
I think this is actually for meta-oe?

Alex

On Wed 28. Jun 2023 at 17.16, Alexandre Belloni via lists.openembedded.org
 wrote:

> Hello,
>
> On 26/06/2023 14:00:32+0200, Jörg Sommer via lists.openembedded.org wrote:
> > Newer versions of bonnie get published on
> > . Unfortunately, the new
> version
> > doesn't compile with g++ 11 which requires *fix-csv2html-data.patch* and
> > configure fails due to cross compilation which gets fixed
> > with *fix-configure-lfs.patch*
> >
> > Signed-off-by: Jörg Sommer 
> > ---
> >  .../bonnie/bonnie++/fix-configure-lfs.patch   |  37 
> >  .../bonnie/bonnie++/fix-csv2html-data.patch   | 181 ++
> >  .../bonnie/bonnie++_2.00a.bb  |  33 
> >  3 files changed, 251 insertions(+)
> >  create mode 100644
> meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> >  create mode 100644
> meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> >  create mode 100644 meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb
>
> You certainly need to add a maintainers.inc entry for this new recipes,
> else oe-selftest is going to complain.
>
> >
> > diff --git
> a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> > new file mode 100644
> > index 00..d28e28658c
> > --- /dev/null
> > +++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> > @@ -0,0 +1,37 @@
> > +diff --git i/configure.in w/configure.in
> > +index 080e40c..f2a2bbe 100644
> > +--- i/configure.in
> >  w/configure.in
> > +@@ -82,8 +82,15 @@ void * thread_func(void * param) { return NULL; }
> > +   , thread_ldflags="-lpthread"
> > +   , thread_ldflags="-pthread")
> > +
> > +-AC_SUBST(large_file)
> > +-AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
> > ++AC_ARG_ENABLE(lfs,
> > ++  [  --disable-lfs  disable large file support],
> > ++  LFS_CHOICE=$enableval, LFS_CHOICE=check)
> > ++
> > ++if test "$LFS_CHOICE" = yes; then
> > ++   bonniepp_cv_large_file=yes
> > ++elif test "$LFS_CHOICE" = check; then
> > ++   AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE],
> bonniepp_cv_large_file,
> > ++  AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
> > + #define _LARGEFILE64_SOURCE
> > + #endif
> > + #include 
> > +@@ -118,8 +125,12 @@ int main () {
> > +   }
> > +   close(fd);
> > +   return 0;
> > +-}], large_file="yes")
> > +-if [[ -n "$large_file" ]]; then
> > ++}], bonniepp_cv_large_file="yes"))
> > ++fi
> > ++
> > ++AC_SUBST(large_file)
> > ++
> > ++if [[ -n "$bonniepp_cv_large_file" ]]; then
> > +large_file="#define _LARGEFILE64_SOURCE"
> > + fi
> > +
> > diff --git
> a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> > new file mode 100644
> > index 00..78ac347aa8
> > --- /dev/null
> > +++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> > @@ -0,0 +1,181 @@
> > +commit 7e9433a56f22426b11cbc9bd80e0debca67c893b
> > +Author: Jörg Sommer 
> > +Date:   Mon Jun 26 12:38:30 2023 +0200
> > +
> > +csv2html: Explicitly reference data in top level
> > +
> > +With g++ 11 *data* became ambiguous with [std::data][1]. Therefore
> it's
> > +needed to explicitly address the variable from the top level scope.
> > +
> > +[1] https://en.cppreference.com/w/cpp/iterator/data
> > +
> > +diff --git a/bon_csv2html.cpp b/bon_csv2html.cpp
> > +index e9d9c50..652e330 100644
> > +--- a/bon_csv2html.cpp
> >  b/bon_csv2html.cpp
> > +@@ -87,8 +87,8 @@ int main(int argc, char **argv)
> > + read_in(buf);
> > +   }
> > +
> > +-  props = new PPCCHAR[data.size()];
> > +-  for(i = 0; i < data.size(); i++)
> > ++  props = new PPCCHAR[::data.size()];
> > ++  for(i = 0; i < ::data.size(); i++)
> > +   {
> > + props[i] = new PCCHAR[MAX_ITEMS];
> > + props[i][0] = NULL;
> > +@@ -109,7 +109,7 @@ int main(int argc, char **argv)
> > +   }
> > +   calc_vals();
> > +   int mid_width = header();
> > +-  for(i = 0; i < data.size(); i++)
> > ++  for(i = 0; i < ::data.size(); i++)
> > +   {
> > + // First print the average speed line
> > + printf("");
> > +@@ -171,23 +171,23 @@ int compar(const void *a, const void *b)
> > +
> > + void calc_vals()
> > + {
> > +-  ITEM *arr = new ITEM[data.size()];
> > ++  ITEM *arr = new ITEM[::data.size()];
> > +   for(unsigned int column_ind = 0; column_ind < MAX_ITEMS;
> column_ind++)
> > +   {
> > + switch(vals[column_ind])
> > + {
> > + case eNoCols:
> > + {
> > +-  for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
> > ++  for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
> > +   {
> > + if(column_ind == COL_CONCURRENCY)
> > + {
> > +-  if(data[row_ind][column_ind] && strcmp("1",
> data[row_ind][column_ind]))
> > ++  if(::data[row_ind][column_ind] && strcmp("1",
> 

Re: [OE-core] [PATCH] bonnie++: New recipe for version 2.0

2023-06-28 Thread Alexandre Belloni via lists.openembedded.org
Hello,

On 26/06/2023 14:00:32+0200, Jörg Sommer via lists.openembedded.org wrote:
> Newer versions of bonnie get published on
> . Unfortunately, the new version
> doesn't compile with g++ 11 which requires *fix-csv2html-data.patch* and
> configure fails due to cross compilation which gets fixed
> with *fix-configure-lfs.patch*
> 
> Signed-off-by: Jörg Sommer 
> ---
>  .../bonnie/bonnie++/fix-configure-lfs.patch   |  37 
>  .../bonnie/bonnie++/fix-csv2html-data.patch   | 181 ++
>  .../bonnie/bonnie++_2.00a.bb  |  33 
>  3 files changed, 251 insertions(+)
>  create mode 100644 
> meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
>  create mode 100644 
> meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
>  create mode 100644 meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb

You certainly need to add a maintainers.inc entry for this new recipes,
else oe-selftest is going to complain.

> 
> diff --git 
> a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch 
> b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> new file mode 100644
> index 00..d28e28658c
> --- /dev/null
> +++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
> @@ -0,0 +1,37 @@
> +diff --git i/configure.in w/configure.in
> +index 080e40c..f2a2bbe 100644
> +--- i/configure.in
>  w/configure.in
> +@@ -82,8 +82,15 @@ void * thread_func(void * param) { return NULL; }
> +   , thread_ldflags="-lpthread"
> +   , thread_ldflags="-pthread")
> + 
> +-AC_SUBST(large_file)
> +-AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
> ++AC_ARG_ENABLE(lfs,
> ++  [  --disable-lfs  disable large file support],
> ++  LFS_CHOICE=$enableval, LFS_CHOICE=check)
> ++
> ++if test "$LFS_CHOICE" = yes; then
> ++   bonniepp_cv_large_file=yes
> ++elif test "$LFS_CHOICE" = check; then
> ++   AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], 
> bonniepp_cv_large_file,
> ++  AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
> + #define _LARGEFILE64_SOURCE
> + #endif
> + #include 
> +@@ -118,8 +125,12 @@ int main () {
> +   }
> +   close(fd);
> +   return 0;
> +-}], large_file="yes")
> +-if [[ -n "$large_file" ]]; then
> ++}], bonniepp_cv_large_file="yes"))
> ++fi
> ++
> ++AC_SUBST(large_file)
> ++
> ++if [[ -n "$bonniepp_cv_large_file" ]]; then
> +large_file="#define _LARGEFILE64_SOURCE"
> + fi
> + 
> diff --git 
> a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch 
> b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> new file mode 100644
> index 00..78ac347aa8
> --- /dev/null
> +++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
> @@ -0,0 +1,181 @@
> +commit 7e9433a56f22426b11cbc9bd80e0debca67c893b
> +Author: Jörg Sommer 
> +Date:   Mon Jun 26 12:38:30 2023 +0200
> +
> +csv2html: Explicitly reference data in top level
> +
> +With g++ 11 *data* became ambiguous with [std::data][1]. Therefore it's
> +needed to explicitly address the variable from the top level scope.
> +
> +[1] https://en.cppreference.com/w/cpp/iterator/data
> +
> +diff --git a/bon_csv2html.cpp b/bon_csv2html.cpp
> +index e9d9c50..652e330 100644
> +--- a/bon_csv2html.cpp
>  b/bon_csv2html.cpp
> +@@ -87,8 +87,8 @@ int main(int argc, char **argv)
> + read_in(buf);
> +   }
> + 
> +-  props = new PPCCHAR[data.size()];
> +-  for(i = 0; i < data.size(); i++)
> ++  props = new PPCCHAR[::data.size()];
> ++  for(i = 0; i < ::data.size(); i++)
> +   {
> + props[i] = new PCCHAR[MAX_ITEMS];
> + props[i][0] = NULL;
> +@@ -109,7 +109,7 @@ int main(int argc, char **argv)
> +   }
> +   calc_vals();
> +   int mid_width = header();
> +-  for(i = 0; i < data.size(); i++)
> ++  for(i = 0; i < ::data.size(); i++)
> +   {
> + // First print the average speed line
> + printf("");
> +@@ -171,23 +171,23 @@ int compar(const void *a, const void *b)
> + 
> + void calc_vals()
> + {
> +-  ITEM *arr = new ITEM[data.size()];
> ++  ITEM *arr = new ITEM[::data.size()];
> +   for(unsigned int column_ind = 0; column_ind < MAX_ITEMS; column_ind++)
> +   {
> + switch(vals[column_ind])
> + {
> + case eNoCols:
> + {
> +-  for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
> ++  for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
> +   {
> + if(column_ind == COL_CONCURRENCY)
> + {
> +-  if(data[row_ind][column_ind] && strcmp("1", 
> data[row_ind][column_ind]))
> ++  if(::data[row_ind][column_ind] && strcmp("1", 
> ::data[row_ind][column_ind]))
> + col_used[column_ind] = true;
> + }
> + else
> + {
> +-  if(data[row_ind][column_ind] && strlen(data[row_ind][column_ind]))
> ++  if(::data[row_ind][column_ind] && 
> strlen(::data[row_ind][column_ind]))
> + col_used[column_ind] = true;
> + }
> +   }
> +@@ -195,22 

[OE-core] [PATCH] bonnie++: New recipe for version 2.0

2023-06-26 Thread Jörg Sommer via lists . openembedded . org
Newer versions of bonnie get published on
. Unfortunately, the new version
doesn't compile with g++ 11 which requires *fix-csv2html-data.patch* and
configure fails due to cross compilation which gets fixed
with *fix-configure-lfs.patch*

Signed-off-by: Jörg Sommer 
---
 .../bonnie/bonnie++/fix-configure-lfs.patch   |  37 
 .../bonnie/bonnie++/fix-csv2html-data.patch   | 181 ++
 .../bonnie/bonnie++_2.00a.bb  |  33 
 3 files changed, 251 insertions(+)
 create mode 100644 
meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
 create mode 100644 
meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
 create mode 100644 meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb

diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch 
b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
new file mode 100644
index 00..d28e28658c
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
@@ -0,0 +1,37 @@
+diff --git i/configure.in w/configure.in
+index 080e40c..f2a2bbe 100644
+--- i/configure.in
 w/configure.in
+@@ -82,8 +82,15 @@ void * thread_func(void * param) { return NULL; }
+   , thread_ldflags="-lpthread"
+   , thread_ldflags="-pthread")
+ 
+-AC_SUBST(large_file)
+-AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
++AC_ARG_ENABLE(lfs,
++  [  --disable-lfs  disable large file support],
++  LFS_CHOICE=$enableval, LFS_CHOICE=check)
++
++if test "$LFS_CHOICE" = yes; then
++   bonniepp_cv_large_file=yes
++elif test "$LFS_CHOICE" = check; then
++   AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], 
bonniepp_cv_large_file,
++  AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
+ #endif
+ #include 
+@@ -118,8 +125,12 @@ int main () {
+   }
+   close(fd);
+   return 0;
+-}], large_file="yes")
+-if [[ -n "$large_file" ]]; then
++}], bonniepp_cv_large_file="yes"))
++fi
++
++AC_SUBST(large_file)
++
++if [[ -n "$bonniepp_cv_large_file" ]]; then
+large_file="#define _LARGEFILE64_SOURCE"
+ fi
+ 
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch 
b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
new file mode 100644
index 00..78ac347aa8
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
@@ -0,0 +1,181 @@
+commit 7e9433a56f22426b11cbc9bd80e0debca67c893b
+Author: Jörg Sommer 
+Date:   Mon Jun 26 12:38:30 2023 +0200
+
+csv2html: Explicitly reference data in top level
+
+With g++ 11 *data* became ambiguous with [std::data][1]. Therefore it's
+needed to explicitly address the variable from the top level scope.
+
+[1] https://en.cppreference.com/w/cpp/iterator/data
+
+diff --git a/bon_csv2html.cpp b/bon_csv2html.cpp
+index e9d9c50..652e330 100644
+--- a/bon_csv2html.cpp
 b/bon_csv2html.cpp
+@@ -87,8 +87,8 @@ int main(int argc, char **argv)
+ read_in(buf);
+   }
+ 
+-  props = new PPCCHAR[data.size()];
+-  for(i = 0; i < data.size(); i++)
++  props = new PPCCHAR[::data.size()];
++  for(i = 0; i < ::data.size(); i++)
+   {
+ props[i] = new PCCHAR[MAX_ITEMS];
+ props[i][0] = NULL;
+@@ -109,7 +109,7 @@ int main(int argc, char **argv)
+   }
+   calc_vals();
+   int mid_width = header();
+-  for(i = 0; i < data.size(); i++)
++  for(i = 0; i < ::data.size(); i++)
+   {
+ // First print the average speed line
+ printf("");
+@@ -171,23 +171,23 @@ int compar(const void *a, const void *b)
+ 
+ void calc_vals()
+ {
+-  ITEM *arr = new ITEM[data.size()];
++  ITEM *arr = new ITEM[::data.size()];
+   for(unsigned int column_ind = 0; column_ind < MAX_ITEMS; column_ind++)
+   {
+ switch(vals[column_ind])
+ {
+ case eNoCols:
+ {
+-  for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
++  for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
+   {
+ if(column_ind == COL_CONCURRENCY)
+ {
+-  if(data[row_ind][column_ind] && strcmp("1", 
data[row_ind][column_ind]))
++  if(::data[row_ind][column_ind] && strcmp("1", 
::data[row_ind][column_ind]))
+ col_used[column_ind] = true;
+ }
+ else
+ {
+-  if(data[row_ind][column_ind] && strlen(data[row_ind][column_ind]))
++  if(::data[row_ind][column_ind] && 
strlen(::data[row_ind][column_ind]))
+ col_used[column_ind] = true;
+ }
+   }
+@@ -195,22 +195,22 @@ void calc_vals()
+ break;
+ case eCPU:
+ {
+-  for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
++  for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
+   {
+ double work, cpu;
+ arr[row_ind].val = 0.0;
+-if(data[row_ind].size() > column_ind
+- && sscanf(data[row_ind][column_ind - 1], "%lf", ) == 1
+- && sscanf(data[row_ind][column_ind], "%lf", ) == 1)
++