bonnie++: update to 2.00a

Add custom meson build since the Makefile requires too much patching
anyway.

Stop using uClibc++. It will be removed in the near future.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2021-02-22 19:49:29 -08:00
parent 93d268b413
commit 5ff177bd40
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
6 changed files with 313 additions and 92 deletions

View File

@ -8,27 +8,27 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bonnie++
PKG_VERSION:=1.98
PKG_RELEASE:=4
PKG_VERSION:=2.00a
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=https://www.coker.com.au/bonnie++/
PKG_HASH:=6e0bcbc08b78856fd998dd7bcb352d4615a99c26c2dc83d5b8345b102bad0b04
PKG_SOURCE_URL:=https://www.coker.com.au/bonnie++
PKG_HASH:=a8d33bbd81bc7eb559ce5bf6e584b9b53faea39ccfb4ae92e58f27257e468f0e
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=copyright.txt
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=meson/host
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
include ../../devel/meson/meson.mk
define Package/bonniexx
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=$(CXX_DEPENDS) +libpthread
DEPENDS:=+libstdcpp +libpthread
TITLE:=Bonnie++ - hard drive bottleneck testing program.
URL:=https://www.coker.com.au/bonnie++/
endef
@ -38,12 +38,17 @@ define Package/bonniexx/description
tests of hard drive and file system performance.
endef
TARGET_CXXFLAGS += -ffunction-sections -fdata-sections -fno-rtti -flto
MESON_ARGS += \
-Db_lto=true \
-Dcpp_eh=none \
-Dcpp_rtti=false
TARGET_CXXFLAGS += -ffunction-sections -fdata-sections
define Package/bonniexx/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_BUILD_DIR)/bonnie++ $(1)/usr/bin/
$(CP) $(PKG_BUILD_DIR)/bon_csv2html $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/bonnie++ $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/bon_csv2html $(1)/usr/bin/
endef
$(eval $(call BuildPackage,bonniexx))

View File

@ -0,0 +1,80 @@
--- /dev/null
+++ b/conf.h.meson
@@ -0,0 +1 @@
+#mesondefine HAVE_ALGORITHM
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,73 @@
+project('bonnie++', 'cpp',
+ version : '2.00a',
+ default_options : [ 'cpp_std=c++11' ])
+
+cxx = meson.get_compiler('cpp')
+cdata = configuration_data()
+
+cdata.set('HAVE_ALGORITHM', cxx.has_header('algorithm'))
+
+configure_file(input : 'conf.h.meson',
+ output : 'conf.h',
+ configuration : cdata)
+
+bonniepp_incdir = include_directories('.')
+thread_dep = dependency('threads')
+
+add_global_arguments('-DHAVE_CONFIG_H', language : 'cpp')
+
+executable('bonnie++',
+ 'bonnie++.cpp',
+ 'bon_io.cpp',
+ 'bon_file.cpp',
+ 'bon_time.cpp',
+ 'semaphore.cpp',
+ 'sync.cpp',
+ 'thread.cpp',
+ 'bon_suid.cpp',
+ 'duration.cpp',
+ 'util.cpp',
+ 'rand.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+ dependencies : thread_dep,
+)
+
+executable('bon_csv2html',
+ 'bon_csv2html.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+)
+
+executable('zcav',
+ 'zcav.cpp',
+ 'thread.cpp',
+ 'zcav_io.cpp',
+ 'bon_suid.cpp',
+ 'duration.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+ dependencies : [ thread_dep ]
+)
+
+executable('getc_putc',
+ 'getc_putc.cpp',
+ 'bon_suid.cpp',
+ 'duration.cpp',
+ 'util.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+)
+
+executable('getc_putc_helper',
+ 'getc_putc_helper.cpp',
+ 'duration.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+)
+
+executable('generate_randfile',
+ 'generate_randfile.cpp',
+ install: true,
+ include_directories : bonniepp_incdir,
+)

View File

@ -1,81 +0,0 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -7,12 +7,6 @@ SCRIPTS=bon_csv2txt
prefix=@prefix@
eprefix=@exec_prefix@
-#MORE_WARNINGS=-Weffc++
-WFLAGS=-Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope -Wcast-align -Wsign-compare -Wpointer-arith -Wwrite-strings -Wformat-security -Wswitch-enum -Winit-self $(MORE_WARNINGS)
-CFLAGS=-O2 @debug@ -DNDEBUG $(WFLAGS) $(MORECFLAGS)
-CXX=@CXX@ $(CFLAGS)
-LINK=@CXX@
-THREAD_LFLAGS=@thread_ldflags@
INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
@@ -34,22 +28,22 @@ GETCHSRC=getc_putc_helper.cpp duration.c
GETCHOBJS=$(GETCHSRC:.cpp=.o)
bonnie++: $(BONOBJS)
- $(LINK) -o bonnie++ $(BONOBJS) $(THREAD_LFLAGS)
+ $(CXX) $(CXXFLAGS) -o bonnie++ $(BONOBJS) @thread_ldflags@
zcav: $(ZCAVOBJS)
- $(LINK) -o zcav $(ZCAVOBJS) $(THREAD_LFLAGS)
+ $(CXX) $(CXXFLAGS) -o zcav $(ZCAVOBJS) @thread_ldflags@
getc_putc: $(GETCOBJS) getc_putc_helper
- $(LINK) -o getc_putc $(GETCOBJS) $(THREAD_LFLAGS)
+ $(CXX) $(CXXFLAGS) -o getc_putc $(GETCOBJS)
getc_putc_helper: $(GETCHOBJS)
- $(CXX) -o getc_putc_helper $(GETCHOBJS)
+ $(CXX) $(CXXFLAGS) -o getc_putc_helper $(GETCHOBJS)
bon_csv2html: bon_csv2html.o
- $(LINK) bon_csv2html.o -o bon_csv2html
+ $(CXX) $(CXXFLAGS) bon_csv2html.o -o bon_csv2html
generate_randfile: generate_randfile.o
- $(LINK) generate_randfile.o -o generate_randfile
+ $(CXX) $(CXXFLAGS) generate_randfile.o -o generate_randfile
install-bin: $(EXE) $(EXES)
mkdir -p $(eprefix)/bin $(eprefix)/sbin
@@ -63,7 +57,7 @@ install: install-bin
@INSTALL_DATA@ $(MAN8) @mandir@/man8
%.o: %.cpp
- $(CXX) -c $<
+ $(CXX) $(CXXFLAGS) -c $<
clean:
rm -f $(EXE) $(EXES) *.o build-stamp install-stamp
--- a/configure.in
+++ b/configure.in
@@ -31,7 +31,6 @@ fi
dnl Checks for programs.
AC_LANG_CPLUSPLUS
-AC_PROG_CC
AC_PROG_CXX
AC_PROG_CXXCPP
AC_PROG_INSTALL
@@ -66,7 +65,7 @@ AC_SUBST(linux_pthread)
AC_TRY_COMPILE([#define _GNU_SOURCE
#include <pthread.h>
] , [pthread_mutexattr_t attr;
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);]
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);]
, linux_pthread="yes")
if [[ -n "$linux_pthread" ]]; then
linux_pthread="#define LINUX_PTHREAD"
@@ -83,7 +82,7 @@ void * thread_func(void * param) { retur
, thread_ldflags="-pthread")
AC_SUBST(large_file)
-AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
+AC_TRY_COMPILE([#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
#endif
#include <stdio.h>

View File

@ -0,0 +1,163 @@
From 4f60ce245b3cfe2117fdaf00a9e74a49f769daca Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 22 Feb 2021 16:03:21 -0800
Subject: [PATCH] remove using namespace std
Fixes: warning: using directive refers to implicitly-defined namespace 'std'
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
bon_time.cpp | 8 ++++----
bonnie++.cpp | 8 ++++----
bonnie.h | 2 --
duration.cpp | 4 +---
getc_putc.cpp | 2 +-
rand.cpp | 4 ++--
rand.h | 5 ++---
7 files changed, 14 insertions(+), 19 deletions(-)
--- a/bon_time.cpp
+++ b/bon_time.cpp
@@ -26,12 +26,12 @@ void BonTimer::add_delta_report(report_s
}
else
{
- m_delta[test].FirstStart = min(m_delta[test].FirstStart, rep.StartTime);
- m_delta[test].LastStop = max(m_delta[test].LastStop, rep.EndTime);
+ m_delta[test].FirstStart = std::min(m_delta[test].FirstStart, rep.StartTime);
+ m_delta[test].LastStop = std::max(m_delta[test].LastStop, rep.EndTime);
}
m_delta[test].CPU += rep.CPU;
m_delta[test].Elapsed = m_delta[test].LastStop - m_delta[test].FirstStart;
- m_delta[test].Latency = max(m_delta[test].Latency, rep.Latency);
+ m_delta[test].Latency = std::max(m_delta[test].Latency, rep.Latency);
}
BonTimer::BonTimer()
@@ -56,7 +56,7 @@ BonTimer::Initialize()
void
BonTimer::add_latency(tests_t test, double t)
{
- m_delta[test].Latency = max(m_delta[test].Latency, t);
+ m_delta[test].Latency = std::max(m_delta[test].Latency, t);
}
int BonTimer::print_cpu_stat(tests_t test)
--- a/bonnie++.cpp
+++ b/bonnie++.cpp
@@ -75,7 +75,7 @@ public:
void set_io_chunk_size(int size)
{ delete m_buf; pa_new(size, m_buf, m_buf_pa); m_io_chunk_size = size; }
void set_file_chunk_size(int size)
- { delete m_buf; m_buf = new char[max(size, m_io_chunk_size)]; m_file_chunk_size = size; }
+ { delete m_buf; m_buf = new char[std::max(size, m_io_chunk_size)]; m_file_chunk_size = size; }
// Return the page-aligned version of the local buffer
char *buf() { return m_buf_pa; }
@@ -142,7 +142,7 @@ CGlobalItems::CGlobalItems(bool *exitFla
, m_buf(NULL)
, m_buf_pa(NULL)
{
- pa_new(max(m_io_chunk_size, m_file_chunk_size), m_buf, m_buf_pa);
+ pa_new(std::max(m_io_chunk_size, m_file_chunk_size), m_buf, m_buf_pa);
SetName(".");
}
@@ -407,8 +407,8 @@ int main(int argc, char *argv[])
usage();
}
#endif
- globals.byte_io_size = min(file_size, globals.byte_io_size);
- globals.byte_io_size = max(0, globals.byte_io_size);
+ globals.byte_io_size = std::min(file_size, globals.byte_io_size);
+ globals.byte_io_size = std::max(0, globals.byte_io_size);
if(machine == NULL)
{
--- a/bonnie.h
+++ b/bonnie.h
@@ -1,8 +1,6 @@
#ifndef BONNIE
#define BONNIE
-using namespace std;
-
#define BON_VERSION "2.00"
#define CSV_VERSION "1.98"
--- a/duration.cpp
+++ b/duration.cpp
@@ -1,5 +1,3 @@
-using namespace std;
-
#include <stdlib.h>
#include "duration.h"
@@ -38,7 +36,7 @@ double Duration_Base::stop()
getTime(&tv);
double ret;
ret = tv - m_start;
- m_max = max(m_max, ret);
+ m_max = std::max(m_max, ret);
return ret;
}
--- a/getc_putc.cpp
+++ b/getc_putc.cpp
@@ -140,7 +140,7 @@ int main(int argc, char *argv[])
int size = 0, wrote;
while(size < file_size)
{
- wrote = write(FILE_FD, buf, min(sizeof(buf), (size_t)file_size - size));
+ wrote = write(FILE_FD, buf, std::min(sizeof(buf), (size_t)file_size - size));
if(wrote < 0)
{
fprintf(stderr, "Can't extend file - disk full?\n");
--- a/rand.cpp
+++ b/rand.cpp
@@ -31,7 +31,7 @@ bool Rand::seedFile(CPCCHAR name)
}
close(fd);
m_ind = -1;
- m_name = string(name);
+ m_name = std::string(name);
return false;
}
@@ -44,7 +44,7 @@ void Rand::seedNum(UINT num)
m_init = num;
char buf[12];
sprintf(buf, "%u", num);
- m_name = string(buf);
+ m_name = std::string(buf);
}
void Rand::reset()
--- a/rand.h
+++ b/rand.h
@@ -1,7 +1,6 @@
#ifndef RAND_H
#define RAND_H
-using namespace std;
#include "port.h"
#include <string>
#include <stdio.h>
@@ -31,7 +30,7 @@ public:
int getSize() { return m_size; }
- string getSeed() { return m_name; }
+ std::string getSeed() { return m_name; }
void reset();
@@ -39,7 +38,7 @@ private:
int *m_arr;
int m_size;
int m_ind;
- string m_name;
+ std::string m_name;
UINT m_init;
Rand(const Rand &t);

View File

@ -0,0 +1,31 @@
From 4f4d854b7758da89ced4dc800fcbec11667d61c8 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 22 Feb 2021 16:05:54 -0800
Subject: [PATCH] fix wrong printf off_t format
It's long vs. long long. There's a macro for this.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
port.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/port.h
+++ b/port.h
@@ -3,14 +3,13 @@
#include "conf.h"
-
-
+#include <inttypes.h>
#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
#endif
#ifdef _LARGEFILE64_SOURCE
-#define OFF_T_PRINTF "%lld"
+#define OFF_T_PRINTF "%" PRId64
#else
#define OFF_T_PRINTF "%d"
#endif

View File

@ -0,0 +1,23 @@
From 2e3e25454a165d55cbcd4fc78539454d4e0d8d51 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 22 Feb 2021 16:07:02 -0800
Subject: [PATCH] add missing cast
Fixes -Wformat
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
bon_time.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/bon_time.cpp
+++ b/bon_time.cpp
@@ -146,7 +146,7 @@ int BonTimer::print_stat(tests_t test, i
}
else
{
- fprintf(m_fp, " %5d", stat);
+ fprintf(m_fp, " %5d", int(stat));
}
}
else