* [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
2023-05-25 13:23 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov
@ 2023-05-25 13:23 ` Sergey Romanov
0 siblings, 0 replies; 9+ messages in thread
From: Sergey Romanov @ 2023-05-25 13:23 UTC (permalink / raw)
To: buildroot
Cc: svromanov, chip-club, akopytov, sbahra, sdfw_system_team, kernel
This benchmark was designed for identifying basic
system parameters, as they are important for system
using MySQL (w Innodb) under intensive load.
Handling of IO in case of many parallel requests,
checked as well as memory allocation/transfer
speed and scheduler performance.
CPU is benchmarked by using 64bit integer manipulation
using Euklid algorithms for prime number computation.
Benchmarks are designed to show benefit of multiple
CPUs as well as of multiple hard drives,
battery backed up write cache.
https://github.com/akopytov/sysbench.git
Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/sysbench/Config.in | 28 ++++++++++++++++++++++++++++
package/sysbench/sysbench.hash | 3 +++
package/sysbench/sysbench.mk | 30 ++++++++++++++++++++++++++++++
5 files changed, 63 insertions(+)
create mode 100644 package/sysbench/Config.in
create mode 100644 package/sysbench/sysbench.hash
create mode 100644 package/sysbench/sysbench.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 4accefb251..d48cbbd145 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2628,6 +2628,7 @@ F: package/xr819-xradio/
N: Sergey Romanov <svromanov@sberdevices.ru>
F: package/ck/
+F: package/sysbench/
N: Sergio Prado <sergio.prado@e-labworks.com>
F: board/toradex/apalis-imx6/
diff --git a/package/Config.in b/package/Config.in
index c81ddc81f6..0004f71846 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -152,6 +152,7 @@ menu "Debugging, profiling and benchmark"
source "package/strace/Config.in"
source "package/stress/Config.in"
source "package/stress-ng/Config.in"
+ source "package/sysbench/Config.in"
source "package/sysdig/Config.in"
source "package/sysprof/Config.in"
source "package/tcf-agent/Config.in"
diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
new file mode 100644
index 0000000000..a8377b5bfd
--- /dev/null
+++ b/package/sysbench/Config.in
@@ -0,0 +1,28 @@
+config BR2_PACKAGE_SYSBENCH
+ bool "sysbench"
+ select BR2_PACKAGE_LUAJIT
+ select BR2_PACKAGE_CK
+ help
+ This benchmark was designed for identifying basic
+ system parameters, as they are important for system
+ using MySQL (w Innodb) under intensive load.
+ Handling of IO in case of many parallel requests,
+ checked as well as memory allocation/transfer
+ speed and scheduler performance.
+ CPU is benchmarked by using 64bit integer manipulation
+ using Euklid algorithms for prime number computation.
+ Benchmarks are designed to show benefit of multiple
+ CPUs as well as of multiple hard drives,
+ battery backed up write cache.
+
+ https://github.com/akopytov/sysbench.git
+
+if BR2_PACKAGE_SYSBENCH
+
+config BR2_PACKAGE_SYSBENCH_WITH_MYSQL
+ bool "configure with mysql"
+ select BR2_PACKAGE_MYSQL
+ help
+ Configure with mysql
+
+endif
diff --git a/package/sysbench/sysbench.hash b/package/sysbench/sysbench.hash
new file mode 100644
index 0000000000..a31fdb1178
--- /dev/null
+++ b/package/sysbench/sysbench.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 e8ee79b1f399b2d167e6a90de52ccc90e52408f7ade1b9b7135727efe181347f sysbench-1.0.20.tar.gz
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
new file mode 100644
index 0000000000..748014f564
--- /dev/null
+++ b/package/sysbench/sysbench.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# SYSBENCH
+#
+################################################################################
+
+SYSBENCH_VERSION = 1.0.20
+SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
+SYSBENCH_LICENSE = GPLv2
+SYSBENCH_LICENSE_FILES = COPYING
+
+SYSBENCH_AUTORECONF = YES
+
+SYSBENCH_DEPENDENCIES = host-pkgconf
+SYSBENCH_DEPENDENCIES += ck
+SYSBENCH_DEPENDENCIES += luajit
+
+SYSBENCH_CONF_OPTS += --without-lib-prefix
+SYSBENCH_CONF_OPTS += --with-system-luajit
+SYSBENCH_CONF_OPTS += --with-system-ck
+
+ifneq ($(BR2_PACKAGE_SYSBENCH_WITH_MYSQL), y)
+SYSBENCH_CONF_OPTS += --without-mysql
+else
+SYSBENCH_DEPENDENCIES += mysql
+SYSBENCH_CONF_OPTS += --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql
+SYSBENCH_CONF_OPTS += --with-mysql-libs=$(STAGING_DIR)/usr/lib
+endif
+
+$(eval $(autotools-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck'.
@ 2023-05-25 21:51 Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
0 siblings, 2 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
To: buildroot
Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
sdfw_system_team, kernel
Sergey Romanov (2):
package/ck: new package
package/sysbench: new package
.checkpackageignore | 1 +
DEVELOPERS | 4 +
package/Config.in | 2 +
...oid-buildroot-s-influence-on-LDFLAGS.patch | 191 ++++++++++++++++++
package/ck/Config.in | 23 +++
package/ck/ck.hash | 3 +
package/ck/ck.mk | 42 ++++
package/sysbench/Config.in | 28 +++
package/sysbench/sysbench.hash | 3 +
package/sysbench/sysbench.mk | 30 +++
10 files changed, 327 insertions(+)
create mode 100644 package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
create mode 100644 package/ck/Config.in
create mode 100644 package/ck/ck.hash
create mode 100644 package/ck/ck.mk
create mode 100644 package/sysbench/Config.in
create mode 100644 package/sysbench/sysbench.hash
create mode 100644 package/sysbench/sysbench.mk
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v1 1/2] package/ck: new package
2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
@ 2023-05-25 21:51 ` Sergey Romanov via buildroot
2023-08-25 21:33 ` Thomas Petazzoni via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
1 sibling, 1 reply; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
To: buildroot
Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
sdfw_system_team, kernel
Concurrency primitives, safe memory reclamation
mechanisms and non-blocking data structures
for the research, design and implementation
of high performance concurrent systems.
https://github.com/concurrencykit/ck.git
Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
---
.checkpackageignore | 1 +
DEVELOPERS | 3 +
package/Config.in | 1 +
...oid-buildroot-s-influence-on-LDFLAGS.patch | 191 ++++++++++++++++++
package/ck/Config.in | 23 +++
package/ck/ck.hash | 3 +
package/ck/ck.mk | 42 ++++
7 files changed, 264 insertions(+)
create mode 100644 package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
create mode 100644 package/ck/Config.in
create mode 100644 package/ck/ck.hash
create mode 100644 package/ck/ck.mk
diff --git a/.checkpackageignore b/.checkpackageignore
index f2dea0dfd9..1be4e79a2b 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -286,6 +286,7 @@ package/cgroupfs-mount/S30cgroupfs Indent Shellcheck Variables
package/chipmunk/0001-Fix-build-failure-on-musl.patch Upstream
package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch Upstream
package/chrony/S49chrony Indent Shellcheck Variables
+package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch Upstream
package/clang/0001-lib-Driver-ToolChains-Gnu-Use-GCC_INSTALL_PREFIX-in-.patch Upstream
package/cmake/0001-rename-cmake-rootfile.patch Upstream
package/cmocka/0001-Don-t-redefine-uintptr_t.patch Upstream
diff --git a/DEVELOPERS b/DEVELOPERS
index e76717e845..4accefb251 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2626,6 +2626,9 @@ F: package/rtl8189fs/
F: package/wpa_supplicant/
F: package/xr819-xradio/
+N: Sergey Romanov <svromanov@sberdevices.ru>
+F: package/ck/
+
N: Sergio Prado <sergio.prado@e-labworks.com>
F: board/toradex/apalis-imx6/
F: configs/toradex_apalis_imx6_defconfig
diff --git a/package/Config.in b/package/Config.in
index 420ebaa370..c81ddc81f6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -92,6 +92,7 @@ menu "Debugging, profiling and benchmark"
source "package/bonnie/Config.in"
source "package/bpftool/Config.in"
source "package/cache-calibrator/Config.in"
+ source "package/ck/Config.in"
source "package/clinfo/Config.in"
source "package/clpeak/Config.in"
source "package/coremark/Config.in"
diff --git a/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
new file mode 100644
index 0000000000..7e2cc85ba6
--- /dev/null
+++ b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
@@ -0,0 +1,191 @@
+From 0b30b184538c0de485fe292e2ebb6bfea3c255bc Mon Sep 17 00:00:00 2001
+From: Sergey Romanov <svromanov@sberdevices.ru>
+Date: Thu, 25 May 2023 19:01:28 +0300
+Subject: [PATCH] Avoid buildroot's influence on LDFLAGS
+
+Upstream-status: Pending
+
+Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
+---
+ build/ck.build.in | 2 +-
+ build/ck.build.ppc64 | 2 +-
+ build/ck.build.x86_64 | 2 +-
+ build/regressions.build.in | 2 +-
+ configure | 28 +++++++++++++++-------------
+ src/Makefile.in | 2 +-
+ 6 files changed, 20 insertions(+), 18 deletions(-)
+
+diff --git a/build/ck.build.in b/build/ck.build.in
+index 1d6bfe3..f68b5b7 100644
+--- a/build/ck.build.in
++++ b/build/ck.build.in
+@@ -3,7 +3,7 @@ MAKE=make
+ SRC_DIR=@SRC_DIR@
+ BUILD_DIR=@BUILD_DIR@
+ CFLAGS+=@CFLAGS@ -I$(SRC_DIR)/include -I$(BUILD_DIR)/include
+-LDFLAGS+=@LDFLAGS@
++LDFLAGS_CK+=@LDFLAGS_CK@
+ ALL_LIBS=@ALL_LIBS@
+ LD=@LD@
+
+diff --git a/build/ck.build.ppc64 b/build/ck.build.ppc64
+index 51003f4..7e25f10 100644
+--- a/build/ck.build.ppc64
++++ b/build/ck.build.ppc64
+@@ -1,2 +1,2 @@
+ CFLAGS+=-m64 -D__ppc64__
+-LDFLAGS+=-m64
++LDFLAGS_CK+=-m64
+diff --git a/build/ck.build.x86_64 b/build/ck.build.x86_64
+index 81b378a..160c4f1 100644
+--- a/build/ck.build.x86_64
++++ b/build/ck.build.x86_64
+@@ -1,2 +1,2 @@
+ CFLAGS+=-m64 -D__x86_64__
+-LDFLAGS+=-m64
++LDFLAGS_CK+=-m64
+diff --git a/build/regressions.build.in b/build/regressions.build.in
+index 6d79a8b..f1c7515 100644
+--- a/build/regressions.build.in
++++ b/build/regressions.build.in
+@@ -3,7 +3,7 @@ MAKE=make
+ CORES=@CORES@
+ CFLAGS=@CFLAGS@ -I../../../include -DCORES=@CORES@
+ LD=@LD@
+-LDFLAGS=@LDFLAGS@
++LDFLAGS_CK=@LDFLAGS_CK@
+ PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
+ BUILD_DIR=@BUILD_DIR@
+
+diff --git a/configure b/configure
+index 340e05c..f73104a 100755
+--- a/configure
++++ b/configure
+@@ -112,7 +112,7 @@ generate()
+ -e "s#@ALL_LIBS@#$ALL_LIBS#g" \
+ -e "s#@INSTALL_LIBS@#$INSTALL_LIBS#g" \
+ -e "s#@LD@#$LD#g" \
+- -e "s#@LDFLAGS@#$LDFLAGS#g" \
++ -e "s#@LDFLAGS_CK@#$LDFLAGS_CK#g" \
+ -e "s#@PTHREAD_CFLAGS@#$PTHREAD_CFLAGS#g" \
+ -e "s#@MANDIR@#$MANDIR#g" \
+ -e "s#@GZIP@#$GZIP#g" \
+@@ -156,7 +156,7 @@ generate_stdout()
+ echo " LDNAME = $LDNAME"
+ echo " LDNAME_VERSION = $LDNAME_VERSION"
+ echo " LDNAME_MAJOR = $LDNAME_MAJOR"
+- echo " LDFLAGS = $LDFLAGS"
++ echo " LDFLAGS_CK = $LDFLAGS_CK"
+ echo " STATIC_LIB = $DISABLE_STATIC"
+ echo " GZIP = $GZIP"
+ echo " CORES = $CORES"
+@@ -222,7 +222,7 @@ for option; do
+ echo " AR AR archiver command"
+ echo " CC C compiler command"
+ echo " CFLAGS C compiler flags"
+- echo " LDFLAGS Linker flags"
++ echo " LDFLAGS_CK Linker flags"
+ echo " GZIP GZIP compression tool"
+ echo
+ echo "Report bugs to ${MAINTAINER}."
+@@ -376,15 +376,15 @@ case "$SYSTEM" in
+ ;;
+ MINGW32*|MSYS_NT*)
+ SYSTEM=mingw32
+- LDFLAGS="-mthreads $LDFLAGS"
++ LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ ;;
+ MINGW64*)
+ SYSTEM=mingw64
+- LDFLAGS="-mthreads $LDFLAGS"
++ LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ ;;
+ CYGWIN_NT*)
+ SYSTEM=cygwin
+- LDFLAGS="-mthreads $LDFLAGS"
++ LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ ;;
+ *)
+ SYSTEM=
+@@ -413,7 +413,7 @@ case $PLATFORM in
+ MM="${MM:-"CK_MD_RMO"}"
+ PLATFORM=ppc
+ ENVIRONMENT=32
+- LDFLAGS="-m32 $LDFLAGS"
++ LDFLAGS_CK="-m32 $LDFLAGS_CK"
+ ;;
+ "sun4u"|"sun4v"|"sparc64")
+ RTM_ENABLE="CK_MD_RTM_DISABLE"
+@@ -421,7 +421,7 @@ case $PLATFORM in
+ MM="${MM:-"CK_MD_TSO"}"
+ PLATFORM=sparcv9
+ ENVIRONMENT=64
+- LDFLAGS="-m64 $LDFLAGS"
++ LDFLAGS_CK="-m64 $LDFLAGS_CK"
+ ;;
+ i386|i486|i586|i686|i586_i686|pentium*|athlon*|k5|k6|k6_2|k6_3)
+ LSE_ENABLE="CK_MD_LSE_DISABLE"
+@@ -474,7 +474,7 @@ case $PLATFORM in
+ LSE_ENABLE="CK_MD_LSE_DISABLE"
+ PLATFORM=x86_64
+ ENVIRONMENT=64
+- LDFLAGS="-m64 $LDFLAGS"
++ LDFLAGS_CK="-m64 $LDFLAGS_CK"
+ MM="${MM:-"CK_MD_TSO"}"
+ ;;
+ "i86pc")
+@@ -686,6 +686,8 @@ $CC -o .1 .1.c
+ COMPILER=`./.1 2> /dev/null`
+ r=$?
+ rm -f .1.c .1
++COMPILER="gcc"
++r=0
+
+ if test "$r" -ne 0; then
+ assert "" "update compiler"
+@@ -695,7 +697,7 @@ fi
+
+ if test "$COMPILER" = "suncc"; then
+ LD=/bin/ld
+- LDFLAGS="-G -z text -h libck.so.$VERSION_MAJOR $LDFLAGS"
++ LDFLAGS_CK="-G -z text -h libck.so.$VERSION_MAJOR $LDFLAGS_CK"
+ CFLAGS="-xO5 $CFLAGS"
+ PTHREAD_CFLAGS="-mt -lpthread"
+ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER" = "mingw32" || test "$COMPILER" = "mingw64"; then
+@@ -711,9 +713,9 @@ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER"
+ CC_WL_OPT="-soname"
+ fi
+
+- LDFLAGS="-Wl,$CC_WL_OPT,$SONAME $LDFLAGS"
++ LDFLAGS_CK="-Wl,$CC_WL_OPT,$SONAME $LDFLAGS_CK"
+ if test "$WANT_PIC" = "yes"; then
+- LDFLAGS="$LDFLAGS -shared -fPIC"
++ LDFLAGS_CK="$LDFLAGS_CK -shared -fPIC"
+ CFLAGS="$CFLAGS -fPIC"
+
+ if [ "$DISABLE_STATIC" -eq 1 ]; then
+@@ -724,7 +726,7 @@ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER"
+ INSTALL_LIBS="install-so install-lib"
+ fi
+ else
+- LDFLAGS="$LDFLAGS -fno-PIC"
++ LDFLAGS_CK="$LDFLAGS_CK -fno-PIC"
+ CFLAGS="$CFLAGS -fno-PIC"
+ if [ "$DISABLE_STATIC" -eq 1 ]; then
+ echo "Error: You have choosen to disable PIC, yet you also disabled the static lib." 1>&2
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 7378849..ee6f9ee 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -22,7 +22,7 @@ OBJECTS=ck_barrier_centralized.o \
+ all: $(ALL_LIBS)
+
+ libck.so: $(OBJECTS)
+- $(LD) $(LDFLAGS) -o $(TARGET_DIR)/libck.so $(OBJECTS)
++ $(LD) $(LDFLAGS_CK) -o $(TARGET_DIR)/libck.so $(OBJECTS)
+
+ libck.a: $(OBJECTS)
+ $(AR) rcs $(TARGET_DIR)/libck.a $(OBJECTS)
+--
+2.25.1
+
diff --git a/package/ck/Config.in b/package/ck/Config.in
new file mode 100644
index 0000000000..d88eaa8413
--- /dev/null
+++ b/package/ck/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_CK_ARCH_SUPPORTS
+ bool
+ default y if ((BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && \
+ !BR2_ARM_CPU_ARMV7M) || BR2_aarch64 || \
+ BR2_powerpc || BR2_powerpc64 || BR2_RISCV_64 || \
+ BR2_s390x || BR2_sparc_v9 || BR2_x86 || BR2_x86_64)
+
+config BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
+ bool
+ default y if ((BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_USES_GLIBC) && \
+ !BR2_TOOLCHAIN_USES_UCLIBC)
+
+config BR2_PACKAGE_CK
+ bool "concurrency kit"
+ depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
+ help
+ Concurrency primitives, safe memory reclamation
+ mechanisms and non-blocking data structures
+ for the research, design and implementation
+ of high performance concurrent systems.
+
+ https://github.com/concurrencykit/ck.git
diff --git a/package/ck/ck.hash b/package/ck/ck.hash
new file mode 100644
index 0000000000..6d77ae4bee
--- /dev/null
+++ b/package/ck/ck.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 97d2a21d5326ef79b4668be2e6eda6284ee77a64c0981b35fd9695c736c3d4ac ck-0.7.1.tar.gz
+sha256 21a861f554f8f97047815e63ff5cbd57707b4c53dc1dd1b0f2dd43e6ca193464 LICENSE
diff --git a/package/ck/ck.mk b/package/ck/ck.mk
new file mode 100644
index 0000000000..ecdeadb057
--- /dev/null
+++ b/package/ck/ck.mk
@@ -0,0 +1,42 @@
+################################################################################
+#
+# ck
+#
+################################################################################
+
+CK_VERSION = 0.7.1
+CK_SITE = $(call github,concurrencykit,ck,$(CK_VERSION))
+CK_LICENSE = Apache-2.0
+CK_LICENSE_FILES = LICENSE
+
+CK_INSTALL_STAGING = YES
+
+CK_PROFILE_PARAMS += --platform=$(BR2_ARCH)
+CK_PROFILE_PARAMS += --prefix="/usr"
+
+define CK_CONFIGURE_CMDS
+ ( cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(CK_PROFILE_CONF_ENV) \
+ ./configure $(CK_PROFILE_PARAMS) )
+endef
+
+define CK_BUILD_CMDS
+ $(TARGET_CONFIGURE_OPTS) \
+ $(CK_PROFILE_CONF_ENV) \
+ $(MAKE) -C $(@D)
+endef
+
+define CK_INSTALL_TARGET_CMDS
+ $(TARGET_CONFIGURE_OPTS) \
+ $(CK_PROFILE_CONF_ENV) \
+ $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+define CK_INSTALL_STAGING_CMDS
+ $(TARGET_CONFIGURE_OPTS) \
+ $(CK_PROFILE_CONF_ENV) \
+ $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+$(eval $(generic-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-05-25 21:51 ` Sergey Romanov via buildroot
2023-08-25 21:37 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
To: buildroot
Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
sdfw_system_team, kernel
This benchmark was designed for identifying basic
system parameters, as they are important for system
using MySQL (w Innodb) under intensive load.
Handling of IO in case of many parallel requests,
checked as well as memory allocation/transfer
speed and scheduler performance.
CPU is benchmarked by using 64bit integer manipulation
using Euklid algorithms for prime number computation.
Benchmarks are designed to show benefit of multiple
CPUs as well as of multiple hard drives,
battery backed up write cache.
https://github.com/akopytov/sysbench.git
Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/sysbench/Config.in | 28 ++++++++++++++++++++++++++++
package/sysbench/sysbench.hash | 3 +++
package/sysbench/sysbench.mk | 30 ++++++++++++++++++++++++++++++
5 files changed, 63 insertions(+)
create mode 100644 package/sysbench/Config.in
create mode 100644 package/sysbench/sysbench.hash
create mode 100644 package/sysbench/sysbench.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 4accefb251..d48cbbd145 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2628,6 +2628,7 @@ F: package/xr819-xradio/
N: Sergey Romanov <svromanov@sberdevices.ru>
F: package/ck/
+F: package/sysbench/
N: Sergio Prado <sergio.prado@e-labworks.com>
F: board/toradex/apalis-imx6/
diff --git a/package/Config.in b/package/Config.in
index c81ddc81f6..0004f71846 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -152,6 +152,7 @@ menu "Debugging, profiling and benchmark"
source "package/strace/Config.in"
source "package/stress/Config.in"
source "package/stress-ng/Config.in"
+ source "package/sysbench/Config.in"
source "package/sysdig/Config.in"
source "package/sysprof/Config.in"
source "package/tcf-agent/Config.in"
diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
new file mode 100644
index 0000000000..a8377b5bfd
--- /dev/null
+++ b/package/sysbench/Config.in
@@ -0,0 +1,28 @@
+config BR2_PACKAGE_SYSBENCH
+ bool "sysbench"
+ select BR2_PACKAGE_LUAJIT
+ select BR2_PACKAGE_CK
+ help
+ This benchmark was designed for identifying basic
+ system parameters, as they are important for system
+ using MySQL (w Innodb) under intensive load.
+ Handling of IO in case of many parallel requests,
+ checked as well as memory allocation/transfer
+ speed and scheduler performance.
+ CPU is benchmarked by using 64bit integer manipulation
+ using Euklid algorithms for prime number computation.
+ Benchmarks are designed to show benefit of multiple
+ CPUs as well as of multiple hard drives,
+ battery backed up write cache.
+
+ https://github.com/akopytov/sysbench.git
+
+if BR2_PACKAGE_SYSBENCH
+
+config BR2_PACKAGE_SYSBENCH_WITH_MYSQL
+ bool "configure with mysql"
+ select BR2_PACKAGE_MYSQL
+ help
+ Configure with mysql
+
+endif
diff --git a/package/sysbench/sysbench.hash b/package/sysbench/sysbench.hash
new file mode 100644
index 0000000000..a31fdb1178
--- /dev/null
+++ b/package/sysbench/sysbench.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 e8ee79b1f399b2d167e6a90de52ccc90e52408f7ade1b9b7135727efe181347f sysbench-1.0.20.tar.gz
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
new file mode 100644
index 0000000000..748014f564
--- /dev/null
+++ b/package/sysbench/sysbench.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# SYSBENCH
+#
+################################################################################
+
+SYSBENCH_VERSION = 1.0.20
+SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
+SYSBENCH_LICENSE = GPLv2
+SYSBENCH_LICENSE_FILES = COPYING
+
+SYSBENCH_AUTORECONF = YES
+
+SYSBENCH_DEPENDENCIES = host-pkgconf
+SYSBENCH_DEPENDENCIES += ck
+SYSBENCH_DEPENDENCIES += luajit
+
+SYSBENCH_CONF_OPTS += --without-lib-prefix
+SYSBENCH_CONF_OPTS += --with-system-luajit
+SYSBENCH_CONF_OPTS += --with-system-ck
+
+ifneq ($(BR2_PACKAGE_SYSBENCH_WITH_MYSQL), y)
+SYSBENCH_CONF_OPTS += --without-mysql
+else
+SYSBENCH_DEPENDENCIES += mysql
+SYSBENCH_CONF_OPTS += --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql
+SYSBENCH_CONF_OPTS += --with-mysql-libs=$(STAGING_DIR)/usr/lib
+endif
+
+$(eval $(autotools-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [RFC PATCH v1 1/2] package/ck: new package
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-08-25 21:33 ` Thomas Petazzoni via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-25 21:33 UTC (permalink / raw)
To: Sergey Romanov via buildroot
Cc: Sergey Romanov, chip-club, akopytov, sbahra, sdfw_system_team,
kernel
Hello Sergey,
On Fri, 26 May 2023 00:51:02 +0300
Sergey Romanov via buildroot <buildroot@buildroot.org> wrote:
> Concurrency primitives, safe memory reclamation
> mechanisms and non-blocking data structures
> for the research, design and implementation
> of high performance concurrent systems.
>
> https://github.com/concurrencykit/ck.git
>
> Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
Sorry for the very slow feedback. I wanted to push this, but it doesn't
build, and I don't see how it can build in a cross-compilation
environment. Indeed, the configure script does this:
$CC -o .1 .1.c
COMPILER=`./.1 2> /dev/null`
r=$?
rm -f .1.c .1
if test "$r" -ne 0; then
assert "" "update compiler"
else
echo "success [$CC]"
fi
So it builds a program called .1 with the cross-compiler, and then it
tries to run it. This obviously will never work in a cross-compilation
context.
Some more comments below (which I had addressed locally, but had to
give up because of the above issue)
> diff --git a/.checkpackageignore b/.checkpackageignore
> index f2dea0dfd9..1be4e79a2b 100644
> --- a/.checkpackageignore
> +++ b/.checkpackageignore
> @@ -286,6 +286,7 @@ package/cgroupfs-mount/S30cgroupfs Indent Shellcheck Variables
> package/chipmunk/0001-Fix-build-failure-on-musl.patch Upstream
> package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch Upstream
> package/chrony/S49chrony Indent Shellcheck Variables
> +package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch Upstream
Please add a proper Upstream: tag instead of adding an exception. We
don't want to add new entries in .checkpackageignore, only remove
existing entries.
> diff --git a/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
> new file mode 100644
> index 0000000000..7e2cc85ba6
> --- /dev/null
> +++ b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
> @@ -0,0 +1,191 @@
> +From 0b30b184538c0de485fe292e2ebb6bfea3c255bc Mon Sep 17 00:00:00 2001
> +From: Sergey Romanov <svromanov@sberdevices.ru>
> +Date: Thu, 25 May 2023 19:01:28 +0300
> +Subject: [PATCH] Avoid buildroot's influence on LDFLAGS
> +
> +Upstream-status: Pending
Pending where? Could you please provide some link to a pull request?
Also, could you provide some more details on why this patch is needed.
Apparently, the configure script is designed to allow passing custom
LDFLAGS through the LDFLAGS variable, so why doesn't that just work?
> diff --git a/package/ck/Config.in b/package/ck/Config.in
> new file mode 100644
> index 0000000000..d88eaa8413
> --- /dev/null
> +++ b/package/ck/Config.in
> @@ -0,0 +1,23 @@
> +config BR2_PACKAGE_CK_ARCH_SUPPORTS
> + bool
> + default y if ((BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && \
> + !BR2_ARM_CPU_ARMV7M) || BR2_aarch64 || \
> + BR2_powerpc || BR2_powerpc64 || BR2_RISCV_64 || \
> + BR2_s390x || BR2_sparc_v9 || BR2_x86 || BR2_x86_64)
BR2_x86 doesn't exist, it's BR2_i386. Also, please reformat as such:
config BR2_PACKAGE_CK_ARCH_SUPPORTS
bool
default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && !BR2_ARM_CPU_ARMV7M
default y if BR2_aarch64
default y if BR2_i386
default y if BR2_powerpc || BR2_powerpc64
default y if BR2_RISCV_64
default y if BR2_s390x
default y if BR2_sparc_v9
default y if BR2_x86_64
> +config BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
> + bool
> + default y if ((BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_USES_GLIBC) && \
> + !BR2_TOOLCHAIN_USES_UCLIBC)
Please drop this.
> +
> +config BR2_PACKAGE_CK
> + bool "concurrency kit"
> + depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
> + depends on BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
And use:
# some comment here to explain the issue
depends on !BR2_TOOLCHAIN_USES_UCLIBC
> + help
> + Concurrency primitives, safe memory reclamation
> + mechanisms and non-blocking data structures
> + for the research, design and implementation
> + of high performance concurrent systems.
> +
> + https://github.com/concurrencykit/ck.git
And add:
comment "ck needs a toolchain w/ glibc or musl"
depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_UCLIBC
> +CK_INSTALL_STAGING = YES
> +
> +CK_PROFILE_PARAMS += --platform=$(BR2_ARCH)
> +CK_PROFILE_PARAMS += --prefix="/usr"
Please use:
CK_CONF_OPTS = \
--platform=$(BR2_ARCH) \
--prefix="/usr"
> +
> +define CK_CONFIGURE_CMDS
> + ( cd $(@D); \
> + $(TARGET_CONFIGURE_OPTS) \
> + $(CK_PROFILE_CONF_ENV) \
This variable doesn't exist.
> + ./configure $(CK_PROFILE_PARAMS) )
Please simplify to:
cd $(@D); \
$(TARGET_CONFIGURE_OPTS) \
./configure $(CK_CONF_OPTS)
> +endef
> +
> +define CK_BUILD_CMDS
> + $(TARGET_CONFIGURE_OPTS) \
> + $(CK_PROFILE_CONF_ENV) \
> + $(MAKE) -C $(@D)
If you can simplify to:
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
it would be great.
> +endef
> +
> +define CK_INSTALL_TARGET_CMDS
> + $(TARGET_CONFIGURE_OPTS) \
> + $(CK_PROFILE_CONF_ENV) \
> + $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
Simplify to:
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
if possible.
> +endef
> +
> +define CK_INSTALL_STAGING_CMDS
> + $(TARGET_CONFIGURE_OPTS) \
> + $(CK_PROFILE_CONF_ENV) \
> + $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
Simplify to:
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
if possible.
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
@ 2023-08-25 21:37 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-25 21:37 UTC (permalink / raw)
To: Sergey Romanov via buildroot
Cc: Sergey Romanov, chip-club, akopytov, sbahra, sdfw_system_team,
kernel
Hello Sergey,
On Fri, 26 May 2023 00:51:03 +0300
Sergey Romanov via buildroot <buildroot@buildroot.org> wrote:
> diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
> new file mode 100644
> index 0000000000..a8377b5bfd
> --- /dev/null
> +++ b/package/sysbench/Config.in
> @@ -0,0 +1,28 @@
> +config BR2_PACKAGE_SYSBENCH
> + bool "sysbench"
> + select BR2_PACKAGE_LUAJIT
> + select BR2_PACKAGE_CK
You need to replicate the dependencies of those options, so:
depends on !BR2_STATIC_LIBS # luajit
depends on !BR2_PACKAGE_LUA # luajit
depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
depends on !BR2_TOOLCHAIN_USES_UCLIBC # ck
> + help
> + This benchmark was designed for identifying basic
> + system parameters, as they are important for system
> + using MySQL (w Innodb) under intensive load.
> + Handling of IO in case of many parallel requests,
> + checked as well as memory allocation/transfer
> + speed and scheduler performance.
> + CPU is benchmarked by using 64bit integer manipulation
> + using Euklid algorithms for prime number computation.
> + Benchmarks are designed to show benefit of multiple
> + CPUs as well as of multiple hard drives,
> + battery backed up write cache.
The wrapping of those lines look really weird. Can you ask your text
editor to wrap this automatically, and get some more consistent
wrapping?
> +
> + https://github.com/akopytov/sysbench.git
> +
> +if BR2_PACKAGE_SYSBENCH
> +
> +config BR2_PACKAGE_SYSBENCH_WITH_MYSQL
> + bool "configure with mysql"
> + select BR2_PACKAGE_MYSQL
> + help
> + Configure with mysql
You can drop this option and test BR2_PACKAGE_MYSQL in the .mk file.
> diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
> new file mode 100644
> index 0000000000..748014f564
> --- /dev/null
> +++ b/package/sysbench/sysbench.mk
> @@ -0,0 +1,30 @@
> +################################################################################
> +#
> +# SYSBENCH
> +#
> +################################################################################
> +
> +SYSBENCH_VERSION = 1.0.20
> +SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
> +SYSBENCH_LICENSE = GPLv2
GPL-2.0, not GPLv2. But from a quick look at the code, it seems like
the license is actually GPL-2.0+.
> +SYSBENCH_LICENSE_FILES = COPYING
> +
> +SYSBENCH_AUTORECONF = YES
> +
> +SYSBENCH_DEPENDENCIES = host-pkgconf
> +SYSBENCH_DEPENDENCIES += ck
> +SYSBENCH_DEPENDENCIES += luajit
Please change to:
SYSBENCH_DEPENDENCIES = host-pkgconf ck luajit
> +SYSBENCH_CONF_OPTS += --without-lib-prefix
> +SYSBENCH_CONF_OPTS += --with-system-luajit
> +SYSBENCH_CONF_OPTS += --with-system-ck
Please change to:
SYSBENCH_CONF_OPTS = \
--without-lib-prefix \
--with-system-luajit \
--with-system-ck
> +
> +ifneq ($(BR2_PACKAGE_SYSBENCH_WITH_MYSQL), y)
> +SYSBENCH_CONF_OPTS += --without-mysql
> +else
> +SYSBENCH_DEPENDENCIES += mysql
> +SYSBENCH_CONF_OPTS += --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql
> +SYSBENCH_CONF_OPTS += --with-mysql-libs=$(STAGING_DIR)/usr/lib
> +endif
Please change to:
ifeq ($(BR2_PACKAGE_MYSQL),y)
SYSBENCH_DEPENDENCIES += mysql
SYSBENCH_CONF_OPTS += \
--with-mysql \
--with-mysql-includes=$(STAGING_DIR)/usr/include/mysql \
--with-mysql-libs=$(STAGING_DIR)/usr/lib
else
SYSBENCH_CONF_OPTS += --without-mysql
endif
Could you rework this and send a v2?
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck'.
2023-08-25 21:33 ` Thomas Petazzoni via buildroot
@ 2023-11-17 9:44 ` Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
0 siblings, 2 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17 9:44 UTC (permalink / raw)
To: buildroot
Cc: chip-club, akopytov, kernel, svromanov, sbahra, sdfw_system_team,
thomas.petazzoni
Sergey Romanov (2):
package/ck: new package
package/sysbench: new package
DEVELOPERS | 4 ++
package/Config.in | 2 +
package/ck/Config.in | 19 +++++++++
package/ck/ck.hash | 3 ++
package/ck/ck.mk | 71 ++++++++++++++++++++++++++++++++++
package/sysbench/Config.in | 29 ++++++++++++++
package/sysbench/sysbench.hash | 3 ++
package/sysbench/sysbench.mk | 31 +++++++++++++++
8 files changed, 162 insertions(+)
create mode 100644 package/ck/Config.in
create mode 100644 package/ck/ck.hash
create mode 100644 package/ck/ck.mk
create mode 100644 package/sysbench/Config.in
create mode 100644 package/sysbench/sysbench.hash
create mode 100644 package/sysbench/sysbench.mk
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v2 1/2] package/ck: new package
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
@ 2023-11-17 9:44 ` Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
1 sibling, 0 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17 9:44 UTC (permalink / raw)
To: buildroot
Cc: Sergey Romanov, chip-club, akopytov, kernel, svromanov, sbahra,
sdfw_system_team, thomas.petazzoni
From: Sergey Romanov <svromanov@sberdevices.ru>
Concurrency primitives, safe memory reclamation
mechanisms and non-blocking data structures
for the research, design and implementation
of high performance concurrent systems.
https://github.com/concurrencykit/ck.git
Signed-off-by: Sergey Romanov <svromanov@salutedevices.com>
---
DEVELOPERS | 3 ++
package/Config.in | 1 +
package/ck/Config.in | 19 ++++++++++++
package/ck/ck.hash | 3 ++
package/ck/ck.mk | 71 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 97 insertions(+)
create mode 100644 package/ck/Config.in
create mode 100644 package/ck/ck.hash
create mode 100644 package/ck/ck.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 1f26e9bc81..f967b46842 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2717,6 +2717,9 @@ N: Sergey Matyukevich <sergey.matyukevich@synopsys.com>
F: board/synopsys/nsim/
F: configs/snps_arc700_nsim_defconfig
+N: Sergey Romanov <svromanov@salutedevices.com>
+F: package/ck/
+
N: Sergio Prado <sergio.prado@e-labworks.com>
F: board/toradex/apalis-imx6/
F: configs/toradex_apalis_imx6_defconfig
diff --git a/package/Config.in b/package/Config.in
index 5a3410d758..ed08cb69c6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -91,6 +91,7 @@ menu "Debugging, profiling and benchmark"
source "package/bonnie/Config.in"
source "package/bpftool/Config.in"
source "package/cache-calibrator/Config.in"
+ source "package/ck/Config.in"
source "package/clinfo/Config.in"
source "package/clpeak/Config.in"
source "package/coremark/Config.in"
diff --git a/package/ck/Config.in b/package/ck/Config.in
new file mode 100644
index 0000000000..613a1f4dde
--- /dev/null
+++ b/package/ck/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_CK_ARCH_SUPPORTS
+ bool
+ default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && !BR2_ARM_CPU_ARMV7M
+ default y if BR2_aarch64
+ default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
+ default y if BR2_s390x
+ default y if BR2_sparc_v9
+ default y if BR2_i386
+ default y if BR2_x86_64
+
+config BR2_PACKAGE_CK
+ bool "concurrency kit"
+ depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+ help
+ Concurrency primitives, safe memory reclamation mechanisms
+ and non-blocking data structures for the research, design and
+ implementation of high performance concurrent systems.
+
+ https://github.com/concurrencykit/ck.git
diff --git a/package/ck/ck.hash b/package/ck/ck.hash
new file mode 100644
index 0000000000..6d77ae4bee
--- /dev/null
+++ b/package/ck/ck.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 97d2a21d5326ef79b4668be2e6eda6284ee77a64c0981b35fd9695c736c3d4ac ck-0.7.1.tar.gz
+sha256 21a861f554f8f97047815e63ff5cbd57707b4c53dc1dd1b0f2dd43e6ca193464 LICENSE
diff --git a/package/ck/ck.mk b/package/ck/ck.mk
new file mode 100644
index 0000000000..41827a9636
--- /dev/null
+++ b/package/ck/ck.mk
@@ -0,0 +1,71 @@
+################################################################################
+#
+# ck
+#
+################################################################################
+
+CK_VERSION = 0.7.1
+CK_SITE = $(call github,concurrencykit,ck,$(CK_VERSION))
+CK_LICENSE = Apache-2.0
+CK_LICENSE_FILES = LICENSE
+
+CK_INSTALL_STAGING = YES
+
+CK_CONF_OPTS = \
+ --platform=$(BR2_ARCH) \
+ --prefix="/usr"
+
+CK_LDFLAGS = -Wl,-soname,libck.so.0 -shared -fPIC
+CK_CFLAGS = $(TARGET_CFLAGS) -std=gnu99 -fPIC
+
+ifeq ($(BR2_arm)$(BR2_ARM_CPU_ARMV6),yy)
+CK_CONF_OPTS += --profile="arm"
+CK_CFLAGS += -march=armv6k
+else ifeq ($(BR2_arm)$(BR2_ARM_CPU_ARMV7A),yy)
+CK_CONF_OPTS += --profile="arm"
+CK_CFLAGS += -march=armv7-a
+else ifeq ($(BR2_arm),y)
+CK_CONF_OPTS += --profile="arm"
+else ifeq ($(BR2_aarch64),y)
+CK_CONF_OPTS += --profile="aarch64"
+else ifeq ($(BR2_powerpc),y)
+CK_CONF_OPTS += --profile="ppc"
+else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y)
+CK_CONF_OPTS += --profile="ppc64"
+else ifeq ($(BR2_s390x),y)
+CK_CONF_OPTS += --profile="s390x"
+else ifeq ($(BR2_x86_64),y)
+CK_CONF_OPTS += --profile="x86_64"
+CK_LDFLAGS += -m64
+else ifeq ($(BR2_i386),y)
+CK_CONF_OPTS += --profile="x86"
+else ifeq ($(BR2_sparc_v9),y)
+CK_CONF_OPTS += --profile="sparcv9"
+endif
+
+define CK_CONFIGURE_CMDS
+ cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) \
+ LD=$(TARGET_CC) \
+ CC=$(TARGET_CC) \
+ LDFLAGS="$(CK_LDFLAGS)" \
+ CFLAGS="$(CK_CFLAGS)" \
+ ALL_LIBS="libck.so" \
+ INSTALL_LIBS="install-so" \
+ PTHREAD_CFLAGS="-pthread" \
+ ./configure $(CK_CONF_OPTS)
+endef
+
+define CK_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define CK_INSTALL_TARGET_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+define CK_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+$(eval $(generic-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [RFC PATCH v2 2/2] package/sysbench: new package
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-11-17 9:44 ` Sergey Romanov via buildroot
1 sibling, 0 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17 9:44 UTC (permalink / raw)
To: buildroot
Cc: Sergey Romanov, chip-club, akopytov, kernel, svromanov, sbahra,
sdfw_system_team, thomas.petazzoni
From: Sergey Romanov <svromanov@sberdevices.ru>
This benchmark was designed for identifying basic
system parameters, as they are important for system
using MySQL (w Innodb) under intensive load.
Handling of IO in case of many parallel requests,
checked as well as memory allocation/transfer
speed and scheduler performance.
CPU is benchmarked by using 64bit integer manipulation
using Euklid algorithms for prime number computation.
Benchmarks are designed to show benefit of multiple
CPUs as well as of multiple hard drives,
battery backed up write cache.
https://github.com/akopytov/sysbench.git
Signed-off-by: Sergey Romanov <svromanov@salutedevices.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/sysbench/Config.in | 29 +++++++++++++++++++++++++++++
package/sysbench/sysbench.hash | 3 +++
package/sysbench/sysbench.mk | 31 +++++++++++++++++++++++++++++++
5 files changed, 65 insertions(+)
create mode 100644 package/sysbench/Config.in
create mode 100644 package/sysbench/sysbench.hash
create mode 100644 package/sysbench/sysbench.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index f967b46842..73d4dfe094 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2719,6 +2719,7 @@ F: configs/snps_arc700_nsim_defconfig
N: Sergey Romanov <svromanov@salutedevices.com>
F: package/ck/
+F: package/sysbench/
N: Sergio Prado <sergio.prado@e-labworks.com>
F: board/toradex/apalis-imx6/
diff --git a/package/Config.in b/package/Config.in
index ed08cb69c6..281544900b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -152,6 +152,7 @@ menu "Debugging, profiling and benchmark"
source "package/strace/Config.in"
source "package/stress/Config.in"
source "package/stress-ng/Config.in"
+ source "package/sysbench/Config.in"
source "package/sysdig/Config.in"
source "package/sysprof/Config.in"
source "package/tcf-agent/Config.in"
diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
new file mode 100644
index 0000000000..7e4987497e
--- /dev/null
+++ b/package/sysbench/Config.in
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SYSBENCH_ARCH_SUPPORTS
+ bool
+ default y if !BR2_powerpc
+
+config BR2_PACKAGE_SYSBENCH
+ bool "sysbench"
+ depends on BR2_PACKAGE_SYSBENCH_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+ depends on !BR2_STATIC_LIBS # luajit
+ depends on !BR2_PACKAGE_LUA # luajit
+ depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+
+ select BR2_PACKAGE_LUAJIT
+ select BR2_PACKAGE_CK
+ select BR2_PACKAGE_PKGCONF
+ select BR2_PACKAGE_LIBTOOL
+ help
+ This benchmark was designed for identifying basic system
+ parameters, as they are important for system using MySQL (w
+ Innodb) under intensive load. Handling of IO in case of many
+ parallel requests, checked as well as memory allocation
+ /transfer speed and scheduler performance. CPU is benchmarked
+ by using 64bit integer manipulation using Euklid algorithms
+ for prime number computation. Benchmarks are designed to show
+ benefit of multiple CPUs as well as of multiple hard drives,
+ battery backed up write cache.
+
+ https://github.com/akopytov/sysbench.git
diff --git a/package/sysbench/sysbench.hash b/package/sysbench/sysbench.hash
new file mode 100644
index 0000000000..a31fdb1178
--- /dev/null
+++ b/package/sysbench/sysbench.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 e8ee79b1f399b2d167e6a90de52ccc90e52408f7ade1b9b7135727efe181347f sysbench-1.0.20.tar.gz
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
new file mode 100644
index 0000000000..33e19706e8
--- /dev/null
+++ b/package/sysbench/sysbench.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# SYSBENCH
+#
+################################################################################
+
+SYSBENCH_VERSION = 1.0.20
+SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
+SYSBENCH_LICENSE = GPL-2.0+
+SYSBENCH_LICENSE_FILES = COPYING
+
+SYSBENCH_AUTORECONF = YES
+
+SYSBENCH_DEPENDENCIES += host-pkgconf ck luajit
+
+SYSBENCH_CONF_OPTS += \
+ --without-lib-prefix \
+ --with-system-luajit \
+ --with-system-ck
+
+ifeq ($(BR2_PACKAGE_MYSQL), y)
+SYSBENCH_DEPENDENCIES += mysql
+SYSBENCH_CONF_OPTS += \
+ --with-mysql \
+ --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql \
+ --with-mysql-libs=$(STAGING_DIR)/usr/lib
+else
+SYSBENCH_CONF_OPTS += --without-mysql
+endif
+
+$(eval $(autotools-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-11-17 9:45 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
2023-08-25 21:33 ` Thomas Petazzoni via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
2023-11-17 9:44 ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
2023-08-25 21:37 ` Thomas Petazzoni via buildroot
-- strict thread matches above, loose matches on Subject: below --
2023-05-25 13:23 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov
2023-05-25 13:23 ` [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package Sergey Romanov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox