Add '--std=c++11' to compile native part of tflite_runtime and fix issues introduced by https://github.com/tensorflow/tensorflow/pull/36690

PiperOrigin-RevId: 297328790
Change-Id: I14efd3c974bb6b4a9e44f4bbe609ceb034351c33
This commit is contained in:
Dmitry Kovalev 2020-02-26 04:10:34 -08:00 committed by TensorFlower Gardener
parent 2716d9325a
commit 5bb79424d7
3 changed files with 23 additions and 39 deletions
tensorflow/lite/tools/pip_package

View File

@ -46,9 +46,10 @@ docker-build: docker-image
--volume $(TENSORFLOW_DIR):/tensorflow \
--volume $(OUT_DIR):/out \
$(TAG_IMAGE) \
/bin/bash -c "tensorflow/tensorflow/lite/tools/pip_package/build_pip_package.sh && \
(cp ${MAKEFILE_DIR}/gen/tflite_pip/*.deb ${MAKEFILE_DIR}/gen/tflite_pip/python3/dist/{*.whl,*.tar.gz} /out 2>/dev/null || true)"
/bin/bash -c "/tensorflow/tensorflow/lite/tools/pip_package/build_pip_package.sh && \
(cp /tensorflow/tensorflow/lite/tools/pip_package/gen/tflite_pip/*.deb \
/tensorflow/tensorflow/lite/tools/pip_package/gen/tflite_pip/${PYTHON}/dist/{*.whl,*.tar.gz} \
/out 2>/dev/null || true)"
clean:
rm -rf $(CURDIR)/out

View File

@ -13,8 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
set -e
set -x
set -ex
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PYTHON="${PYTHON:-python3}"
@ -23,7 +22,7 @@ export TENSORFLOW_DIR="${SCRIPT_DIR}/../../../.."
TENSORFLOW_LITE_DIR="${TENSORFLOW_DIR}/tensorflow/lite"
TENSORFLOW_VERSION=$(grep "_VERSION = " "${TENSORFLOW_DIR}/tensorflow/tools/pip_package/setup.py" | cut -d= -f2 | sed "s/[ '-]//g")
export PACKAGE_VERSION="${TENSORFLOW_VERSION}${VERSION_SUFFIX}"
BUILD_DIR="${SCRIPT_DIR}/gen/tflite_pip/python3"
BUILD_DIR="${SCRIPT_DIR}/gen/tflite_pip/${PYTHON}"
# Build source tree.
rm -rf "${BUILD_DIR}" && mkdir -p "${BUILD_DIR}/tflite_runtime"

View File

@ -39,47 +39,30 @@ PACKAGE_NAME = 'tflite_runtime'
PACKAGE_VERSION = os.environ['PACKAGE_VERSION']
DOCLINES = __doc__.split('\n')
TENSORFLOW_DIR = os.environ['TENSORFLOW_DIR']
# Setup cross compiling
TARGET = os.environ.get('TENSORFLOW_TARGET', None)
if TARGET == 'rpi':
os.environ['CXX'] = 'arm-linux-gnueabihf-g++'
os.environ['CC'] = 'arm-linux-gnueabihf-gcc'
elif TARGET == 'aarch64':
os.environ['CXX'] = 'aarch64-linux-gnu-g++'
os.environ['CC'] = 'aarch64-linux-gnu-gcc'
MAKE_CROSS_OPTIONS = ['TARGET=%s' % TARGET] if TARGET else []
TARGET_ARCH = (
os.environ['TENSORFLOW_TARGET_ARCH'] \
if 'TENSORFLOW_TARGET_ARCH' in os.environ
else None)
MAKE_CROSS_OPTIONS += ['TARGET_ARCH=%s' % TARGET_ARCH] \
if TARGET_ARCH else []
CC_PREFIX = (
os.environ['TENSORFLOW_CC_PREFIX'] \
if 'TENSORFLOW_CC_PREFIX' in os.environ
else None)
MAKE_CROSS_OPTIONS += ['CC_PREFIX=%s' % CC_PREFIX] \
if CC_PREFIX else []
EXTRA_CXXFLAGS = (
os.environ['TENSORFLOW_EXTRA_CXXFLAGS'] \
if 'TENSORFLOW_EXTRA_CXXFLAGS' in os.environ
else None)
MAKE_CROSS_OPTIONS += ['EXTRA_CXXFLAGS=%s' % EXTRA_CXXFLAGS] \
if EXTRA_CXXFLAGS else []
RELATIVE_MAKE_DIR = os.path.join('tensorflow', 'lite', 'tools', 'make')
MAKE_DIR = os.path.join(TENSORFLOW_DIR, RELATIVE_MAKE_DIR)
DOWNLOADS_DIR = os.path.join(MAKE_DIR, 'downloads')
RELATIVE_MAKEFILE_PATH = os.path.join(RELATIVE_MAKE_DIR, 'Makefile')
DOWNLOAD_SCRIPT_PATH = os.path.join(MAKE_DIR, 'download_dependencies.sh')
# Setup cross compiling
TARGET = os.environ.get('TENSORFLOW_TARGET')
if TARGET == 'rpi':
os.environ['CXX'] = 'arm-linux-gnueabihf-g++'
os.environ['CC'] = 'arm-linux-gnueabihf-gcc'
elif TARGET == 'aarch64':
os.environ['CXX'] = 'aarch64-linux-gnu-g++'
os.environ['CC'] = 'aarch64-linux-gnu-gcc'
MAKE_CROSS_OPTIONS = []
for name in ['TARGET', 'TARGET_ARCH', 'CC_PREFIX', 'EXTRA_CXXFLAGS']:
value = os.environ.get('TENSORFLOW_%s' % name)
if value:
MAKE_CROSS_OPTIONS.append('%s=%s' % (name, value))
# Check physical memory and if we are on a reasonable non small SOC machine
# with more than 4GB, use all the CPUs, otherwisxe only 1.
# with more than 4GB, use all the CPUs, otherwise only 1.
def get_build_cpus():
physical_bytes = os.sysconf('SC_PAGESIZE') * os.sysconf('SC_PHYS_PAGES')
if physical_bytes < (1<<30) * 4:
@ -156,6 +139,7 @@ ext = Extension(
'interpreter_wrapper/numpy.cc',
'interpreter_wrapper/python_error_reporter.cc',
'interpreter_wrapper/python_utils.cc'],
extra_compile_args=['--std=c++11'],
swig_opts=['-c++',
'-I%s' % TENSORFLOW_DIR,
'-module', 'interpreter_wrapper',