Skip to content

compilation error on arm64: undefined symbol deserializeAndInsertFromPosImpl #9838

@guo-shaoge

Description

@guo-shaoge

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

find an arm64 machine and build tiflash

[root@10 rel]# lscpu
架构:               aarch64
  CPU 运行模式:     64-bit
  字节序:           Little Endian
cmake ../.. \
      -GNinja \
      -DUSE_INTERNAL_SSL_LIBRARY=ON \
      -Wno-dev \
      -DNO_WERROR=ON

cmake --build . --target tiflash --parallel 30 &> t.err

2. What did you expect to see? (Required)

build ok

3. What did you see instead (Required)

>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<int>>::deserializeForCmpAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<int>>::deserializeAndInsertFromPosImpl<false>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<int>>::deserializeAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<long>>::deserializeAndInsertFromPosImpl<true>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<long>>::deserializeForCmpAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<long>>::deserializeAndInsertFromPosImpl<false>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<long>>::deserializeAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<__int128>>::deserializeAndInsertFromPosImpl<true>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<__int128>>::deserializeForCmpAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<__int128>>::deserializeAndInsertFromPosImpl<false>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<__int128>>::deserializeAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a

ld.lld: error: undefined symbol: void DB::ColumnDecimal<DB::Decimal<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)1, (boost::multiprecision::cpp_int_check_type)1, void>, (boost::multiprecision::expression_template_option)0>>>::deserializeAndInsertFromPosImpl<false>(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)
>>> referenced by FunctionsConversion.cpp
>>>               FunctionsConversion.cpp.o:(DB::ColumnDecimal<DB::Decimal<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)1, (boost::multiprecision::cpp_int_check_type)1, void>, (boost::multiprecision::expression_template_option)0>>>::deserializeAndInsertFromPos(DB::PODArray<char*, 4096ul, Allocator<false>, 15ul, 16ul>&, bool)) in archive dbms/src/Functions/libtiflash_functions.a
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

4. What is your TiFlash version? (Required)

master: 57122fa

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions