[dpdk-dev] [PATCH v3] net/dpaa2: fix build error about timesync functions

Sachin Saxena (OSS) sachin.saxena at oss.nxp.com
Thu Oct 8 04:24:38 CEST 2020


Following change should also be handled as suggested by Ferruh in earlier.

    diff --git a/drivers/net/dpaa2/dpaa2_ptp.c
    b/drivers/net/dpaa2/dpaa2_ptp.c
    index 9f755e84bf..0e44d4c6bf 100644
    --- a/drivers/net/dpaa2/dpaa2_ptp.c
    +++ b/drivers/net/dpaa2/dpaa2_ptp.c
    @@ -178,4 +178,6 @@ static struct rte_dpaa2_object
    rte_dpaa2_dprtc_obj = {
             .create = dpaa2_create_dprtc_device,
      };

    +#if defined(RTE_LIBRTE_IEEE1588)
      RTE_PMD_REGISTER_DPAA2_OBJECT(dprtc, rte_dpaa2_dprtc_obj);
    +#endif



regards,
Sachin

On 06-Oct-20 10:46 PM, Ferruh Yigit wrote:
> From: Chenxu Di <chenxux.di at intel.com>
>
> Some timesync related source files are built only when
> 'RTE_LIBRTE_IEEE1588' config is set, which is missing in meson.
>
> Building with '-DRTE_LIBRTE_IEEE1588' cflag will enable timesync
> functionality in the files that are build, but it won't build files
> that require 'RTE_LIBRTE_IEEE1588' config.
> This causes the build error.
>
> Fixing by removing config check in meson file and build all .c files by
> default, but wrap relevant code part with 'RTE_LIBRTE_IEEE1588' macro.
>
> Also removing 'RTE_LIBRTE_IEEE1588' ifdef around some fields of the data
> structures, to not require finer grained macro wraps on the functions
> using them.
> Since the registration of the function disabled with macro check, having
> functions compiled shouldn't affect the functionality.
>
> Fixes: 184c39d16568 ("net/dpaa2: add DPRTC sub-module")
> Cc: stable at dpdk.org
>
> Signed-off-by: Chenxu Di <chenxux.di at intel.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
>   drivers/net/dpaa2/dpaa2_ethdev.h | 4 ----
>   drivers/net/dpaa2/dpaa2_ptp.c    | 2 ++
>   drivers/net/dpaa2/meson.build    | 7 ++-----
>   3 files changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
> index e577355d57..94cf253827 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.h
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.h
> @@ -160,7 +160,6 @@ struct dpaa2_dev_priv {
>   	uint16_t ss_offset;
>   	uint64_t ss_iova;
>   	uint64_t ss_param_iova;
> -#if defined(RTE_LIBRTE_IEEE1588)
>   	/*stores timestamp of last received packet on dev*/
>   	uint64_t rx_timestamp;
>   	/*stores timestamp of last received tx confirmation packet on dev*/
> @@ -169,7 +168,6 @@ struct dpaa2_dev_priv {
>   	 * it corresponds to last packet transmitted
>   	 */
>   	struct dpaa2_queue *next_tx_conf_queue;
> -#endif
>   
>   	struct rte_eth_dev *eth_dev; /**< Pointer back to holding ethdev */
>   
> @@ -227,7 +225,6 @@ void dpaa2_dev_free_eqresp_buf(uint16_t eqresp_ci);
>   void dpaa2_flow_clean(struct rte_eth_dev *dev);
>   uint16_t dpaa2_dev_tx_conf(void *queue)  __rte_unused;
>   
> -#if defined(RTE_LIBRTE_IEEE1588)
>   int dpaa2_timesync_enable(struct rte_eth_dev *dev);
>   int dpaa2_timesync_disable(struct rte_eth_dev *dev);
>   int dpaa2_timesync_read_time(struct rte_eth_dev *dev,
> @@ -240,5 +237,4 @@ int dpaa2_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
>   						uint32_t flags __rte_unused);
>   int dpaa2_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
>   					  struct timespec *timestamp);
> -#endif
>   #endif /* _DPAA2_ETHDEV_H */
> diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
> index f58eedb314..899dd5d442 100644
> --- a/drivers/net/dpaa2/dpaa2_ptp.c
> +++ b/drivers/net/dpaa2/dpaa2_ptp.c
> @@ -129,6 +129,7 @@ int dpaa2_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
>   	return 0;
>   }
>   
> +#if defined(RTE_LIBRTE_IEEE1588)
>   static int
>   dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
>   			   struct vfio_device_info *obj_info __rte_unused,
> @@ -179,3 +180,4 @@ static struct rte_dpaa2_object rte_dpaa2_dprtc_obj = {
>   };
>   
>   RTE_PMD_REGISTER_DPAA2_OBJECT(dprtc, rte_dpaa2_dprtc_obj);
> +#endif
> diff --git a/drivers/net/dpaa2/meson.build b/drivers/net/dpaa2/meson.build
> index 6dd0eb274c..4312aa73f7 100644
> --- a/drivers/net/dpaa2/meson.build
> +++ b/drivers/net/dpaa2/meson.build
> @@ -13,15 +13,12 @@ sources = files('base/dpaa2_hw_dpni.c',
>   		'dpaa2_flow.c',
>   		'dpaa2_rxtx.c',
>   		'dpaa2_sparser.c',
> +		'dpaa2_ptp.c',
> +		'mc/dprtc.c',
>   		'mc/dpkg.c',
>   		'mc/dpdmux.c',
>   		'mc/dpni.c')
>   
> -if dpdk_conf.has('RTE_LIBRTE_IEEE1588')
> -	sources += files('mc/dprtc.c')
> -	sources += files('dpaa2_ptp.c')
> -endif
> -
>   includes += include_directories('base', 'mc')
>   
>   install_headers('rte_pmd_dpaa2.h')



More information about the dev mailing list