diff --git a/Makefile b/Makefile index 9f16703b5..691dba474 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,9 @@ endif # Passed to genrpc.pl via "make saithrift-build": GEN_SAIRPC_OPTS?= +# Passed to meta/Makefile via "make saithrift-build, can specify add'l libraries along with libsai +SAIRPC_EXTRA_LIBS?= + .PHONY: test doc clean doc: @@ -40,7 +43,7 @@ test: make -C test saithrift-build: - GEN_SAIRPC_OPTS=$(GEN_SAIRPC_OPTS) make -C $(SAITHRIFT_PATH) + SAIRPC_EXTRA_LIBS="$(SAIRPC_EXTRA_LIBS)" GEN_SAIRPC_OPTS=$(GEN_SAIRPC_OPTS) make -C $(SAITHRIFT_PATH) saithrift-install: saithrift-build make -C $(SAITHRIFT_PATH) install diff --git a/meta/templates/sai_rpc_server_functions.tt b/meta/templates/sai_rpc_server_functions.tt index bcd6f1331..6763e8001 100644 --- a/meta/templates/sai_rpc_server_functions.tt +++ b/meta/templates/sai_rpc_server_functions.tt @@ -110,7 +110,7 @@ [%- ######################################################################## -%] [%- BLOCK sai_api_query -%] - status = sai_api_query(SAI_API_[% api.upper %], (void **)&[% api %]_api); + status = sai_api_query(static_cast(SAI_API_[% api.upper %]), (void **)&[% api %]_api); if (status != SAI_STATUS_SUCCESS) { [%- PROCESS return_error indentation = 3 status_variable = 'status' %] } diff --git a/meta/templates/sai_rpc_server_helper_functions.tt b/meta/templates/sai_rpc_server_helper_functions.tt index 274e50851..5e22c7a73 100644 --- a/meta/templates/sai_rpc_server_helper_functions.tt +++ b/meta/templates/sai_rpc_server_helper_functions.tt @@ -64,7 +64,7 @@ void sai_thrift_parse_[% object %]_attributes(const std::vector(SAI_OBJECT_TYPE_[% object.upper %]), attribute, &attr_list[i]); } [% END -%] @@ -85,7 +85,7 @@ void sai_thrift_deparse_[% object %]_attributes(sai_attribute_t *attr_list, for (uint32_t i = 0; i < attr_count; i++, it++) { sai_thrift_attribute_t attribute; - convert_attr_sai_to_thrift(SAI_OBJECT_TYPE_[% object.upper %], attr_list[i], attribute); + convert_attr_sai_to_thrift(static_cast(SAI_OBJECT_TYPE_[% object.upper %]), attr_list[i], attribute); thrift_attr_list.push_back(attribute); } [% END -%] diff --git a/test/saithriftv2/Makefile b/test/saithriftv2/Makefile index 5a5e89b75..1c175aa98 100644 --- a/test/saithriftv2/Makefile +++ b/test/saithriftv2/Makefile @@ -18,6 +18,9 @@ CPPFLAGS = -I$(SAI_HEADER_DIR) -I. -std=c++11 CPPFLAGS += -O0 -ggdb +# specify add'l libraries along with libsai +SAIRPC_EXTRA_LIBS?= + ifeq ($(platform),MLNX) CDEFS = -DMLNXSAI else @@ -88,7 +91,7 @@ $(ODIR)/sai_rpc_server.o: ../../meta/sai_rpc_frontend.cpp $(CXX) $(CPPFLAGS) -c $^ -o $@ $(CPPFLAGS) -I./gen-cpp -I../../meta -I../../inc -I../../experimental $(ODIR)/saiserver.o: src/saiserver.cpp $(CPP_SOURCES) directories - $(CXX) $(CPPFLAGS) -c src/saiserver.cpp -o $@ $(CPPFLAGS) $(CDEFS) -I./gen-cpp -I../../inc + $(CXX) $(CPPFLAGS) -c src/saiserver.cpp -o $@ $(CPPFLAGS) $(CDEFS) -I./gen-cpp -I../../inc -I../../experimental $(ODIR)/librpcserver.a: $(ODIR)/sai_rpc.o $(ODIR)/sai_types.o $(ODIR)/sai_rpc_server.o ar rcs $(ODIR)/librpcserver.a $^ @@ -98,7 +101,7 @@ clientlib: $(PY_SOURCES) $(SAI_PY_HEADERS) saiserver: $(ODIR)/saiserver.o $(ODIR)/librpcserver.a $(CXX) $(LDFLAGS) $(ODIR)/sai_rpc_server.o $(ODIR)/saiserver.o -o $@ \ - $(ODIR)/librpcserver.a $(LIBS) + $(ODIR)/librpcserver.a $(LIBS) $(SAIRPC_EXTRA_LIBS) install-lib: $(ODIR)/librpcserver.a $(INSTALL) -D $(ODIR)/librpcserver.a $(DESTDIR)/usr/lib/librpcserver.a