sonic-net/sonic-swss

routesync.cpp compile issue

kcudnik opened this issue · 4 comments

I'm trying to compile sonic-swss (on master)

./autogen.sh
./configure
make

and i get this error:

routesync.cpp: In member function 'void swss::RouteSync::getNextHopList(rtnl_route*, std::string&, std::string&, std::string&)':
routesync.cpp:1130:25: error: 'rtnl_route_nh_get_encap_mpls_dst' was not declared in this scope; did you mean 'rtnl_route_nh_encap_mpls'?
 1130 |             if ((addr = rtnl_route_nh_get_encap_mpls_dst(nexthop)))
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                         rtnl_route_nh_encap_mpls
make[2]: *** [Makefile:482: fpmsyncd-routesync.o] Error 1
make[2]: Leaving directory '/root/sonic-swss/fpmsyncd'
make[1]: *** [Makefile:418: all-recursive] Error 1
make[1]: Leaving directory '/root/sonic-swss'
make: *** [Makefile:350: all] Error 2

on:

 $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

 $ dpkg --list|grep libnl
ii  libnl-3-200:amd64                          3.5.0-1                               amd64        library for dealing with netlink sockets
ii  libnl-3-dev:amd64                          3.5.0-1                               amd64        development library and headers for libnl-3
ii  libnl-cli-3-200:amd64                      3.5.0-1                               amd64        library for dealing with netlink sockets - cli helpers
ii  libnl-cli-3-dev:amd64                      3.5.0-1                               amd64        development library and headers for libnl-cli-3
ii  libnl-genl-3-200:amd64                     3.5.0-1                               amd64        library for dealing with netlink sockets - generic netlink
ii  libnl-genl-3-dev:amd64                     3.5.0-1                               amd64        development library and headers for libnl-genl-3
ii  libnl-nf-3-200:amd64                       3.5.0-1                               amd64        library for dealing with netlink sockets - netfilter interface
ii  libnl-nf-3-dev:amd64                       3.5.0-1                               amd64        development library and headers for libnl-nf-3
ii  libnl-route-3-200:amd64                    3.5.0-1                               amd64        library for dealing with netlink sockets - route interface
ii  libnl-route-3-dev:amd64                    3.5.0-1                               amd64        development library and headers for libnl-route-3

seems like i have some incompatible libnl libs that have wrong export

please advise

u think my libnl-route is too old, it probably should be in 3.6.0 version

u think my libnl-route is too old, it probably should be in 3.6.0 version

Did upgrading to 3.6.0 solve your issue? I'm facing the same error now.

I have the same issue with this, has anyone found any solutions to this?
I just tried it today. If I have any luck with this, I'll update here as well.

Yes, libnl needs to be compiled from commonlib azure pipeline, it's patched and have missing alis