sonic-net/sonic-sairedis

compile syncd-vs failed

lguohan opened this issue · 6 comments

where this failure occurs ?

2021-01-28T03:30:48.3383073Z checking how to hardcode library paths into programs... immediate
2021-01-28T03:30:48.3383762Z checking for ANSI C header files... (cached) yes
2021-01-28T03:30:48.3384728Z checking for main in -lsai... no
2021-01-28T03:30:48.3385412Z configure: error: libsai is required for syncd
2021-01-28T03:30:48.3386372Z Makefile:370: recipe for target 'config.status' failed

but it is using --with-sai=vs

this produces libsaivs.so not libsai.so

Hi I am observing SYNCD compilation issue for Marvel arm64..

Steps : sudo modprobe overlay
make init
make configure PLATFORM=marvell-arm64 PLATFORM_ARCH=arm64
make all

Byte-compiling python modules (optimized versions) ...
pysairedis.py__init__.py
make[5]: Leaving directory '/sonic/src/sonic-sairedis/pyext/py3'
make[4]: Leaving directory '/sonic/src/sonic-sairedis/pyext/py3'
make[4]: Entering directory '/sonic/src/sonic-sairedis/pyext'
make[5]: Entering directory '/sonic/src/sonic-sairedis/pyext'
make[5]: Nothing to be done for 'install-exec-am'.
make[5]: Nothing to be done for 'install-data-am'.
make[5]: Leaving directory '/sonic/src/sonic-sairedis/pyext'
make[4]: Leaving directory '/sonic/src/sonic-sairedis/pyext'
make[3]: Leaving directory '/sonic/src/sonic-sairedis/pyext'
Making install in syncd
make[3]: Entering directory '/sonic/src/sonic-sairedis/syncd'
/bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -fdebug-prefix-map=/sonic/src/sonic-sairedis=. -fstack-protector-strong -Wforma
t -Werror=format-security -Wl,-z,relro -o syncd syncd-main.o libSyncd.a ../lib/src/libSaiRedis.a -L../meta/.libs -lsaimetadata -lsaimeta
-ldl -lhiredis -lswsscommon -lsai -lpthread -lzmq
libtool: link: g++ -g -O2 -fdebug-prefix-map=/sonic/src/sonic-sairedis=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z
-Wl,relro -o .libs/syncd syncd-main.o libSyncd.a ../lib/src/libSaiRedis.a -L../meta/.libs /sonic/src/sonic-sairedis/meta/.libs/libsaime
tadata.so /sonic/src/sonic-sairedis/meta/.libs/libsaimeta.so -ldl -lhiredis -lswsscommon -lsai -lpthread -lzmq
libSyncd.a(libSyncd_a-VendorSai.o): In function syncd::VendorSai::queryAttributeCapability(unsigned long, _sai_object_type_t, unsigned int, _sai_attr_capability_t*)': ****./syncd/VendorSai.cpp:1110: undefined reference to sai_query_attribute_capability'**
collect2: error: ld returned 1 exit status
Makefile:589: recipe for target 'syncd' failed**
make[3]: *** [syncd] Error 1
make[3]: Leaving directory '/sonic/src/sonic-sairedis/syncd'
Makefile:433: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/sonic/src/sonic-sairedis'
dh_auto_install: make -j1 install DESTDIR=/sonic/src/sonic-sairedis/debian/tmp AM_UPDATE_INFO_DIR=no returned exit code 2
debian/rules:47: recipe for target 'binary-syncd' failed
make[1]: *** [binary-syncd] Error 2
make[1]: Leaving directory '/sonic/src/sonic-sairedis'
dpkg-buildpackage: error: fakeroot debian/rules binary-syncd gave error exit status 2
[ FAIL LOG END ] [ target/debs/stretch/syncd_1.0.0_arm64.deb ]
slave.mk:457: recipe for target 'target/debs/stretch/syncd_1.0.0_arm64.deb' failed
make: *** [target/debs/stretch/syncd_1.0.0_arm64.deb] Error 1
make[1]: *** [Makefile.work:285: stretch] Error 2

error says "sai_query_attribute_capability" method is missing from libsai.so, seems like this method is not exposed by vendor