From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AC45145DB6; Wed, 27 Nov 2024 12:26:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 776964025D; Wed, 27 Nov 2024 12:26:58 +0100 (CET) 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 D14B6400D6 for ; Wed, 27 Nov 2024 12:26:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1732706816; 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; bh=/+YI7ncCx0sQJrKbam8NEpJneN4kbMT6l9zvN04DsH4=; b=CtQ/bgOoo46Qre3QuN/IsjsssWLO7jP+T4j8ZTmZ2FI89SzmEwPzCSs1DpjwSCNMKp5To+ d2WiAAxjmo4DFODs/QWRE5m8/8QBfrrc/oSltdx2N6VFq0Ug4jwKfqqnsht5+S/TzKH9rX ALnpeOFSdqBWJ0T2vHILQU/f1GXf1EQ= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-163-M8eqYJQ7OdmVjuXFf_Bt8A-1; Wed, 27 Nov 2024 06:26:51 -0500 X-MC-Unique: M8eqYJQ7OdmVjuXFf_Bt8A-1 X-Mimecast-MFC-AGG-ID: M8eqYJQ7OdmVjuXFf_Bt8A Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1587D1955F08; Wed, 27 Nov 2024 11:26:50 +0000 (UTC) Received: from dmarchan.redhat.com (unknown [10.45.225.129]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8B515195E480; Wed, 27 Nov 2024 11:26:48 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com Subject: [RFC 0/6] Add a stricter headers check Date: Wed, 27 Nov 2024 12:26:10 +0100 Message-ID: <20241127112617.1331125-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: hDz-EOwElPp_rOJq5kLQxKiMQNkcYcVlo-rtZaaQwBY_1732706810 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true 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 As explained in patch 6, the current headers check can not catch issues when a public header includes an internal header. Fixing this from meson does not seem an easy task. The approach of this RFC is to reimplement the check in a Makefile invoked out of DPDK (like what is done for external compilation of examples). This has the advantage of being simple, and avoiding any (non intentional) implicit include path coming from the meson framework. As there was no easy way to distinguish "indirect" headers in an installed DPDK, I chose to move those headers in a new sub directory (patch 5). Patch 1-4 fixes have not been marked as backport material as those bugs seems minor/easy to fix externally (by either including missing headers, or enabling enable_driver_sdk option). For now, I left the check_includes= option untouched, as there may be users of this check and this check still catches issues without requiring to install DPDK. -- David Marchand David Marchand (6): baseband/acc: fix exported header drivers: drop export of driver headers eventdev: do not include driver header in DMA adapter drivers: fix exported headers build: install indirect headers to a dedicated directory buildtools: externally check exported headers .ci/linux-build.sh | 7 +- buildtools/chkincs/Makefile | 77 +++++++++++++++++++ buildtools/pkg-config/meson.build | 8 +- devtools/test-meson-builds.sh | 6 +- drivers/baseband/acc/meson.build | 2 +- drivers/bus/vmbus/rte_vmbus_reg.h | 6 ++ drivers/crypto/cnxk/rte_pmd_cnxk_crypto.h | 4 + drivers/net/dpaa/rte_pmd_dpaa.h | 2 + drivers/net/iavf/rte_pmd_iavf.h | 6 ++ drivers/net/mlx5/rte_pmd_mlx5.h | 3 + drivers/raw/cnxk_bphy/rte_pmd_bphy.h | 16 ++++ drivers/raw/cnxk_gpio/rte_pmd_cnxk_gpio.h | 3 + drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h | 2 + drivers/raw/ntb/rte_pmd_ntb.h | 2 + lib/bbdev/meson.build | 5 +- lib/eal/x86/include/meson.build | 3 +- lib/ethdev/meson.build | 6 +- lib/eventdev/rte_event_dma_adapter.h | 2 +- lib/meson.build | 2 +- lib/mldev/meson.build | 5 +- lib/rawdev/meson.build | 3 +- lib/regexdev/meson.build | 3 +- lib/security/meson.build | 3 +- 23 files changed, 153 insertions(+), 23 deletions(-) create mode 100644 buildtools/chkincs/Makefile -- 2.47.0