diff --git a/cmake/external/lite.cmake b/cmake/external/lite.cmake index 849dc3c6fa5596f6a39801d8a3a6db16e1d365f9..9851acadc589b57476280dc7ba01378559ccb81d 100644 --- a/cmake/external/lite.cmake +++ b/cmake/external/lite.cmake @@ -65,7 +65,7 @@ if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR) GIT_REPOSITORY "${GIT_URL}/PaddlePaddle/Paddle-Lite.git" GIT_TAG ${LITE_GIT_TAG} PREFIX ${LITE_SOURCES_DIR} - PATCH_COMMAND mkdir -p ${LITE_SOURCES_DIR}/src/extern_lite-build/lite/gen_code && touch ${LITE_SOURCES_DIR}/src/extern_lite-build/lite/gen_code/__generated_code__.cc + PATCH_COMMAND mkdir -p ${LITE_SOURCES_DIR}/src/extern_lite-build/lite/gen_code && touch ${LITE_SOURCES_DIR}/src/extern_lite-build/lite/gen_code/__generated_code__.cc && sed -i "/aarch64-linux-gnu-gcc/d" ${LITE_SOURCES_DIR}/src/extern_lite/cmake/cross_compiling/armlinux.cmake && sed -i "/aarch64-linux-gnu-g++/d" ${LITE_SOURCES_DIR}/src/extern_lite/cmake/cross_compiling/armlinux.cmake UPDATE_COMMAND "" BUILD_COMMAND ${LITE_BUILD_COMMAND} INSTALL_COMMAND "" diff --git a/python/setup.py.in b/python/setup.py.in index 1f20177ff45380a1d2a582e2a3e8ded46014e43e..adecb498f101bac92bbbbe2c57752a3226179c95 100644 --- a/python/setup.py.in +++ b/python/setup.py.in @@ -278,6 +278,11 @@ else: # copy the openblas.dll shutil.copy('${OPENBLAS_SHARED_LIB}', libs_path) package_data['paddle.libs'] += ['openblas' + ext_name] + elif os.name == 'posix' and platform.machine() == 'aarch64': + # copy the libopenblas.so on linux+aarch64 + # special: core_noavx.so depends on 'libopenblas.so.0', not 'libopenblas.so' + shutil.copy('${OPENBLAS_LIB}' + '.0', libs_path) + package_data['paddle.libs'] += ['libopenblas.so.0'] if '${WITH_LITE}' == 'ON': shutil.copy('${LITE_SHARED_LIB}', libs_path) @@ -351,10 +356,8 @@ if '${CMAKE_BUILD_TYPE}' == 'Release': command = "install_name_tool -id \"@loader_path/../libs/\" ${PADDLE_BINARY_DIR}/python/paddle/fluid/${FLUID_CORE_NAME}" + '.so' else: command = "patchelf --set-rpath '$ORIGIN/../libs/' ${PADDLE_BINARY_DIR}/python/paddle/fluid/${FLUID_CORE_NAME}" + '.so' - # The dynamic library compiled under aarch64 is greater than 64M, - # and an oversize error will be reported when using patchelf. # The sw_64 not suppot patchelf, so we just disable that. - if platform.machine() != 'aarch64' and platform.machine() != 'sw_64' and platform.machine() != 'mips64': + if platform.machine() != 'sw_64' and platform.machine() != 'mips64': if os.system(command) != 0: raise Exception("patch ${FLUID_CORE_NAME}.%s failed, command: %s" % (ext_name, command))