From patchwork Tue Jun 13 08:17:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 128554 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A8E2942CA4; Tue, 13 Jun 2023 10:17:58 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E848942BB1; Tue, 13 Jun 2023 10:17:56 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 31A0442BB1 for ; Tue, 13 Jun 2023 10:17:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686644274; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5rsFE+5LxAIwrpDmSmfhlJIeMpdaU1ggFVwykkdbiwY=; b=gTaPklNIftHXRNcp0EmGQ66KhA2XoO4ujS9b1repwm+gMkSH1/TZ0Q8RqWhcAByN9YaVFn oQZ6P06BGUzFz+9lDI7ixsStlexDHqN36nWtqLGne7XS2VUsxqNKYZ3m0sEEe7+q0UBJlw AM1Gb9u5Jjepjbv+q2lx22+buhPWQ2Y= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-48-NQdLU4OZN0O1z01JjLcvaQ-1; Tue, 13 Jun 2023 04:17:51 -0400 X-MC-Unique: NQdLU4OZN0O1z01JjLcvaQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 10BE5811E7F; Tue, 13 Jun 2023 08:17:51 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.225.83]) by smtp.corp.redhat.com (Postfix) with ESMTP id DB8C240C20F5; Tue, 13 Jun 2023 08:17:49 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com, stable@dpdk.org, Brian Dooley , Gowrishankar Muthukrishnan Subject: [PATCH 1/4] examples/fips_validation: fix external build Date: Tue, 13 Jun 2023 10:17:38 +0200 Message-Id: <20230613081741.4083273-2-david.marchand@redhat.com> In-Reply-To: <20230613081741.4083273-1-david.marchand@redhat.com> References: <20230613081741.4083273-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Added sources were not referenced in the makefile used when compiling this example externally. Fixes: 36128a67c27e ("examples/fips_validation: add asymmetric validation") Fixes: b455d261eb89 ("examples/fips_validation: validate ECDSA") Cc: stable@dpdk.org Signed-off-by: David Marchand Acked-by: Gowrishankar Muthukrishnan --- examples/fips_validation/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/fips_validation/Makefile b/examples/fips_validation/Makefile index bca6647f55..fbb778d57a 100644 --- a/examples/fips_validation/Makefile +++ b/examples/fips_validation/Makefile @@ -15,6 +15,8 @@ SRCS-y += fips_validation_ccm.c SRCS-y += fips_validation_sha.c SRCS-y += fips_dev_self_test.c SRCS-y += fips_validation_xts.c +SRCS-y += fips_validation_rsa.c +SRCS-y += fips_validation_ecdsa.c SRCS-y += main.c PKGCONF ?= pkg-config From patchwork Tue Jun 13 08:17:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 128555 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DC6C342CA4; Tue, 13 Jun 2023 10:18:04 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F74942C4D; Tue, 13 Jun 2023 10:18:00 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 5613542D0C for ; Tue, 13 Jun 2023 10:17:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686644277; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QwEpOmLLS/u3VX5k2LlhqCuMahOhJbg7bx48K9sHAxQ=; b=X24hFfTYLRD3SEPhSjH1BYSHk4KwcLJ5eMyqIu5AfOtTuGDgaNvpN0gO0Mykl00tutbm1l CkQ6fPUwvkOZfKUZ+W4cG0hH2PRhf67ZwtAdEmZhY2503bm9gPAK1KBafdGR2dbgdu3pUF mWawP1leNwdgPL5rmNlWbEFARbGqn3g= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-221-y4jZ5VB6Mr-5GV-MJ0E9KA-1; Tue, 13 Jun 2023 04:17:54 -0400 X-MC-Unique: y4jZ5VB6Mr-5GV-MJ0E9KA-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4056C101AA42; Tue, 13 Jun 2023 08:17:54 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.225.83]) by smtp.corp.redhat.com (Postfix) with ESMTP id 33450492CAE; Tue, 13 Jun 2023 08:17:53 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com, Byron Marohn , Yipeng Wang Subject: [PATCH 2/4] examples/server_node_efd: simplify build configuration Date: Tue, 13 Jun 2023 10:17:39 +0200 Message-Id: <20230613081741.4083273-3-david.marchand@redhat.com> In-Reply-To: <20230613081741.4083273-1-david.marchand@redhat.com> References: <20230613081741.4083273-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Rename sub directories in this example. This removes the only special case in examples and will ease a next change. Signed-off-by: David Marchand --- doc/guides/sample_app_ug/server_node_efd.rst | 14 +++++++------- examples/meson.build | 4 ++-- examples/server_node_efd/Makefile | 2 +- .../server_node_efd/{node => efd_node}/Makefile | 0 .../server_node_efd/{node => efd_node}/meson.build | 2 -- examples/server_node_efd/{node => efd_node}/node.c | 0 .../{server => efd_server}/Makefile | 0 .../server_node_efd/{server => efd_server}/args.c | 0 .../server_node_efd/{server => efd_server}/args.h | 0 .../server_node_efd/{server => efd_server}/init.c | 0 .../server_node_efd/{server => efd_server}/init.h | 0 .../server_node_efd/{server => efd_server}/main.c | 0 .../{server => efd_server}/meson.build | 2 -- 13 files changed, 10 insertions(+), 14 deletions(-) rename examples/server_node_efd/{node => efd_node}/Makefile (100%) rename examples/server_node_efd/{node => efd_node}/meson.build (95%) rename examples/server_node_efd/{node => efd_node}/node.c (100%) rename examples/server_node_efd/{server => efd_server}/Makefile (100%) rename examples/server_node_efd/{server => efd_server}/args.c (100%) rename examples/server_node_efd/{server => efd_server}/args.h (100%) rename examples/server_node_efd/{server => efd_server}/init.c (100%) rename examples/server_node_efd/{server => efd_server}/init.h (100%) rename examples/server_node_efd/{server => efd_server}/main.c (100%) rename examples/server_node_efd/{server => efd_server}/meson.build (94%) diff --git a/doc/guides/sample_app_ug/server_node_efd.rst b/doc/guides/sample_app_ug/server_node_efd.rst index c6cbc3def6..7253b38da7 100644 --- a/doc/guides/sample_app_ug/server_node_efd.rst +++ b/doc/guides/sample_app_ug/server_node_efd.rst @@ -137,7 +137,7 @@ which is used to distribute packets to nodes, which the number of flows specified in the command line (1 million, by default). -.. literalinclude:: ../../../examples/server_node_efd/server/init.c +.. literalinclude:: ../../../examples/server_node_efd/efd_server/init.c :language: c :start-after: Create EFD table. 8< :end-before: >8 End of creation EFD table. @@ -146,7 +146,7 @@ After initialization, packets are received from the enabled ports, and the IPv4 address from the packets is used as a key to look up in the EFD table, which tells the node where the packet has to be distributed. -.. literalinclude:: ../../../examples/server_node_efd/server/main.c +.. literalinclude:: ../../../examples/server_node_efd/efd_server/main.c :language: c :start-after: Processing packets. 8< :end-before: >8 End of process_packets. @@ -156,7 +156,7 @@ and enqueued in the shared ring between the server and the node. After this, a new burst of packets is received and this process is repeated infinitely. -.. literalinclude:: ../../../examples/server_node_efd/server/main.c +.. literalinclude:: ../../../examples/server_node_efd/efd_server/main.c :language: c :start-after: Flush rx queue. 8< :end-before: >8 End of sending a burst of traffic to a node. @@ -167,7 +167,7 @@ ring with the server and send them out, if they belong to the node. At initialization, it attaches to the server process memory, to have access to the shared ring, parameters and statistics. -.. literalinclude:: ../../../examples/server_node_efd/node/node.c +.. literalinclude:: ../../../examples/server_node_efd/efd_node/node.c :language: c :start-after: Attaching to the server process memory. 8< :end-before: >8 End of attaching to the server process memory. @@ -176,7 +176,7 @@ access to the shared ring, parameters and statistics. Then, the hash table that contains the flows that will be handled by the node is created and populated. -.. literalinclude:: ../../../examples/server_node_efd/node/node.c +.. literalinclude:: ../../../examples/server_node_efd/efd_node/node.c :language: c :start-after: Creation of hash table. 8< :end-before: >8 End of creation of hash table. @@ -188,7 +188,7 @@ If there is a hit, packet is stored in a buffer, to be eventually transmitted in one of the enabled ports. If key is not there, packet is dropped, since the flow is not handled by the node. -.. literalinclude:: ../../../examples/server_node_efd/node/node.c +.. literalinclude:: ../../../examples/server_node_efd/efd_node/node.c :language: c :start-after: Packets dequeued from the shared ring. 8< :end-before: >8 End of packets dequeuing. @@ -196,7 +196,7 @@ flow is not handled by the node. Finally, note that both processes updates statistics, such as transmitted, received and dropped packets, which are shown and refreshed by the server app. -.. literalinclude:: ../../../examples/server_node_efd/server/main.c +.. literalinclude:: ../../../examples/server_node_efd/efd_server/main.c :language: c :start-after: Display recorded statistics. 8< :end-before: >8 End of displaying the recorded statistics. diff --git a/examples/meson.build b/examples/meson.build index 6968c09252..55ba8847a0 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -46,8 +46,8 @@ all_examples = [ 'qos_meter', 'qos_sched', 'rxtx_callbacks', - 'server_node_efd/node', - 'server_node_efd/server', + 'server_node_efd/efd_node', + 'server_node_efd/efd_server', 'service_cores', 'skeleton', 'timer', diff --git a/examples/server_node_efd/Makefile b/examples/server_node_efd/Makefile index e4a4a94a79..6d61c93dac 100644 --- a/examples/server_node_efd/Makefile +++ b/examples/server_node_efd/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2016-2020 Intel Corporation -subdirs := node server +subdirs := efd_node efd_server .PHONY: all static shared clean $(subdirs) all static shared clean: $(subdirs) diff --git a/examples/server_node_efd/node/Makefile b/examples/server_node_efd/efd_node/Makefile similarity index 100% rename from examples/server_node_efd/node/Makefile rename to examples/server_node_efd/efd_node/Makefile diff --git a/examples/server_node_efd/node/meson.build b/examples/server_node_efd/efd_node/meson.build similarity index 95% rename from examples/server_node_efd/node/meson.build rename to examples/server_node_efd/efd_node/meson.build index 1c720968af..b03e65f266 100644 --- a/examples/server_node_efd/node/meson.build +++ b/examples/server_node_efd/efd_node/meson.build @@ -6,8 +6,6 @@ # To build this example as a standalone application with an already-installed # DPDK instance, use 'make' -name = 'efd_node' - allow_experimental_apis = true deps += ['hash'] sources += files('node.c') diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/efd_node/node.c similarity index 100% rename from examples/server_node_efd/node/node.c rename to examples/server_node_efd/efd_node/node.c diff --git a/examples/server_node_efd/server/Makefile b/examples/server_node_efd/efd_server/Makefile similarity index 100% rename from examples/server_node_efd/server/Makefile rename to examples/server_node_efd/efd_server/Makefile diff --git a/examples/server_node_efd/server/args.c b/examples/server_node_efd/efd_server/args.c similarity index 100% rename from examples/server_node_efd/server/args.c rename to examples/server_node_efd/efd_server/args.c diff --git a/examples/server_node_efd/server/args.h b/examples/server_node_efd/efd_server/args.h similarity index 100% rename from examples/server_node_efd/server/args.h rename to examples/server_node_efd/efd_server/args.h diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/efd_server/init.c similarity index 100% rename from examples/server_node_efd/server/init.c rename to examples/server_node_efd/efd_server/init.c diff --git a/examples/server_node_efd/server/init.h b/examples/server_node_efd/efd_server/init.h similarity index 100% rename from examples/server_node_efd/server/init.h rename to examples/server_node_efd/efd_server/init.h diff --git a/examples/server_node_efd/server/main.c b/examples/server_node_efd/efd_server/main.c similarity index 100% rename from examples/server_node_efd/server/main.c rename to examples/server_node_efd/efd_server/main.c diff --git a/examples/server_node_efd/server/meson.build b/examples/server_node_efd/efd_server/meson.build similarity index 94% rename from examples/server_node_efd/server/meson.build rename to examples/server_node_efd/efd_server/meson.build index 7abc333e1d..f1a6616738 100644 --- a/examples/server_node_efd/server/meson.build +++ b/examples/server_node_efd/efd_server/meson.build @@ -6,8 +6,6 @@ # To build this example as a standalone application with an already-installed # DPDK instance, use 'make' -name = 'efd_server' - allow_experimental_apis = true deps += 'efd' sources += files('args.c', 'init.c', 'main.c') From patchwork Tue Jun 13 08:17:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 128556 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 59D8042CA4; Tue, 13 Jun 2023 10:18:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57A0E42D13; Tue, 13 Jun 2023 10:18:02 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 795F74161A for ; Tue, 13 Jun 2023 10:17:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686644279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AyCW4tECNMnCVMwvA1RwFr5GxUCQD7uNugCzfLjJFlw=; b=cWMKHgAdmdD9jJ/7vy1TIhmskToLT7OotNuJD/l0FKa8PG2T24HxrIKISx3up5l2XYktb7 HxTfV14aI/U5i5DbEsLwsZQBM22JSuAzoK+To0dR0C7Y5nOf/iEmtXb8DnnoPtdYsGHdNZ OsPRLNrMQyKWMxiu2vJBVHZl0epN/eQ= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-287-BQdD65nYN6-DC87byYOvXw-1; Tue, 13 Jun 2023 04:17:57 -0400 X-MC-Unique: BQdD65nYN6-DC87byYOvXw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E4576185A793; Tue, 13 Jun 2023 08:17:56 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.225.83]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3094E40C20F5; Tue, 13 Jun 2023 08:17:56 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com Subject: [PATCH 3/4] devtools: build all examples externally Date: Tue, 13 Jun 2023 10:17:40 +0200 Message-Id: <20230613081741.4083273-4-david.marchand@redhat.com> In-Reply-To: <20230613081741.4083273-1-david.marchand@redhat.com> References: <20230613081741.4083273-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org So far, users of test-meson-builds.sh had to define their own set of examples to build externally. This is not that great because users need to maintain this list when examples are removed/added. Rework the script so that the 'all' value triggers an automatic discovery based on what was configured/compiled with meson/ninja. Signed-off-by: David Marchand --- devtools/test-meson-builds.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 9131088c9d..cab3373544 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -299,6 +299,20 @@ export PKG_CONFIG_PATH=$(dirname $pc_file):$PKG_CONFIG_PATH libdir=$(dirname $(find $DESTDIR -name librte_eal.so)) export LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH examples=${DPDK_BUILD_TEST_EXAMPLES:-"cmdline helloworld l2fwd l3fwd skeleton timer"} +if [ "$examples" = 'all' ]; then + examples=$(ninja -C $build_path -t targets all | grep 'examples/.*:.*c_LINKER' | + while read target; do + target=${target%%:*} + target=${target#examples/dpdk-} + if [ -e $srcdir/examples/$target/Makefile ]; then + echo $target + continue + fi + find $srcdir/examples -name Makefile | + sed -ne "s,$srcdir/examples/\([^/]*\)\(/.*\|\)/$target/Makefile,\1,p" + done | sort -u | + tr '\n' ' ') +fi # if pkg-config defines the necessary flags, test building some examples if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then export PKGCONF="pkg-config --define-prefix" From patchwork Tue Jun 13 08:17:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 128557 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA48442CA4; Tue, 13 Jun 2023 10:18:15 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 55A5542D20; Tue, 13 Jun 2023 10:18:05 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 39E5142D10 for ; Tue, 13 Jun 2023 10:18:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686644281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GRiO/BFZn6nZLFAl10rqEkgAQDC8NsJpqn04p77Fa0U=; b=IisjQFXXC6AGfRdSD6uvvX9ryMyQ+KHEJ1iSTnTUy3igN989ZigrwoDr54U5yJTSUQ1bNO c8+A6uajwUjSW73PUQQE9ojOa7eQHo6qbmGV9+wnoV830njWkOq5kUrfQzJEZHAaLAS7Nb uhNIq4tLTr+t3q4BLEPnRiiWs7kIAlk= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-357-upptT8ZlPtaHhrPVC6Mbzw-1; Tue, 13 Jun 2023 04:18:00 -0400 X-MC-Unique: upptT8ZlPtaHhrPVC6Mbzw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0EBFD811E93; Tue, 13 Jun 2023 08:18:00 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.225.83]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0391B40C20F5; Tue, 13 Jun 2023 08:17:58 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com, Aaron Conole , Michael Santana Subject: [PATCH 4/4] ci: build examples externally Date: Tue, 13 Jun 2023 10:17:41 +0200 Message-Id: <20230613081741.4083273-5-david.marchand@redhat.com> In-Reply-To: <20230613081741.4083273-1-david.marchand@redhat.com> References: <20230613081741.4083273-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Enhance our CI coverage by building examples against an installed DPDK. Signed-off-by: David Marchand --- .ci/linux-build.sh | 25 ++++++++++++++++++++++++- .github/workflows/build.yml | 6 +++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index 9631e342b5..1b1f9d07f3 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -1,7 +1,7 @@ #!/bin/sh -xe if [ -z "${DEF_LIB:-}" ]; then - DEF_LIB=static ABI_CHECKS= BUILD_DOCS= RUN_TESTS= $0 + DEF_LIB=static ABI_CHECKS= BUILD_DOCS= BUILD_EXAMPLES= RUN_TESTS= $0 DEF_LIB=shared $0 exit fi @@ -99,6 +99,7 @@ if [ "$MINI" = "true" ]; then else OPTS="$OPTS -Ddisable_libs=" fi +OPTS="$OPTS -Dlibdir=lib" if [ "$ASAN" = "true" ]; then OPTS="$OPTS -Db_sanitize=address" @@ -168,3 +169,25 @@ if [ "$RUN_TESTS" = "true" ]; then catch_coredump [ "$failed" != "true" ] fi + +# Test examples compilation with an installed dpdk +if [ "$BUILD_EXAMPLES" = "true" ]; then + [ -d install ] || DESTDIR=$(pwd)/install ninja -C build install + export LD_LIBRARY_PATH=$(dirname $(find $(pwd)/install -name librte_eal.so)):$LD_LIBRARY_PATH + export PKG_CONFIG_PATH=$(dirname $(find $(pwd)/install -name libdpdk.pc)):$PKG_CONFIG_PATH + export PKGCONF="pkg-config --define-prefix" + ninja -C build -t targets all | grep 'examples/.*:.*c_LINKER' | + while read target; do + target=${target%%:*} + target=${target#examples/dpdk-} + if [ -e examples/$target/Makefile ]; then + echo $target + continue + fi + find examples -name Makefile | + sed -ne "s,examples/\([^/]*\)\(/.*\|\)/$target/Makefile,\1,p" + done | sort -u | + while read example; do + make -C install/usr/local/share/dpdk/examples/$example clean shared + done +fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b629fcdbd..414dd089e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,7 @@ jobs: BUILD_32BIT: ${{ matrix.config.cross == 'i386' }} BUILD_DEBUG: ${{ contains(matrix.config.checks, 'debug') }} BUILD_DOCS: ${{ contains(matrix.config.checks, 'doc') }} + BUILD_EXAMPLES: ${{ contains(matrix.config.checks, 'examples') }} CC: ccache ${{ matrix.config.compiler }} DEF_LIB: ${{ matrix.config.library }} LIBABIGAIL_VERSION: libabigail-2.1 @@ -39,7 +40,7 @@ jobs: mini: mini - os: ubuntu-20.04 compiler: gcc - checks: abi+debug+doc+tests + checks: abi+debug+doc+examples+tests - os: ubuntu-20.04 compiler: clang checks: asan+doc+tests @@ -96,12 +97,11 @@ jobs: - name: Install packages run: sudo apt install -y ccache libarchive-dev libbsd-dev libfdt-dev libibverbs-dev libjansson-dev libnuma-dev libpcap-dev libssl-dev - ninja-build python3-pip python3-pyelftools python3-setuptools + ninja-build pkg-config python3-pip python3-pyelftools python3-setuptools python3-wheel zlib1g-dev - name: Install libabigail build dependencies if no cache is available if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-hit != 'true' run: sudo apt install -y autoconf automake libdw-dev libtool libxml2-dev - pkg-config - name: Install i386 cross compiling packages if: env.BUILD_32BIT == 'true' run: sudo apt install -y gcc-multilib g++-multilib