DPDK patches and discussions
 help / color / mirror / Atom feed
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: dev@dpdk.org
Cc: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Bruce Richardson <bruce.richardson@intel.com>,
	David Marchand <david.marchand@redhat.com>,
	Tyler Retzlaff <roretzla@linux.microsoft.com>
Subject: [PATCH 0/3] RFC fix import/export MSVC data variables
Date: Tue, 12 Mar 2024 00:51:45 -0700	[thread overview]
Message-ID: <1710229908-31704-1-git-send-email-roretzla@linux.microsoft.com> (raw)

MSVC requires that data variables within DPDK to be explicitly exported
and when consumed by applications be explicitly imported. Further, MSVC
and the Microsoft Linker need additional information when exporting
data variables that are thread local storage that cannot be conveyed
through the version.map -> exports.def generation. The generation
script has been updated to allow data exports to be excluded during
a build with MSVC where the intent is to export them via the macros.

This RFC series proposes per-library macro that can be used to mark the
data variables for export so that when processed appropriate declaration
of import or export is achieved either within the dpdk build or by a
consuming application.

I have only supplied an example series that uses the macro on a handful
of variables to demonstrate their use, after feedback on the RFC all
libs will have whatever method is arrived at applied to exported data
variables.

Thanks!

Tyler Retzlaff (3):
  buildtools: ignore exports for MSVC
  eal: import and export data variables for MSVC
  ethdev: import and export data variables for MSVC

 buildtools/map_to_win.py         | 13 +++++++++----
 lib/eal/include/meson.build      |  1 +
 lib/eal/include/rte_common.h     |  8 ++++++++
 lib/eal/include/rte_eal.h        |  2 ++
 lib/eal/include/rte_eal_export.h | 23 +++++++++++++++++++++++
 lib/eal/include/rte_errno.h      |  2 ++
 lib/eal/version.map              |  6 +++---
 lib/ethdev/meson.build           |  1 +
 lib/ethdev/rte_ethdev_core.h     |  3 +++
 lib/ethdev/rte_ethdev_export.h   | 23 +++++++++++++++++++++++
 lib/ethdev/version.map           |  2 +-
 lib/meson.build                  |  6 ++++--
 12 files changed, 80 insertions(+), 10 deletions(-)
 create mode 100644 lib/eal/include/rte_eal_export.h
 create mode 100644 lib/ethdev/rte_ethdev_export.h

-- 
1.8.3.1


             reply	other threads:[~2024-03-12  7:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-12  7:51 Tyler Retzlaff [this message]
2024-03-12  7:51 ` [PATCH 1/3] buildtools: ignore exports for MSVC Tyler Retzlaff
2024-03-12  7:51 ` [PATCH 2/3] eal: import and export data variables " Tyler Retzlaff
2024-03-12  7:51 ` [PATCH 3/3] ethdev: " Tyler Retzlaff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1710229908-31704-1-git-send-email-roretzla@linux.microsoft.com \
    --to=roretzla@linux.microsoft.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).