From patchwork Wed Nov 3 07:36:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 1550135 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hkds45s8Jz9sX3 for ; Wed, 3 Nov 2021 18:37:28 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 4740F40452; Wed, 3 Nov 2021 07:37:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eHmN2RJGmL9R; Wed, 3 Nov 2021 07:37:25 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 744264043B; Wed, 3 Nov 2021 07:37:24 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 1D9F61BF2C6 for ; Wed, 3 Nov 2021 07:37:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 0D419608EE for ; Wed, 3 Nov 2021 07:37:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2lzRhBwiYljG for ; Wed, 3 Nov 2021 07:37:13 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by smtp3.osuosl.org (Postfix) with ESMTPS id A230D608EC for ; Wed, 3 Nov 2021 07:37:12 +0000 (UTC) Received: (Authenticated sender: herve.codina@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPA id 6DDC1240009; Wed, 3 Nov 2021 07:37:10 +0000 (UTC) From: Herve Codina To: buildroot@buildroot.org Date: Wed, 3 Nov 2021 08:36:52 +0100 Message-Id: <20211103073656.1689919-2-herve.codina@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211103073656.1689919-1-herve.codina@bootlin.com> References: <20211103073656.1689919-1-herve.codina@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 1/5] package/alchemy: new host package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Codina?= , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Alchemy is a build system developed by Parrot. It is a new build system based on the one used in Android. A central makefile instance scans a workspace to find user makefiles, includes them and register modules to be built. https://github.com/Parrot-Developers/alchemy Signed-off-by: Herve Codina --- DEVELOPERS | 1 + ...lchains-remove-hash-style-management.patch | 36 +++++++++ package/alchemy/alchemy.hash | 3 + package/alchemy/alchemy.mk | 73 +++++++++++++++++++ 4 files changed, 113 insertions(+) create mode 100644 package/alchemy/0001-toolchains-remove-hash-style-management.patch create mode 100644 package/alchemy/alchemy.hash create mode 100644 package/alchemy/alchemy.mk diff --git a/DEVELOPERS b/DEVELOPERS index 65240615b0..778c5c7e08 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1147,6 +1147,7 @@ N: Henrique Camargo F: package/json-glib/ N: Hervé Codina +F: package/alchemy/ F: package/dtbocfg/ F: package/libdbi/ F: package/libdbi-drivers/ diff --git a/package/alchemy/0001-toolchains-remove-hash-style-management.patch b/package/alchemy/0001-toolchains-remove-hash-style-management.patch new file mode 100644 index 0000000000..522766b977 --- /dev/null +++ b/package/alchemy/0001-toolchains-remove-hash-style-management.patch @@ -0,0 +1,36 @@ +From 4cb9681ab99db3d8e330ac789e17ec69583aecd4 Mon Sep 17 00:00:00 2001 +From: Herve Codina +Date: Thu, 28 Oct 2021 18:39:18 +0200 +Subject: [PATCH] toolchains: remove --hash-style management + +Using an external toolchain, with an external configuration given +using TARGET_GLOBAL_XXXX variables, having '--hash-style=both' +in Alchemy toolchains can lead to compilation failure. + +This patch simply removes all --hash-style settings. + +Signed-off-by: Herve Codina +--- + toolchains/linux/eglibc/flags.mk | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/toolchains/linux/eglibc/flags.mk b/toolchains/linux/eglibc/flags.mk +index 95c0a46..4474729 100644 +--- a/toolchains/linux/eglibc/flags.mk ++++ b/toolchains/linux/eglibc/flags.mk +@@ -11,11 +11,4 @@ TARGET_GLOBAL_LDLIBS += -pthread -lrt + TARGET_GLOBAL_CFLAGS += -funwind-tables + + # Enable link optimization for binutils's ld. +-# gnu hash not supported by mips ABI +-ifeq ("$(TARGET_ARCH)","mips") +- TARGET_GLOBAL_LDFLAGS += -Wl,-O1 +-else ifeq ("$(TARGET_ARCH)","mips64") +- TARGET_GLOBAL_LDFLAGS += -Wl,-O1 +-else +- TARGET_GLOBAL_LDFLAGS += -Wl,-O1,--hash-style=both +-endif ++TARGET_GLOBAL_LDFLAGS += -Wl,-O1 +-- +2.31.1 + diff --git a/package/alchemy/alchemy.hash b/package/alchemy/alchemy.hash new file mode 100644 index 0000000000..7051b65362 --- /dev/null +++ b/package/alchemy/alchemy.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 346c06b9317691a9371d878b850e61f8bcec4f20132ac95340b9d2571be25ee8 alchemy-d95b3c38cd37814a1b98d0bbf813de7adaaecfbc.tar.gz +sha256 542f44eecd9f8806ec1ae285201e442ab547c82d9f8c70e44c977d6332a2bea0 COPYING diff --git a/package/alchemy/alchemy.mk b/package/alchemy/alchemy.mk new file mode 100644 index 0000000000..95912a53a1 --- /dev/null +++ b/package/alchemy/alchemy.mk @@ -0,0 +1,73 @@ +################################################################################ +# +# alchemy +# +################################################################################ + +ALCHEMY_VERSION = d95b3c38cd37814a1b98d0bbf813de7adaaecfbc +ALCHEMY_SITE = $(call github,Parrot-Developers,alchemy,$(ALCHEMY_VERSION)) +ALCHEMY_LICENSE = BSD-3-Clause +ALCHEMY_LICENSE_FILES = COPYING +HOST_ALCHEMY_DEPENDENCIES = host-python3 + +ALCHEMY_SDK_BASEDIR = $(STAGING_DIR)/usr/lib/alchemy/sdk + +define HOST_ALCHEMY_INSTALL_CMDS + rm -rf $(HOST_DIR)/usr/bin/alchemy + mkdir -p $(HOST_DIR)/usr/bin/alchemy + cp -rf $(@D)/* $(HOST_DIR)/usr/bin/alchemy/ + mkdir -p $(ALCHEMY_SDK_BASEDIR) +endef + +$(eval $(host-generic-package)) + +# Variables used by other packages + +ALCHEMY_HOME = $(HOST_DIR)/usr/bin/alchemy +ALCHEMY_MAKE = $(ALCHEMY_HOME)/scripts/alchemake + +ALCHEMY_TARGET_CONFIGURE_ENV = \ + $(TARGET_MAKE_ENV) \ + ALCHEMY_HOME=$(ALCHEMY_HOME) \ + ALCHEMY_WORKSPACE_DIR="$(@D)" \ + ALCHEMY_TARGET_OUT=alchemy-out \ + TARGET_OS=linux \ + TARGET_OS_FLAVOUR=buildroot \ + TARGET_CROSS="$(TARGET_CROSS)" \ + TARGET_ARCH=xxx \ + TARGET_GLOBAL_CXXFLAGS="$(TARGET_CXXFLAGS)" \ + TARGET_GLOBAL_LDFLAGS="$(TARGET_LDFLAGS)" \ + TARGET_GLOBAL_FFLAGS="$(TARGET_FCFLAGS)" \ + TARGET_GLOBAL_FCFLAGS="$(TARGET_FCFLAGS)" + +ifeq ($(BR2_STATIC_LIBS),y) +ALCHEMY_TARGET_CONFIGURE_ENV += TARGET_FORCE_STATIC=1 +ALCHEMY_TARGET_CONFIGURE_ENV += TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS)" +else +ALCHEMY_TARGET_CONFIGURE_ENV += TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS) -fPIC" +endif + +# Configure Alchemy package dependencies. +# This macro can be used by Alchemy packages +# $1: List of Buildroot alchemy package the caller depends on +define ALCHEMY_TARGET_CONFIGURE_SDKS + ALCHEMY_TARGET_SDK_DIRS="$(addprefix $(ALCHEMY_SDK_BASEDIR)/,$(1))" +endef + +# Install an Alchemy SDK file. +# This macro can be used by Alchemy packages +# $1: Buildroot package name +# $2: Alchemy module name +# $3: Alchemy module file name +define ALCHEMY_INSTALL_LIB_SDK_FILE + mkdir -p $(ALCHEMY_SDK_BASEDIR)/$(strip $(1)) + ( \ + echo 'LOCAL_PATH := $$(call my-dir)'; \ + echo 'include $$(CLEAR_VARS)'; \ + echo 'LOCAL_MODULE := $(strip $(2))'; \ + echo 'LOCAL_SDK := $(STAGING_DIR)'; \ + echo 'LOCAL_DESTDIR := usr/lib'; \ + echo 'LOCAL_MODULE_FILENAME := $(strip $(3))'; \ + echo 'include $$(BUILD_LIBRARY)'; \ + ) > $(ALCHEMY_SDK_BASEDIR)/$(strip $(1))/atom.mk +endef From patchwork Wed Nov 3 07:36:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 1550136 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HkdsJ4N4Wz9sX3 for ; Wed, 3 Nov 2021 18:37:40 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 2228A40438; Wed, 3 Nov 2021 07:37:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p7RJeKQgxlV8; Wed, 3 Nov 2021 07:37:37 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 3D4104045C; Wed, 3 Nov 2021 07:37:36 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id A20671BF2C6 for ; Wed, 3 Nov 2021 07:37:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 9E6FB40175 for ; Wed, 3 Nov 2021 07:37:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D3qgtdU4x4dG for ; Wed, 3 Nov 2021 07:37:14 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by smtp2.osuosl.org (Postfix) with ESMTPS id 3C06C400F2 for ; Wed, 3 Nov 2021 07:37:14 +0000 (UTC) Received: (Authenticated sender: herve.codina@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPA id 33E6C240005; Wed, 3 Nov 2021 07:37:11 +0000 (UTC) From: Herve Codina To: buildroot@buildroot.org Date: Wed, 3 Nov 2021 08:36:53 +0100 Message-Id: <20211103073656.1689919-3-herve.codina@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211103073656.1689919-1-herve.codina@bootlin.com> References: <20211103073656.1689919-1-herve.codina@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 2/5] package/ulog: new package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Codina?= , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" The ulog library is a minimalistic logging library derived from Android logger. https://github.com/Parrot-Developers/ulog Signed-off-by: Herve Codina --- DEVELOPERS | 1 + package/Config.in | 1 + package/ulog/Config.in | 12 ++++++++++++ package/ulog/ulog.hash | 3 +++ package/ulog/ulog.mk | 44 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 package/ulog/Config.in create mode 100644 package/ulog/ulog.hash create mode 100644 package/ulog/ulog.mk diff --git a/DEVELOPERS b/DEVELOPERS index 778c5c7e08..33e77285d2 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1152,6 +1152,7 @@ F: package/dtbocfg/ F: package/libdbi/ F: package/libdbi-drivers/ F: package/lua-augeas/ +F: package/ulog/ F: support/testing/tests/package/test_dtbocfg.py F: support/testing/tests/package/test_lua_augeas.py diff --git a/package/Config.in b/package/Config.in index c23755a421..bbf4ea0477 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1704,6 +1704,7 @@ menu "Logging" source "package/log4qt/Config.in" source "package/opentracing-cpp/Config.in" source "package/spdlog/Config.in" + source "package/ulog/Config.in" source "package/zlog/Config.in" endmenu diff --git a/package/ulog/Config.in b/package/ulog/Config.in new file mode 100644 index 0000000000..ef155005c2 --- /dev/null +++ b/package/ulog/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_ULOG + bool "ulog" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + help + This is a minimalistic logging library derived from + Android logger. + + https://github.com/Parrot-Developers/ulog + +comment "ulog needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/ulog/ulog.hash b/package/ulog/ulog.hash new file mode 100644 index 0000000000..47adc093b9 --- /dev/null +++ b/package/ulog/ulog.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 14e5773b32a79fa5380bdc7ac73a39a7cd3ab182830f57cf6f2994fb49cf38dc ulog-0389d243352255f6182326dccdae3d56dadc078f.tar.gz +sha256 cbb97dd2528af2aa2b9aee6c1b3ff1caed758044c17b2c811cf44b2528c496da COPYING diff --git a/package/ulog/ulog.mk b/package/ulog/ulog.mk new file mode 100644 index 0000000000..e84598701b --- /dev/null +++ b/package/ulog/ulog.mk @@ -0,0 +1,44 @@ +################################################################################ +# +# ulog +# +################################################################################ + +ULOG_VERSION = 0389d243352255f6182326dccdae3d56dadc078f +ULOG_SITE = $(call github,Parrot-Developers,ulog,$(ULOG_VERSION)) +ULOG_LICENSE = Apache-2.0 +ULOG_LICENSE_FILES = COPYING +ULOG_DEPENDENCIES = host-alchemy +ULOG_INSTALL_STAGING = YES + +define ULOG_BUILD_CMDS + $(ALCHEMY_TARGET_CONFIGURE_ENV) \ + $(ALCHEMY_MAKE) libulog +endef + +define ULOG_INSTALL_STATIC_LIBS + $(INSTALL) -m 644 $(@D)/alchemy-out/staging/usr/lib/libulog.a $(strip $(1))/usr/lib/ +endef + +define ULOG_INSTALL_HEADERS + cp -Raf $(@D)/libulog/include/* $(strip $(1))/usr/include/ +endef + +ifeq ($(BR2_STATIC_LIBS),) +define ULOG_INSTALL_SHARED_LIBS + $(INSTALL) -m 755 $(@D)/alchemy-out/staging/usr/lib/libulog.so* $(strip $(1))/usr/lib/ +endef +endif + +define ULOG_INSTALL_TARGET_CMDS + $(call ULOG_INSTALL_SHARED_LIBS, $(TARGET_DIR)) +endef + +define ULOG_INSTALL_STAGING_CMDS + $(call ULOG_INSTALL_STATIC_LIBS, $(STAGING_DIR)) + $(call ULOG_INSTALL_SHARED_LIBS, $(STAGING_DIR)) + $(call ULOG_INSTALL_HEADERS, $(STAGING_DIR)) + $(call ALCHEMY_INSTALL_LIB_SDK_FILE, ulog, libulog, libulog.so) +endef + +$(eval $(generic-package)) From patchwork Wed Nov 3 07:36:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 1550137 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HkdsX40Btz9sX3 for ; Wed, 3 Nov 2021 18:37:52 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 49E6D40454; Wed, 3 Nov 2021 07:37:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fyH2WwY4t0so; Wed, 3 Nov 2021 07:37:49 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 2DDA74046B; Wed, 3 Nov 2021 07:37:48 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 079F01BF2C6 for ; Wed, 3 Nov 2021 07:37:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id EB59080E42 for ; Wed, 3 Nov 2021 07:37:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7-nfO6oa3DZC for ; Wed, 3 Nov 2021 07:37:16 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by smtp1.osuosl.org (Postfix) with ESMTPS id B6E5B80E40 for ; Wed, 3 Nov 2021 07:37:15 +0000 (UTC) Received: (Authenticated sender: herve.codina@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPA id 78599240006; Wed, 3 Nov 2021 07:37:13 +0000 (UTC) From: Herve Codina To: buildroot@buildroot.org Date: Wed, 3 Nov 2021 08:36:54 +0100 Message-Id: <20211103073656.1689919-4-herve.codina@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211103073656.1689919-1-herve.codina@bootlin.com> References: <20211103073656.1689919-1-herve.codina@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 3/5] package/libfutils: new package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Codina?= , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" The libfutils library is a library that contains some common useful functions (list, hash, time). https://github.com/Parrot-Developers/libfutils Signed-off-by: Herve Codina --- DEVELOPERS | 1 + package/Config.in | 1 + package/libfutils/Config.in | 14 +++++++++ package/libfutils/libfutils.hash | 3 ++ package/libfutils/libfutils.mk | 50 ++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 package/libfutils/Config.in create mode 100644 package/libfutils/libfutils.hash create mode 100644 package/libfutils/libfutils.mk diff --git a/DEVELOPERS b/DEVELOPERS index 33e77285d2..d0207b5136 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1151,6 +1151,7 @@ F: package/alchemy/ F: package/dtbocfg/ F: package/libdbi/ F: package/libdbi-drivers/ +F: package/libfutils/ F: package/lua-augeas/ F: package/ulog/ F: support/testing/tests/package/test_dtbocfg.py diff --git a/package/Config.in b/package/Config.in index bbf4ea0477..b805b87e0a 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1947,6 +1947,7 @@ menu "Other" source "package/libevdev/Config.in" source "package/libevent/Config.in" source "package/libffi/Config.in" + source "package/libfutils/Config.in" source "package/libgee/Config.in" source "package/libgeos/Config.in" source "package/libglib2/Config.in" diff --git a/package/libfutils/Config.in b/package/libfutils/Config.in new file mode 100644 index 0000000000..0329dd065c --- /dev/null +++ b/package/libfutils/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_LIBFUTILS + bool "libfutils" + depends on BR2_TOOLCHAIN_HAS_ATOMIC + depends on BR2_INSTALL_LIBSTDCPP # ulog + depends on BR2_TOOLCHAIN_HAS_THREADS # ulog + select BR2_PACKAGE_ULOG + help + This library contains some common useful functions (list, + hash, time) + + https://github.com/Parrot-Developers/libfutils + +comment "libfutils needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/libfutils/libfutils.hash b/package/libfutils/libfutils.hash new file mode 100644 index 0000000000..1fdcd84b13 --- /dev/null +++ b/package/libfutils/libfutils.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 b38d40c46b83e448d8c1716ddfb04b7ecd384f5cd2cb773db5c26c0589accdb3 libfutils-c326ce0cc2a7354381265a7664bb215be587fac6.tar.gz +sha256 eca11a1c62fae8d64a1247d93271375baecff8396141d7ff8d89671ee7e3ed0d COPYING diff --git a/package/libfutils/libfutils.mk b/package/libfutils/libfutils.mk new file mode 100644 index 0000000000..2048247db6 --- /dev/null +++ b/package/libfutils/libfutils.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# libfutils +# +################################################################################ + +LIBFUTILS_VERSION = c326ce0cc2a7354381265a7664bb215be587fac6 +LIBFUTILS_SITE = $(call github,Parrot-Developers,libfutils,$(LIBFUTILS_VERSION)) +LIBFUTILS_LICENSE = BSD-3-Clause +LIBFUTILS_LICENSE_FILES = COPYING +LIBFUTILS_DEPENDENCIES = ulog host-alchemy +LIBFUTILS_INSTALL_STAGING = YES + +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) +LIBFUTILS_CONF_ENV += TARGET_GLOBAL_LDLIBS='-latomic' +endif + +define LIBFUTILS_BUILD_CMDS + $(ALCHEMY_TARGET_CONFIGURE_ENV) \ + $(call ALCHEMY_TARGET_CONFIGURE_SDKS, ulog) \ + $(LIBFUTILS_CONF_ENV) \ + $(ALCHEMY_MAKE) libfutils +endef + +define LIBFUTILS_INSTALL_STATIC_LIBS + $(INSTALL) -m 644 $(@D)/alchemy-out/staging/usr/lib/libfutils.a $(strip $(1))/usr/lib/ +endef + +define LIBFUTILS_INSTALL_HEADERS + cp -Raf $(@D)/include/* $(strip $(1))/usr/include/ +endef + +ifeq ($(BR2_STATIC_LIBS),) +define LIBFUTILS_INSTALL_SHARED_LIBS + $(INSTALL) -m 755 $(@D)/alchemy-out/staging/usr/lib/libfutils.so* $(strip $(1))/usr/lib/ +endef +endif + +define LIBFUTILS_INSTALL_TARGET_CMDS + $(call LIBFUTILS_INSTALL_SHARED_LIBS, $(TARGET_DIR)) +endef + +define LIBFUTILS_INSTALL_STAGING_CMDS + $(call LIBFUTILS_INSTALL_STATIC_LIBS, $(STAGING_DIR)) + $(call LIBFUTILS_INSTALL_SHARED_LIBS, $(STAGING_DIR)) + $(call LIBFUTILS_INSTALL_HEADERS, $(STAGING_DIR)) + $(call ALCHEMY_INSTALL_LIB_SDK_FILE, libfutils, libfutils, libfutils.so) +endef + +$(eval $(generic-package)) From patchwork Wed Nov 3 07:36:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 1550138 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hkdsm2zwLz9sX3 for ; Wed, 3 Nov 2021 18:38:04 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 112F9608EC; Wed, 3 Nov 2021 07:38:02 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Idf3NFq6swbo; Wed, 3 Nov 2021 07:38:01 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 39F6B608EE; Wed, 3 Nov 2021 07:38:00 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id C9BE61BF2C6 for ; Wed, 3 Nov 2021 07:37:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id B97734043B for ; Wed, 3 Nov 2021 07:37:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SCGJJTlk7_iD for ; Wed, 3 Nov 2021 07:37:17 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by smtp4.osuosl.org (Postfix) with ESMTPS id 66C8340438 for ; Wed, 3 Nov 2021 07:37:17 +0000 (UTC) Received: (Authenticated sender: herve.codina@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPA id 103F9240005; Wed, 3 Nov 2021 07:37:14 +0000 (UTC) From: Herve Codina To: buildroot@buildroot.org Date: Wed, 3 Nov 2021 08:36:55 +0100 Message-Id: <20211103073656.1689919-5-herve.codina@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211103073656.1689919-1-herve.codina@bootlin.com> References: <20211103073656.1689919-1-herve.codina@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 4/5] package/libshdata: new package X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Codina?= , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" The libshdata library provides lock free shared-memory tools. https://github.com/Parrot-Developers/libshdata The provided patch was submitted upstream. https://github.com/Parrot-Developers/libshdata/issues/1 Signed-off-by: Herve Codina --- DEVELOPERS | 1 + package/Config.in | 1 + ...01-backend-Add-missing-include-files.patch | 44 ++++++++++++++ package/libshdata/Config.in | 23 ++++++++ package/libshdata/libshdata.hash | 3 + package/libshdata/libshdata.mk | 59 +++++++++++++++++++ 6 files changed, 131 insertions(+) create mode 100644 package/libshdata/0001-backend-Add-missing-include-files.patch create mode 100644 package/libshdata/Config.in create mode 100644 package/libshdata/libshdata.hash create mode 100644 package/libshdata/libshdata.mk diff --git a/DEVELOPERS b/DEVELOPERS index d0207b5136..64a2098343 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1152,6 +1152,7 @@ F: package/dtbocfg/ F: package/libdbi/ F: package/libdbi-drivers/ F: package/libfutils/ +F: package/libshdata/ F: package/lua-augeas/ F: package/ulog/ F: support/testing/tests/package/test_dtbocfg.py diff --git a/package/Config.in b/package/Config.in index b805b87e0a..95371dbebb 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1988,6 +1988,7 @@ comment "linux-pam plugins" source "package/libpam-tacplus/Config.in" endif source "package/liquid-dsp/Config.in" + source "package/libshdata/Config.in" source "package/llvm/Config.in" source "package/lttng-libust/Config.in" source "package/matio/Config.in" diff --git a/package/libshdata/0001-backend-Add-missing-include-files.patch b/package/libshdata/0001-backend-Add-missing-include-files.patch new file mode 100644 index 0000000000..75abddbee4 --- /dev/null +++ b/package/libshdata/0001-backend-Add-missing-include-files.patch @@ -0,0 +1,44 @@ +From 3eaf11bd957555674f5993435ef79dd4717ce890 Mon Sep 17 00:00:00 2001 +From: Herve Codina +Date: Tue, 26 Oct 2021 08:45:10 +0200 +Subject: [PATCH] backend: Add missing include files + +With some libc library (musl), shd_dev_mem.c and shd_shm.c do not +compile. Indeed, open() needs (Cf. man open). + +This patch fixes the compilation issue adding this +include file. + +Signed-off-by: Herve Codina +--- + src/backend/shd_dev_mem.c | 1 + + src/backend/shd_shm.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/backend/shd_dev_mem.c b/src/backend/shd_dev_mem.c +index 14573c1..a65f052 100644 +--- a/src/backend/shd_dev_mem.c ++++ b/src/backend/shd_dev_mem.c +@@ -33,6 +33,7 @@ + #include + #include + #include /* For ftruncate */ ++#include /* For open */ + #include /* for flock */ + #include /* For shm and PROT flags */ + #include +diff --git a/src/backend/shd_shm.c b/src/backend/shd_shm.c +index 117bf01..1e5a38c 100644 +--- a/src/backend/shd_shm.c ++++ b/src/backend/shd_shm.c +@@ -35,6 +35,7 @@ + #include + #include + #include /* For ftruncate */ ++#include /* For open */ + #include /* For NAME_MAX macro */ + #include /* for flock */ + #include /* For shm and PROT flags */ +-- +2.31.1 + diff --git a/package/libshdata/Config.in b/package/libshdata/Config.in new file mode 100644 index 0000000000..730fb34dff --- /dev/null +++ b/package/libshdata/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_LIBSHDATA + bool "libshdata" + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on BR2_TOOLCHAIN_HAS_ATOMIC # libfutils + depends on BR2_INSTALL_LIBSTDCPP # libfutils + depends on BR2_TOOLCHAIN_HAS_THREADS # libfutils + select BR2_PACKAGE_LIBFUTILS + help + This library provides lock free shared-memory tools + + https://github.com/Parrot-Developers/libshdata + +comment "libshdata needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS + +if BR2_PACKAGE_LIBSHDATA + +config BR2_PACKAGE_LIBSHDATA_STRESS + bool "libshdata-stress binary" + help + Install libshdata-stress binary as well + +endif diff --git a/package/libshdata/libshdata.hash b/package/libshdata/libshdata.hash new file mode 100644 index 0000000000..880404cf52 --- /dev/null +++ b/package/libshdata/libshdata.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 1ae83ac73c2b5b17c726067737b8d446b99f190e16fe6198eb464368796ecce3 libshdata-d9ec4bdba834d8f3daf6bf9aa6da374bc462961f.tar.gz +sha256 eca11a1c62fae8d64a1247d93271375baecff8396141d7ff8d89671ee7e3ed0d COPYING diff --git a/package/libshdata/libshdata.mk b/package/libshdata/libshdata.mk new file mode 100644 index 0000000000..2506b16c42 --- /dev/null +++ b/package/libshdata/libshdata.mk @@ -0,0 +1,59 @@ +################################################################################ +# +# libshdata +# +################################################################################ + +LIBSHDATA_VERSION = d9ec4bdba834d8f3daf6bf9aa6da374bc462961f +LIBSHDATA_SITE = $(call github,Parrot-Developers,libshdata,$(LIBSHDATA_VERSION)) +LIBSHDATA_LICENSE = BSD-3-Clause +LIBSHDATA_LICENSE_FILES = COPYING +LIBSHDATA_DEPENDENCIES = libfutils host-alchemy +LIBSHDATA_INSTALL_STAGING = YES + +LIBSHDATA_TARGETS = libshdata +ifeq ($(BR2_PACKAGE_LIBSHDATA_STRESS),y) +LIBSHDATA_TARGETS += libshdata-stress +endif + +define LIBSHDATA_BUILD_CMDS + $(ALCHEMY_TARGET_CONFIGURE_ENV) \ + $(call ALCHEMY_TARGET_CONFIGURE_SDKS, libfutils) \ + $(LIBSHDATA_CONF_ENV) \ + $(ALCHEMY_MAKE) $(LIBSHDATA_TARGETS) +endef + +define LIBSHDATA_INSTALL_STATIC_LIBS + $(INSTALL) -m 644 $(@D)/alchemy-out/staging/usr/lib/libshdata.a $(strip $(1))/usr/lib/ + $(INSTALL) -m 644 $(@D)/alchemy-out/staging/usr/lib/libshdata-section-lookup.a $(strip $(1))/usr/lib/ +endef + +define LIBSHDATA_INSTALL_HEADERS + cp -Raf $(@D)/include/* $(strip $(1))/usr/include/ +endef + +ifeq ($(BR2_STATIC_LIBS),) +define LIBSHDATA_INSTALL_SHARED_LIBS + $(INSTALL) -m 755 $(@D)/alchemy-out/staging/usr/lib/libshdata.so* $(strip $(1))/usr/lib/ +endef +endif + +ifeq ($(BR2_PACKAGE_LIBSHDATA_STRESS),y) +define LIBSHDATA_INSTALL_BIN + $(INSTALL) -m 755 $(@D)/alchemy-out/staging/usr/bin/libshdata-stress $(strip $(1))/usr/bin/ +endef +endif + +define LIBSHDATA_INSTALL_TARGET_CMDS + $(call LIBSHDATA_INSTALL_SHARED_LIBS, $(TARGET_DIR)) + $(call LIBSHDATA_INSTALL_BIN, $(TARGET_DIR)) +endef + +define LIBSHDATA_INSTALL_STAGING_CMDS + $(call LIBSHDATA_INSTALL_STATIC_LIBS, $(STAGING_DIR)) + $(call LIBSHDATA_INSTALL_SHARED_LIBS, $(STAGING_DIR)) + $(call LIBSHDATA_INSTALL_HEADERS, $(STAGING_DIR)) + $(call ALCHEMY_INSTALL_LIB_SDK_FILE, libshdata, libshdata, libshdata.so) +endef + +$(eval $(generic-package)) From patchwork Wed Nov 3 07:36:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 1550139 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hkdsz5g7sz9sX3 for ; Wed, 3 Nov 2021 18:38:15 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 845BA80E42; Wed, 3 Nov 2021 07:38:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2i3lBHJyDdBY; Wed, 3 Nov 2021 07:38:12 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id DCB8D80E40; Wed, 3 Nov 2021 07:38:11 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id C5D701BF2C6 for ; Wed, 3 Nov 2021 07:37:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id B63314043B for ; Wed, 3 Nov 2021 07:37:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 826kkoo36lMM for ; Wed, 3 Nov 2021 07:37:19 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by smtp4.osuosl.org (Postfix) with ESMTPS id F1BE940438 for ; Wed, 3 Nov 2021 07:37:18 +0000 (UTC) Received: (Authenticated sender: herve.codina@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPA id B17C1240006; Wed, 3 Nov 2021 07:37:16 +0000 (UTC) From: Herve Codina To: buildroot@buildroot.org Date: Wed, 3 Nov 2021 08:36:56 +0100 Message-Id: <20211103073656.1689919-6-herve.codina@bootlin.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211103073656.1689919-1-herve.codina@bootlin.com> References: <20211103073656.1689919-1-herve.codina@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 5/5] support/testing/tests/package/test_libshdata: new test X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Herv=C3=A9_Codina?= , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" This new test ensures that libraries and binaries generated using Parrot Alchemy build system are correct. Indeed, the test uses libshdata-stress. This binary depends on libshdata. libshdata depends on libfutils and libfutils depends on ulog. All of these binaries and libraries are built using Alchemy. Signed-off-by: Herve Codina --- DEVELOPERS | 1 + .../testing/tests/package/test_libshdata.py | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 support/testing/tests/package/test_libshdata.py diff --git a/DEVELOPERS b/DEVELOPERS index 64a2098343..3a5b24f73d 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1156,6 +1156,7 @@ F: package/libshdata/ F: package/lua-augeas/ F: package/ulog/ F: support/testing/tests/package/test_dtbocfg.py +F: support/testing/tests/package/test_libshdata.py F: support/testing/tests/package/test_lua_augeas.py N: Hervé Codina diff --git a/support/testing/tests/package/test_libshdata.py b/support/testing/tests/package/test_libshdata.py new file mode 100644 index 0000000000..80b032ac69 --- /dev/null +++ b/support/testing/tests/package/test_libshdata.py @@ -0,0 +1,25 @@ +import os + +import infra.basetest + + +class TestLibshdata(infra.basetest.BRTest): + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + """ + BR2_PACKAGE_LIBSHDATA=y + BR2_PACKAGE_LIBSHDATA_STRESS=y + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + """ + + def test_run(self): + img = os.path.join(self.builddir, "images", "rootfs.cpio") + self.emulator.boot(arch="armv5", + kernel="builtin", + options=["-initrd", img]) + self.emulator.login() + + # Just run libshdata-stress. + # This ensures that library are well compiled and that all dependencies + # are met using Parrot Alchemy build system. + self.assertRunOk("libshdata-stress")