From patchwork Fri Apr 23 16:16:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Asaf Kahlon X-Patchwork-Id: 1469660 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=busybox.net (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=bHcezq56; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4FRfYx148xz9sW5 for ; Sat, 24 Apr 2021 02:16:37 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id B246D84353; Fri, 23 Apr 2021 16:16:32 +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 qg59Rv3bsInp; Fri, 23 Apr 2021 16:16:31 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id 0321084358; Fri, 23 Apr 2021 16:16:31 +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 804AF1BF286 for ; Fri, 23 Apr 2021 16:16:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6FA67615E2 for ; Fri, 23 Apr 2021 16:16:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com 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 KfNqgKwrG38c for ; Fri, 23 Apr 2021 16:16:28 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by smtp3.osuosl.org (Postfix) with ESMTPS id 2D67D60DE5 for ; Fri, 23 Apr 2021 16:16:28 +0000 (UTC) Received: by mail-wm1-x32c.google.com with SMTP id u187so6833381wmb.0 for ; Fri, 23 Apr 2021 09:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jGK50MhbZ/q0mv/fVhNdB7NXnecC+K3yLOSX4L7aJ7g=; b=bHcezq567AmV0zjUjNkcwWU+XUMm3An13vFv4PnKVVvSkIAbNKmFcu7uz4+Kk4jchb MITIjAsB6yWiLl/Ji632peJnq/jISnDBEYUWsfx2VfSJjuCMS4uRErDyJfczl0wcDMiu SJeEE4vS7ERv/59/voivdE70P8gSh9e8SikCUEF1vhNUCUEi86O2zg0D+qWror8J+HOB JgBzBWoTrq76xqrxX1N+OyowouVhTo104i/4L5+KO+efQv0X7vLed9i1E4s/IHVPmao8 y/Pfcjer8ikXLtOVK7oTOFUpw7NAJySyzGTUy2IdjcXCJKyXZPiebv13JM6wJWkZHewL /pHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jGK50MhbZ/q0mv/fVhNdB7NXnecC+K3yLOSX4L7aJ7g=; b=CJnbD1fD3Is5l1sVF/pBLL2YQInvCeA6DSgEbK6cJXeVZOabTWPvpabt+stncWm3lb lfr9ZD9uf2XzRsW8pUNRedvYKmg5p5U9LWIoyTCXBN4+UMSsHtepQs8ieKmun5DDaxPr q2cq/T6jlrno6Us//45eKgLt+iS+lsw0JHfUqYxuVpuTxDJKgqjeDHDqlZQjWJ4z3QCi Fbsb3W5b76wZCvCfLGJr8/G40dLVsWC/u1LF3RK2ARFjgJKuiIlvGwmmTksXYYUht5Vh UazYefZJVyOfHU5dh2NjsKg22fC9gTyPxOIeacJmAdX/fo7ymoSPheQTpcVm6EwR2CpE mW/g== X-Gm-Message-State: AOAM533j8fM0MorXbd4NIb6qmS5HxS/Rb5OzJrGJ9Nio7WuCECOc0TnI 5m/3dA9ZCHOdKFhLe9T9ddinY+uqetuq6cVY X-Google-Smtp-Source: ABdhPJwV7rvppC+dhkDCLCnHQDVAvvF7ll7lknFHzVy/bcSdjEsnm5MWuS6xUSrDwfr2ekzNrcsmZA== X-Received: by 2002:a1c:e309:: with SMTP id a9mr5014162wmh.63.1619194586211; Fri, 23 Apr 2021 09:16:26 -0700 (PDT) Received: from asaf.. ([2a10:8002:6b25:0:22a2:eabe:232d:e651]) by smtp.gmail.com with ESMTPSA id y17sm10354521wrq.76.2021.04.23.09.16.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Apr 2021 09:16:25 -0700 (PDT) From: Asaf Kahlon To: buildroot@buildroot.org Date: Fri, 23 Apr 2021 19:16:20 +0300 Message-Id: <20210423161620.117894-1-asafka7@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v3 1/1] package/uftrace: new package X-BeenThere: buildroot@busybox.net 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: Asaf Kahlon , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" The uftrace tool is to trace and analyze execution of a program written in C/C++. Signed-off-by: Asaf Kahlon --- v2->v3: * Run the configure script from UFTRACE_CONFIGURE_CMDS * Support only ARM>=v6 Signed-off-by: Asaf Kahlon --- DEVELOPERS | 1 + package/Config.in | 1 + package/uftrace/Config.in | 19 +++++++++++++++++++ package/uftrace/uftrace.hash | 3 +++ package/uftrace/uftrace.mk | 36 ++++++++++++++++++++++++++++++++++++ 5 files changed, 60 insertions(+) create mode 100644 package/uftrace/Config.in create mode 100644 package/uftrace/uftrace.hash create mode 100644 package/uftrace/uftrace.mk diff --git a/DEVELOPERS b/DEVELOPERS index 95b52d76be..573d8d84de 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -240,6 +240,7 @@ F: package/python* F: package/snmpclitools/ F: package/spdlog/ F: package/uftp/ +F: package/uftrace/ F: package/uvw/ F: package/zeromq/ diff --git a/package/Config.in b/package/Config.in index b9d277428d..6181aaac2c 100644 --- a/package/Config.in +++ b/package/Config.in @@ -144,6 +144,7 @@ menu "Debugging, profiling and benchmark" source "package/trace-cmd/Config.in" source "package/trinity/Config.in" source "package/uclibc-ng-test/Config.in" + source "package/uftrace/Config.in" source "package/valgrind/Config.in" source "package/vmtouch/Config.in" source "package/whetstone/Config.in" diff --git a/package/uftrace/Config.in b/package/uftrace/Config.in new file mode 100644 index 0000000000..a8c6b4ff8a --- /dev/null +++ b/package/uftrace/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS + bool + default y if BR2_ARM_CPU_ARMV6 || BR2_ARM_CPU_ARMV7A + default y if BR2_aarch64 + default y if BR2_i386 + default y if BR2_x86_64 + +config BR2_PACKAGE_UFTRACE + bool "uftrace" + depends on BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS + help + The uftrace tool is to trace and analyze execution of a + program written in C/C++. It was heavily inspired by the + ftrace framework of the Linux kernel (especially function + graph tracer) and supports userspace programs. + It supports various kind of commands and filters to help + analysis of the program execution and performance. + + https://github.com/namhyung/uftrace diff --git a/package/uftrace/uftrace.hash b/package/uftrace/uftrace.hash new file mode 100644 index 0000000000..fb1e116be6 --- /dev/null +++ b/package/uftrace/uftrace.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 418d30c959d3b6d0dcafd55e588a5d414a9984b30f2522a5af004a268824a5a2 uftrace-0.9.4.tar.gz +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING diff --git a/package/uftrace/uftrace.mk b/package/uftrace/uftrace.mk new file mode 100644 index 0000000000..c542255945 --- /dev/null +++ b/package/uftrace/uftrace.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# uftrace +# +################################################################################ + +UFTRACE_VERSION = 0.9.4 +UFTRACE_SITE = $(call github,namhyung,uftrace,v$(UFTRACE_VERSION)) +UFTRACE_LICENSE = GPL-2.0 +UFTRACE_LICENSE_FILES = COPYING + +# uftrace always compiles a small test program to check if elfutils exists, so +# there's no special flag for it, we just need to make sure it's installed. +ifeq ($(BR2_PACKAGE_ELFUTILS),y) +UFTRACE_DEPENDENCIES += elfutils +else +UFTRACE_CONFIGURE_OPTS = --without-libelf +endif + +define UFTRACE_CONFIGURE_CMDS + (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure \ + --arch=$(BR2_ARCH) \ + --prefix=/usr \ + $(UFTRACE_CONFIGURE_OPTS) \ + -o $(@D)/.config) +endef + +define UFTRACE_BUILD_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) +endef + +define UFTRACE_INSTALL_TARGET_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install +endef + +$(eval $(generic-package))