alibaba / MNN

MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
http://www.mnn.zone/
8.63k stars 1.66k forks source link

MacOS上编译MNN时,汇编代码报错 #3000

Closed TianzhongSong closed 1 month ago

TianzhongSong commented 1 month ago

平台(如果交叉编译请再附上交叉编译目标平台):

Platform(Include target platform as well if cross-compiling):

MacOS: 12.7.4 Xcode: 13.2.1

Github版本:

Github Version:

mnn2.8.0

编译方式:

Compiling Method

编译脚本如下

rm -rf ios_64
mkdir ios_64
cd ios_64
cmake ../.. \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_TOOLCHAIN_FILE=../../cmake/ios.toolchain.cmake \
    -DCVNN_METAL=OFF \
    -DCVNN_COREML=OFF \
    -DPLATFORM="OS64" \
    -DARCHS="arm64" \
    -DENABLE_BITCODE=ON \
    -DCVNN_AAPL_FMWK=OFF \
    -DCVNN_SEP_BUILD=OFF \
    -DCVNN_SUPPORT_BF16=OFF \
    -DDEPLOYMENT_TARGET="11.0" \
    -DCVNN_ARM82=ON \
    -DCVNN_BUILD_TOOLS=OFF \
    -DCVNN_LOW_MEMORY=ON \
    -DCVNN_SUPPORT_DEPRECATED_OP=OFF \
    -DCVNN_BUILD_SHARED_LIBS=OFF
echo "Building AArch64"
make -j4
echo "End Building AArch64"
cd ../

编译日志:

Build Log:

-- Building with Xcode version: 13.2.1
-- Targeting minimum SDK version 11.0. Dropping 32-bit support.
-- Configuring iphoneos build for platform: OS64, architecture(s): arm64
-- Using SDK: /Users/toolman/software/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk for platform: OS64
-- Enabling ARC support by default. ENABLE_ARC not provided!
-- Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!
-- Using NON-strict compiler checks by default. ENABLE_STRICT_TRY_COMPILE not provided!
-- Using C compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Using CXX compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Using libtool: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-- Using install_name_tool: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool
-- Using a data_ptr size of 8
-- Building for minimum iphoneos version: 11.0 (SDK version: 15.2)
-- Version flags set to: -miphoneos-version-min=11.0
-- Enabling bitcode support.
-- Enabling ARC support.
-- Hiding symbols (-fvisibility=hidden).
-- Merging integrated CMake 3.14+ iOS,tvOS,watchOS,macOS toolchain(s) with this toolchain!
-- Building with Xcode version: 13.2.1
-- Configuring iphoneos build for platform: OS64, architecture(s): arm64
-- Using SDK: /Users/toolman/software/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk for platform: OS64 when checking compatibility
-- Using libtool: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-- Using a data_ptr size of 8
-- Building for minimum iphoneos version: 11.0 (SDK version: 15.2)
-- Version flags set to: -miphoneos-version-min=11.0
-- Enabling bitcode support.
-- Enabling ARC support.
-- Hiding symbols (-fvisibility=hidden).
-- The C compiler identification is AppleClang 13.0.0.13000029
-- The CXX compiler identification is AppleClang 13.0.0.13000029
-- The ASM compiler identification is Clang
-- Found assembler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Check for working C compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Check for working C compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Check for working CXX compiler: /Users/toolman/software/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Use Threadpool, forbid openmp
-- >>>>>>>>>>>>>
-- MNN BUILD INFO:
--  System: iOS
--  Processor: aarch64
--  Version: 2.8.0
--  Metal: OFF
--  OpenCL: OFF
--  OpenGL: OFF
--  Vulkan: OFF
--  ARM82: OFF
--  oneDNN: OFF
--  TensorRT: OFF
--  CoreML: OFF
--  NNAPI: OFF
--  CUDA: OFF
--  OpenMP: OFF
--  BF16: OFF
--  ThreadPool: ON
--  Hidden: TRUE
--  Build Path: /Users/toolman/codes/mnn/build/ios_64
--  CUDA PROFILE: OFF
-- WIN_USE_ASM: 
-- Enabling AArch64 Assemblies
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/toolman/codes/mnn/build/ios_64
Building AArch64
Scanning dependencies of target MNNCore
Scanning dependencies of target MNNUtils
Scanning dependencies of target MNNARM64
Scanning dependencies of target MNNCPU
[  1%] Building CXX object CMakeFiles/MNNUtils.dir/source/utils/InitNet.cpp.o
[  1%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S.o
[  1%] Building CXX object CMakeFiles/MNNCore.dir/source/core/AutoTime.cpp.o
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:22:10: error: unknown token in expression
mov x12, #4
         ^
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:23:1: error: unknown use of instruction mnemonic without a size suffix
mul x2, x12, x2
^
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:24:1: error: unknown use of instruction mnemonic without a size suffix
mul x3, x12, x3
^
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:27:9: error: unknown token in expression
cmp x4, #8
        ^
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:28:1: error: invalid instruction mnemonic 'blt'
blt L1
^~~
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:31:5: error: unknown use of instruction mnemonic without a size suffix
    mov x12, x1
    ^
/Users/toolman/codes/mnn/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S:32:10: error: unknown token in expression

换了MNN2.6.0,MNN2.9.0也是一样的报错。Xcode换了14.2版本,也是一样的错误。

TianzhongSong commented 1 month ago

解决了,升级cmake到最新的就可以了