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 311654640F; Tue, 18 Mar 2025 10:13:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ABAF9402C4; Tue, 18 Mar 2025 10:13:07 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2071.outbound.protection.outlook.com [40.107.236.71]) by mails.dpdk.org (Postfix) with ESMTP id 61C4640291 for ; Tue, 18 Mar 2025 10:13:06 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jZi5F7L7VrN5yBALDSAs6kJYjA/CZSBr8DG5kAXb9XQ9QFeJXmQP4SeXZtigehOS0SztD+9eSNHhO7BY9BP9rU3NpneYiK6uPjagrCv0C26GOdbAeUzcbMK5lx0FJNDBDW2JMZpiNycCCyGZveTmx6cORh9RfH49R3W1CbRiHnGUiTcNflRXoXho1E5+kVI5hiwWJm1Z3S+inLxSLJVhdiBs35A9HqMTctsW9A9ONweJWSWFb10gCNrD1UoWD48rWmZ03EHZo68ZCxOyP9jb740pqSN/16j+ghWx/xgwd6aTPknbp8bxNFxt74LxGXomCbHNDi7+jOmKu5BQ7e0Z1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bPtCFSLLCYgccDlfxotDUP5I4+9HdxR4GbeN1+bFEFA=; b=I1OHaESJJhFZh+YZ2f46/bAAjERJjXGExGc3qvilLaxz5iLAplQK4d1B3JL3nwPQ7b493aK+PCmwc5eEmgwpWQCKSYjnmlKRh6BIRZ/dQlZSJqYUj97d2VlfwmJeh02ori5qzJw4z25J9xNNmvzAO1cZs+WpTwFxXj659t6BZ5Idv34zbxrDNbBhbclJRAgYIRXEKOv/XZUIyZ4j7VrDo2MQbpIMR5mxmqeaIMUcFMzPj1jh6hnU1Jaug7F9KO02R+XXkXdrf1iScb/9iUqFUlH7Mjjk7gQozUoc/41x4pWxnhxDe4wsJ9HDKaW+iu7rxdclZWDTq564wPPpaK4rqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bPtCFSLLCYgccDlfxotDUP5I4+9HdxR4GbeN1+bFEFA=; b=V7DGYixNctph1IdeUqcLDHVWYPtyRBg0cMrxEA/NvJYJYdChWlkmlNLKaDe5hUZuvWVvcR1kOlp2PBgoDN0Uh2vzVcZ1Q+JhzYPk0ICFdJv5ha/tkRr2Ma6dKTvaxhnXfug8poIwYUDd5Y+0Ibu30+DZR3lkAuOtzJiNah6kukQYoAUnjR/LjwbgLv1Dnei8XiQOxdASrxOqMV9+z7qtI6B4tQY+n56QA8sOtzlevxGYDUsZPLcBPjHFcw4wBKHy/bwPXhbRg0f1je8HROEfZkY30i3L7uMDznimNMTWMmzAqQfbOiGFjwj8+v73nfh5MzAL0zMrY48JJGgt1Qghyg== Received: from PH7P220CA0164.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:33b::7) by DM4PR12MB6639.namprd12.prod.outlook.com (2603:10b6:8:be::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.34; Tue, 18 Mar 2025 09:13:01 +0000 Received: from MWH0EPF000A6731.namprd04.prod.outlook.com (2603:10b6:510:33b:cafe::53) by PH7P220CA0164.outlook.office365.com (2603:10b6:510:33b::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Tue, 18 Mar 2025 09:13:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by MWH0EPF000A6731.mail.protection.outlook.com (10.167.249.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Tue, 18 Mar 2025 09:13:00 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 18 Mar 2025 02:12:46 -0700 Received: from localhost (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 18 Mar 2025 02:12:45 -0700 Date: Tue, 18 Mar 2025 10:12:40 +0100 From: Dariusz Sosnowski To: Gregory Etelson CC: , , , , , , Subject: Re: [PATCH v3] rust: support raw DPDK API Message-ID: <20250318091240.hou7mwcjexlqlgqi@ds-vm-debian.local> References: <20250306133713.393057-1-getelson@nvidia.com> <20250314183815.246612-1-getelson@nvidia.com> <20250318084723.qb53zqp4yelscdgy@ds-vm-debian.local> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20250318084723.qb53zqp4yelscdgy@ds-vm-debian.local> X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A6731:EE_|DM4PR12MB6639:EE_ X-MS-Office365-Filtering-Correlation-Id: 27dfd44c-1685-4e48-a1ac-08dd65fd14f2 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|1800799024|36860700013|376014|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FT0gpjLN3Sx63YnTOousRZgM4WrquK1rMPNtxcDq0PLaJI7UJkuVZmlazWgb?= =?us-ascii?Q?wMXh7RmD2lOPWLsZnHYLtJlA8e+k/te7eUNoqx9iSmZ2P3+UnL36fHFOvV1p?= =?us-ascii?Q?0zfE9XLTCWe0Wh4Zf7XTTDaYYxCzS3Szd8bT0vs0WT4AC89BynDgEdDK51cp?= =?us-ascii?Q?wlv8mlS1XO0oCNUCcTSrScXb6CrQIWAMjxcltHUGuXwzrtw6XNPKjZO6h3Vy?= =?us-ascii?Q?O7EDZZwxTq1CRjoDdHpH7bbBJrorc1C9oSL3U7sEjkwlbsSOq18Iq8xsO4DA?= =?us-ascii?Q?YZgmNFD070sYL26HZxYR/nrAwWD2d/3FqPkJvvHONAPb9Mmc/HYPEUvuEQvw?= =?us-ascii?Q?O/GAeMcE4h4C43QuI33iK+33sXfKwoso2r2E9Xg6BkXyl1jH4hqqhfO27JL+?= =?us-ascii?Q?Ng+MrjRJGk00BuO56DriHe67ZtrAan+m0Acq6/Hpg0fQXsxFrdVlOxaxTSUV?= =?us-ascii?Q?KC2LMdQRPS9RzK6tAN4IOCQKczTLfAlQW4kMYGdoBcDAMoqtvh+guMGwRX+p?= =?us-ascii?Q?DS/F16PHa1HrVFC5WYb1K/6I/CSP/g+jJSQRPDfCvSuuLsp9bFjBHFk2Ylcl?= =?us-ascii?Q?rJis22RvyPEJW5JElUNlO1FPBwlFR7poujJXMC984QaDxHW3EAvjGezCtY6X?= =?us-ascii?Q?tc8bIZYYhFtgMDdesmEA0dkPbkMT5MuUT+eshFrOa4A+Gg8HDCusdpQlTLNy?= =?us-ascii?Q?u64AGb4bfsJ2Cxg2ebe6ppgccceKvjtoCUofMQRiLEu2djvXxxXewDTvZgCg?= =?us-ascii?Q?JhlKzIn1gFimdu+Cory0UdnOAJEdipFdQPTWKaVAQFw+vfjM5T7rpW09RcYR?= =?us-ascii?Q?I2DlMtu4INmJLaHdK9TWxjR1VWfLNGoUcl/sQ3l3U3laCeECUUlyThMeGHGZ?= =?us-ascii?Q?NNXbJYA1CqC39sdrsEERr6/RmT931JUiJoEvN52fKma/7DWf9BsHnsJCHC6j?= =?us-ascii?Q?mFKIPaPfQhFmdj1JDOBZdmydYo5UpENwpC+ctvDRd2mMGvGzYrQjJBDErlNr?= =?us-ascii?Q?MHBOvzG8zuM7UK/a2cwE6TaHm8Hcuk68ijiUeUuIdUPqJBCha5Ec5k+xeWWu?= =?us-ascii?Q?PvbNWgWAunZw8DfgTe6Fn4VB4VHCezKLhyWDVfQt01fSm6uuHGcKud6sFaFi?= =?us-ascii?Q?bgL7GMsxcv6brAEsHP7JM+NDUKGTCroFQZ3kkGoIyImOxmpTBX1/ggU4et3D?= =?us-ascii?Q?hp3+nsCSwMn/HrQYgvvkA8uj/s5oMYX3H5O7qYis8z67zTq9QVW8/1w+oEAQ?= =?us-ascii?Q?HWXzwI/uD7FhSzyfW+tFtgZhbb5gNS70dJWA9cRwF7uxtFcZnS3JbyeLHBZa?= =?us-ascii?Q?XInqYg+umKGM7Bc8iWnFs1qeysw95+gjiB6cmn9V3SivO63HgCP+vLEl0Rcb?= =?us-ascii?Q?nvD4UUg+TS81+TO05iFfRkyMzLvujmHPIZbS8b6r6+AtMQ+GbINd6F5cNSzP?= =?us-ascii?Q?xxacpEk1pq2QwE6pBQlFpqC/i9FGakItfNDJ+fVXSd2AeyL/LfZ5qHfISLyB?= =?us-ascii?Q?1Q6S2r6yqzejB+Q=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2025 09:13:00.8742 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27dfd44c-1685-4e48-a1ac-08dd65fd14f2 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A6731.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6639 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 On Tue, Mar 18, 2025 at 09:51:05AM +0100, Dariusz Sosnowski wrote: > > +use std::process::Command; > > + > > +pub fn main() { > > + let mut pkgconfig = Command::new("pkg-config"); > > + > > + match pkgconfig.args(["--libs", "libdpdk"]).output() { > > + Ok(output) => { > > + let stdout = String::from_utf8_lossy(&output.stdout) > > + .trim_end() > > + .to_string(); > > + for token in stdout.split_ascii_whitespace().filter(|s| !s.is_empty()) { > > + if token.starts_with("-L") { > > + println!("cargo::rustc-link-search=native={}", &token[2..]); > > + } else if token.starts_with("-l") { > > + println!("cargo::rustc-link-lib={}", &token[2..]); > > + } > > + } > > + println!("cargo:rerun-if-changed=build.rs"); > > + } > > + Err(error) => { > > + panic!("failed to read libdpdk package: {:?}", error); > > + } > > + } > > +} > > > What do you think about using pkg_config crate in build scripts? > (https://crates.io/crates/pkg-config) > > This would allow to remove manual command execution and output parsing with the following: > > fn main() { > pkg_config::probe_library("libdpdk").expect("Unable to find libdpdk"); > } > > Also, what do you think about moving this logic to dpdk crate? > This way dependency resolution would be shared by all examples/applications > which use the dpdk crate. I just noticed that similar proposal was raised by Harry previously. Sorry for the duplication :)