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>lilik-openwrt-22.03
@ -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, | |||
+) |
@ -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> |
@ -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); |
@ -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 |
@ -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 |