[2/8] net/ring: build on Windows

Message ID 20221201014440.11896-3-stephen@networkplumber.org (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Enable building more on Windows |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Stephen Hemminger Dec. 1, 2022, 1:44 a.m. UTC
  This driver builds ok on windows, but need to modify the
test meson build to skip the eventdev test on Windows.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/meson.build         | 2 +-
 drivers/net/ring/meson.build | 6 ------
 2 files changed, 1 insertion(+), 7 deletions(-)
  

Comments

Tyler Retzlaff Dec. 1, 2022, 11:52 p.m. UTC | #1
On Wed, Nov 30, 2022 at 05:44:33PM -0800, Stephen Hemminger wrote:
> This driver builds ok on windows, but need to modify the
> test meson build to skip the eventdev test on Windows.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
  
Kadam, Pallavi Dec. 14, 2022, 11:18 p.m. UTC | #2
Hi Stephen,

Thanks for enabling this support.

On 11/30/2022 5:44 PM, Stephen Hemminger wrote:
> This driver builds ok on windows, but need to modify the
> test meson build to skip the eventdev test on Windows.
>
> Signed-off-by: Stephen Hemminger<stephen@networkplumber.org>
> ---

There is still a build error with clang compiler on Windows
as mentioned by Dmitry:

../drivers/net/ring/rte_eth_ring.c:542:12: error: use of undeclared identifier 'PATH_MAX'
         char name[PATH_MAX];
                   ^
#include <rte_os_shim.h> is missing

>
  
Stephen Hemminger Dec. 15, 2022, 3:22 a.m. UTC | #3
On Wed, 14 Dec 2022 15:18:08 -0800
"Kadam, Pallavi" <pallavi.kadam@intel.com> wrote:

> Hi Stephen,
> 
> Thanks for enabling this support.
> 
> On 11/30/2022 5:44 PM, Stephen Hemminger wrote:
> > This driver builds ok on windows, but need to modify the
> > test meson build to skip the eventdev test on Windows.
> >
> > Signed-off-by: Stephen Hemminger<stephen@networkplumber.org>
> > ---  
> 
> There is still a build error with clang compiler on Windows
> as mentioned by Dmitry:
> 
> ../drivers/net/ring/rte_eth_ring.c:542:12: error: use of undeclared identifier 'PATH_MAX'
>          char name[PATH_MAX];
>                    ^
> #include <rte_os_shim.h> is missing
> 
> >     

It is in the mingw version but not other compilers.
  
Tyler Retzlaff Dec. 15, 2022, 5:48 p.m. UTC | #4
On Wed, Dec 14, 2022 at 07:22:15PM -0800, Stephen Hemminger wrote:
> On Wed, 14 Dec 2022 15:18:08 -0800
> "Kadam, Pallavi" <pallavi.kadam@intel.com> wrote:
> 
> > Hi Stephen,
> > 
> > Thanks for enabling this support.
> > 
> > On 11/30/2022 5:44 PM, Stephen Hemminger wrote:
> > > This driver builds ok on windows, but need to modify the
> > > test meson build to skip the eventdev test on Windows.
> > >
> > > Signed-off-by: Stephen Hemminger<stephen@networkplumber.org>
> > > ---  
> > 
> > There is still a build error with clang compiler on Windows
> > as mentioned by Dmitry:
> > 
> > ../drivers/net/ring/rte_eth_ring.c:542:12: error: use of undeclared identifier 'PATH_MAX'
> >          char name[PATH_MAX];
> >                    ^
> > #include <rte_os_shim.h> is missing
> > 
> > >     
> 
> It is in the mingw version but not other compilers.

not sure if it helps but in the sludge of my memory i think you can use
MAX_PATH.

so maybe a little 
#ifndef PATH_MAX
#define PATH_MAX MAX_PATH
#endif

in the os shim?
  
Dmitry Kozlyuk Dec. 15, 2022, 6:09 p.m. UTC | #5
2022-12-15 09:48 (UTC-0800), Tyler Retzlaff:
> On Wed, Dec 14, 2022 at 07:22:15PM -0800, Stephen Hemminger wrote:
> > On Wed, 14 Dec 2022 15:18:08 -0800
> > "Kadam, Pallavi" <pallavi.kadam@intel.com> wrote:
[...]
> > > There is still a build error with clang compiler on Windows
> > > as mentioned by Dmitry:
> > > 
> > > ../drivers/net/ring/rte_eth_ring.c:542:12: error: use of undeclared identifier 'PATH_MAX'
> > >          char name[PATH_MAX];
> > >                    ^
> > > #include <rte_os_shim.h> is missing
> > >   
> > > >       
> > 
> > It is in the mingw version but not other compilers.  
> 
> not sure if it helps but in the sludge of my memory i think you can use
> MAX_PATH.
> 
> so maybe a little 
> #ifndef PATH_MAX
> #define PATH_MAX MAX_PATH
> #endif
> 
> in the os shim?

It is in rte_os_shim.h already (for MinGW), just needs to be included.
  

Patch

diff --git a/app/test/meson.build b/app/test/meson.build
index f34d19e3c3cb..a713f0382280 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -390,7 +390,7 @@  if dpdk_conf.has('RTE_NET_BOND')
         driver_test_names += 'link_bonding_mode4_autotest'
     endif
 endif
-if dpdk_conf.has('RTE_NET_RING')
+if dpdk_conf.has('RTE_LIB_EVENTDEV') and dpdk_conf.has('RTE_NET_RING')
     test_deps += 'net_ring'
     test_sources += 'test_pmd_ring_perf.c'
     test_sources += 'test_pmd_ring.c'
diff --git a/drivers/net/ring/meson.build b/drivers/net/ring/meson.build
index 72792e26b05a..3534a3cc2287 100644
--- a/drivers/net/ring/meson.build
+++ b/drivers/net/ring/meson.build
@@ -1,12 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-if is_windows
-    build = false
-    reason = 'not supported on Windows'
-    subdir_done()
-endif
-
 sources = files('rte_eth_ring.c')
 headers = files('rte_eth_ring.h')
 pmd_supports_disable_iova_as_pa = true