[PluggableDeviceAPI] C-API symbols not exposed

Hello,

I’m getting started with building a plugin using the new PluggableDeviceAPI, and am hitting a few snags. Using this example as my starting point, my current goal is to have my own custom optimize callback function that walks the NodeDef’s and prints the shapes of each of the Input/Output Tensor(s).

Version of tensorflow I’m using:
tf-nightly == 2.6.0.dev20210612

This problem reproduced on the latest tf-nightly for me too.

The c_api.cc symbols and the grappler.cc symbols are not exposed in the monolithic libtensorflow_framework.so. The header files are part of the tensorflow wheel distribution, but we get linker errors for things calling functions like TF_NewBuffer when using @local_config_tf//:tf_header_lib as a dep. When running nm -gDC libtensorflow_framework.so.2 it’s clear that these symbols aren’t exposed. Are there any known workarounds for this?

Thanks in advance!