From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Nick Connolly <nick.connolly@mayadata.io>,
dev@dpdk.org, Tyler Retzlaff <roretzla@microsoft.com>,
Jerin Jacob <jerinj@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>
Subject: Re: [dpdk-dev] [PATCH v2 1/7] eal: add wrappers for POSIX string functions
Date: Sat, 27 Feb 2021 23:23:27 +0300 [thread overview]
Message-ID: <20210227232327.1ac69729@sovereign> (raw)
In-Reply-To: <20210223094502.GB79@bricha3-MOBL.ger.corp.intel.com>
2021-02-23 09:45, Bruce Richardson:
> On Tue, Feb 23, 2021 at 01:57:50AM +0300, Dmitry Kozlyuk wrote:
> > 2021-02-22 14:26, Bruce Richardson:
> > > As you say, though, the main issue will be whether we have instances in
> > > public header files or not. I would hope that no static inline functions in
> > > DPDK use any of the functions in question, but I'm not sure. Perhaps if
> > > there are instances in public headers those could be reworked to not use
> > > the problematic functions.
> >
> > No instances of strdup(), strncasecmp(), or strtok_r() in any DPDK headers.
> >
> > > For any functions, such as strdup, which are not in a public header I would
> > > suggest the following as a possible start point, based off what was done
> > > for strlcpy.
> > >
> > > * In DPDK (probably EAL), define an rte_strdup function for use as a
> > > fallback.
> > > * Inside the meson build scripts, use "cc.has_function()" to check if the
> > > regular strdup function is available. If not, then add "-DRTE_NO_STRDUP"
> > > to the c_args for DPDK building
> > > * Inside our DPDK header (rte_string_fns.h in the strdup case), we can add
> > > a conditional define such as:
> > > #ifdef RTE_NO_STRDUP
> > > #define strdup(s) rte_strdup(s)
> > > #endif
> > >
> > > Thoughts on this?
> >
> > Looks good to me, I can rework the patchset like so.
> >
> > Policy considerations:
> > 1. The approach only applies to platform-agnostic functions, like str*().
> > Functions like sleep() still belong to librte_eal.
> > 2. Deprecated functions, like index(3p), should be replaced
> > with alternatives suggested by the standard.
> > 3. If a standard C11 alternative is available, it should be used.
> > This mostly applies to types, like u_int32 -> uint32_t
> > (it's even in DPDK coding style already, isn't it?).
> >
> > A nit: RTE_NO_XXX -> RTE_HAS_XXX (for consistency with existing macros)?
>
> Sure, thanks.
There's a meson issue with `cc.has_function()`:
https://github.com/mesonbuild/meson/issues/5628
What if we just define RTE_INTERNAL for librte_eal/windows/include/rte_os.h
(and other public headers if need be) to distinguish the case when it's used
from within DPDK?
next prev parent reply other threads:[~2021-02-27 20:23 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-20 23:29 [dpdk-dev] [PATCH 0/7] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 1/7] eal: add wrappers for POSIX string functions Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 2/7] eal: add macro for maximum path length Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 3/7] eal: add sleep API Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 4/7] eal: add asprintf() internal wrapper Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 5/7] lib: remove POSIX dependencies Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 6/7] drivers: " Dmitry Kozlyuk
2021-02-20 23:29 ` [dpdk-dev] [PATCH 7/7] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 0/7] " Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 1/7] eal: add wrappers for POSIX string functions Dmitry Kozlyuk
2021-02-22 11:47 ` Bruce Richardson
2021-02-22 12:48 ` Nick Connolly
2021-02-22 14:26 ` Bruce Richardson
2021-02-22 18:21 ` Nick Connolly
2021-02-22 22:57 ` Dmitry Kozlyuk
2021-02-23 9:45 ` Bruce Richardson
2021-02-27 20:23 ` Dmitry Kozlyuk [this message]
2021-03-01 21:31 ` Nick Connolly
2021-03-02 0:22 ` Dmitry Kozlyuk
2021-03-02 11:27 ` Nick Connolly
2021-03-16 9:51 ` Thomas Monjalon
2021-02-22 18:07 ` Tyler Retzlaff
2021-02-22 18:36 ` Nick Connolly
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 2/7] eal: add macro for maximum path length Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 3/7] eal: add sleep API Dmitry Kozlyuk
2021-02-21 8:58 ` Tal Shnaiderman
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 4/7] eal: add asprintf() internal wrapper Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 5/7] lib: remove POSIX dependencies Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 6/7] drivers: " Dmitry Kozlyuk
2021-02-21 8:59 ` Tal Shnaiderman
2021-02-21 15:54 ` Andrew Rybchenko
2021-02-21 17:05 ` Dmitry Kozlyuk
2021-02-21 1:28 ` [dpdk-dev] [PATCH v2 7/7] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-02-21 8:59 ` Tal Shnaiderman
2021-02-21 10:24 ` Dmitry Kozlyuk
2021-02-21 11:58 ` Tal Shnaiderman
2021-02-21 14:33 ` Dmitry Kozlyuk
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 0/7] " Dmitry Kozlyuk
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 1/7] eal: add wrappers for POSIX string functions Dmitry Kozlyuk
2021-02-23 7:11 ` Andrew Rybchenko
2021-02-23 21:53 ` Nick Connolly
2021-02-24 7:21 ` Andrew Rybchenko
2021-03-04 6:47 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 2/7] eal: add macro for maximum path length Dmitry Kozlyuk
2021-03-04 6:47 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 3/7] eal: add sleep API Dmitry Kozlyuk
2021-02-23 22:06 ` Nick Connolly
2021-03-04 6:47 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 4/7] eal: add asprintf() internal wrapper Dmitry Kozlyuk
2021-03-04 6:48 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 5/7] lib: remove POSIX dependencies Dmitry Kozlyuk
2021-03-04 6:48 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 6/7] drivers: " Dmitry Kozlyuk
2021-03-04 6:49 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-02-21 14:28 ` [dpdk-dev] [PATCH v3 7/7] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-03-04 6:49 ` [dpdk-dev] [EXTERNAL] " Khoa To
2021-03-04 6:46 ` [dpdk-dev] [EXTERNAL] [PATCH v3 0/7] " Khoa To
2021-03-06 0:04 ` [dpdk-dev] [PATCH v4 0/4] " Dmitry Kozlyuk
2021-03-06 0:04 ` [dpdk-dev] [PATCH v4 1/4] eal: add sleep API Dmitry Kozlyuk
2021-03-06 0:04 ` [dpdk-dev] [PATCH v4 2/4] eal: add asprintf() internal wrapper Dmitry Kozlyuk
2021-03-06 15:27 ` Lance Richardson
2021-03-06 0:04 ` [dpdk-dev] [PATCH v4 3/4] build: indicate usage at build time for public headers Dmitry Kozlyuk
2021-03-16 9:59 ` Thomas Monjalon
2021-03-06 0:05 ` [dpdk-dev] [PATCH v4 4/4] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-03-17 19:23 ` [dpdk-dev] [PATCH v4 0/4] " Ranjit Menon
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 0/5] " Dmitry Kozlyuk
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 1/5] eal: add sleep API Dmitry Kozlyuk
2021-03-22 8:57 ` Kinsella, Ray
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 2/5] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 3/5] eal: make OS shims internal Dmitry Kozlyuk
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 4/5] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-03-20 11:27 ` [dpdk-dev] [PATCH v5 5/5] net: replace Windows networking shim Dmitry Kozlyuk
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 0/5] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 1/5] eal: add sleep API Dmitry Kozlyuk
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 2/5] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-03-26 9:04 ` Thomas Monjalon
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 3/5] eal: make OS shims internal Dmitry Kozlyuk
2021-03-26 9:12 ` Thomas Monjalon
2021-03-31 21:05 ` Nick Connolly
2021-03-31 21:19 ` Thomas Monjalon
2021-03-31 21:45 ` Nick Connolly
2021-03-31 21:55 ` Thomas Monjalon
2021-04-01 23:10 ` Dmitry Kozlyuk
2021-04-01 23:18 ` Thomas Monjalon
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 4/5] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-03-26 9:22 ` Thomas Monjalon
2021-03-20 13:05 ` [dpdk-dev] [PATCH v6 5/5] net: replace Windows networking shim Dmitry Kozlyuk
2021-03-26 9:28 ` Thomas Monjalon
2021-04-01 23:03 ` Dmitry Kozlyuk
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 0/5] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 1/5] eal: add sleep API Dmitry Kozlyuk
2021-04-06 14:34 ` Morten Brørup
2021-04-06 23:29 ` Dmitry Kozlyuk
2021-04-07 7:31 ` Morten Brørup
2021-04-29 17:09 ` Tyler Retzlaff
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 2/5] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-04-10 7:05 ` Nick Connolly
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 3/5] eal: make OS shims internal Dmitry Kozlyuk
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 4/5] net: work around s_addr macro on Windows Dmitry Kozlyuk
2021-04-03 23:41 ` [dpdk-dev] [PATCH v7 5/5] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-04-07 22:22 ` [dpdk-dev] [PATCH v8 0/4] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-04-07 22:22 ` [dpdk-dev] [PATCH v8 1/4] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-04-07 22:22 ` [dpdk-dev] [PATCH v8 2/4] eal: make OS shims internal Dmitry Kozlyuk
2021-04-07 22:22 ` [dpdk-dev] [PATCH v8 3/4] net: work around s_addr macro on Windows Dmitry Kozlyuk
2021-04-08 11:26 ` Olivier Matz
2021-04-07 22:22 ` [dpdk-dev] [PATCH v8 4/4] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-04-08 11:45 ` Olivier Matz
2021-04-08 19:51 ` Dmitry Kozlyuk
2021-04-09 13:33 ` Olivier Matz
2021-04-14 21:47 ` Thomas Monjalon
2021-04-10 22:47 ` [dpdk-dev] [PATCH v9 0/4] eal/windows: do not expose POSIX symbols Dmitry Kozlyuk
2021-04-10 22:47 ` [dpdk-dev] [PATCH v9 1/4] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-04-10 22:47 ` [dpdk-dev] [PATCH v9 2/4] eal: make OS shims internal Dmitry Kozlyuk
2021-04-14 21:33 ` Thomas Monjalon
2021-04-10 22:47 ` [dpdk-dev] [PATCH v9 3/4] net: work around s_addr macro on Windows Dmitry Kozlyuk
2021-04-10 22:47 ` [dpdk-dev] [PATCH v9 4/4] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-04-13 4:46 ` [dpdk-dev] [PATCH v9 0/4] eal/windows: do not expose POSIX symbols Ranjit Menon
2021-04-13 7:00 ` Dmitry Kozlyuk
2021-04-14 21:12 ` Thomas Monjalon
2021-04-14 21:34 ` Ranjit Menon
2021-04-14 21:42 ` Thomas Monjalon
2021-04-14 21:47 ` Ranjit Menon
2021-04-14 22:08 ` Dmitry Kozlyuk
2021-04-14 22:58 ` Thomas Monjalon
2021-04-14 22:06 ` [dpdk-dev] [PATCH v10 " Dmitry Kozlyuk
2021-04-14 22:06 ` [dpdk-dev] [PATCH v10 1/4] eal/windows: hide asprintf() shim Dmitry Kozlyuk
2021-04-14 22:06 ` [dpdk-dev] [PATCH v10 2/4] eal: make OS shims internal Dmitry Kozlyuk
2021-04-14 22:06 ` [dpdk-dev] [PATCH v10 3/4] net: work around s_addr macro on Windows Dmitry Kozlyuk
2021-04-14 22:06 ` [dpdk-dev] [PATCH v10 4/4] net: provide IP-related API on any OS Dmitry Kozlyuk
2021-04-14 22:50 ` [dpdk-dev] [PATCH v10 0/4] eal/windows: do not expose POSIX symbols Ranjit Menon
2021-04-14 23:57 ` Thomas Monjalon
2021-03-17 19:19 ` [dpdk-dev] [PATCH 0/7] " Ranjit Menon
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=20210227232327.1ac69729@sovereign \
--to=dmitry.kozliuk@gmail.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=nick.connolly@mayadata.io \
--cc=roretzla@microsoft.com \
--cc=skori@marvell.com \
/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).