mold: Unable to build from source in docker on NVIDIA Jetson Xavier NX (aarch64)
Compilation command:
RUN sudo apt-get -y install software-properties-common \
&& sudo add-apt-repository ppa:ubuntu-toolchain-r/test \
&& if [ -f /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-lunar.list ]; then \
ls -la /etc/apt/sources.list.d/; \
sudo sed 's/lunar/bionic/' /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-lunar.list | \
sudo tee /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-bionic.list; \
fi \
&& sudo apt-get update \
&& sudo apt-get -y install gcc-10 g++-10 \
&& git clone https://github.com/rui314/mold.git \
&& mkdir mold/build \
&& cd mold/build \
&& git checkout v1.7.0 \
&& sudo ../install-build-deps.sh \
&& cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-10 .. \
&& cmake --build . -j $(nproc) \
&& sudo cmake --install . \
&& sudo apt -y remove gcc-10 g++-10 \
&& sudo apt-get clean \
&& sudo apt-get -y autoclean \
&& sudo apt-get -y autoremove \
&& sudo rm -rf /var/lib/apt/lists/* \
&& cd $HOME
See here to see why I have to manually screw with the apt sources.list file
So, it’s building and using GCC 10.
Snippet of output: (There are around 14,000 lines of linker failure in the build output)
❯ cat error.log
[ 97%] Building CXX object CMakeFiles/mold.dir/macho/arch-arm64.cc.o
[ 98%] Building CXX object CMakeFiles/mold.dir/macho/arch-x86-64.cc.o
[ 98%] Building CXX object CMakeFiles/mold.dir/macho/yaml.cc.o
[ 98%] Building CXX object CMakeFiles/mold.dir/main.cc.o
[100%] Building CXX object CMakeFiles/mold.dir/multi-glob.cc.o
[100%] Building CXX object CMakeFiles/mold.dir/perf.cc.o
[100%] Building CXX object CMakeFiles/mold.dir/tar.cc.o
[100%] Building CXX object CMakeFiles/mold.dir/uuid.cc.o
[100%] Linking CXX executable mold
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o: In function `tbb::detail::d2::for_each_root_task_base<__gnu_cxx::__normal_iterator<mold::elf::ObjectFile<mold::elf::X86_64>**, std::vector<mold::elf::ObjectFile<mold::elf::X86_64>*, std::allocator<mold::elf::ObjectFile<mold::elf::X86_64>*> > >, mold::elf::do_lto<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&)::{lambda(mold::elf::ObjectFile<mold::elf::X86_64>*)#1}, mold::elf::ObjectFile<mold::elf::X86_64>*>::cancel(tbb::detail::d1::execution_data&)':
lto.cc.X86_64.cc:(.text._ZN3tbb6detail2d223for_each_root_task_baseIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_E6cancelERNS0_2d114execution_dataE[_ZN3tbb6detail2d223for_each_root_task_baseIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_E6cancelERNS0_2d114execution_dataE]+0x1c): undefined reference to `__aarch64_ldadd8_acq_rel'
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o: In function `tbb::detail::d2::for_each_root_task<__gnu_cxx::__normal_iterator<mold::elf::ObjectFile<mold::elf::X86_64>**, std::vector<mold::elf::ObjectFile<mold::elf::X86_64>*, std::allocator<mold::elf::ObjectFile<mold::elf::X86_64>*> > >, mold::elf::do_lto<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&)::{lambda(mold::elf::ObjectFile<mold::elf::X86_64>*)#1}, mold::elf::ObjectFile<mold::elf::X86_64>*, std::random_access_iterator_tag>::execute(tbb::detail::d1::execution_data&)':
lto.cc.X86_64.cc:(.text._ZN3tbb6detail2d218for_each_root_taskIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_St26random_access_iterator_tagE7executeERNS0_2d114execution_dataE[_ZN3tbb6detail2d218for_each_root_taskIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_St26random_access_iterator_tagE7executeERNS0_2d114execution_dataE]+0x48): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN3tbb6detail2d218for_each_root_taskIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_St26random_access_iterator_tagE7executeERNS0_2d114execution_dataE[_ZN3tbb6detail2d218for_each_root_taskIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_SA_St26random_access_iterator_tagE7executeERNS0_2d114execution_dataE]+0x134): undefined reference to `__aarch64_ldadd8_acq_rel'
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o: In function `void tbb::detail::d2::parallel_for_each<__gnu_cxx::__normal_iterator<mold::elf::ObjectFile<mold::elf::X86_64>**, std::vector<mold::elf::ObjectFile<mold::elf::X86_64>*, std::allocator<mold::elf::ObjectFile<mold::elf::X86_64>*> > >, mold::elf::do_lto<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&)::{lambda(mold::elf::ObjectFile<mold::elf::X86_64>*)#1}>(__gnu_cxx::__normal_iterator<mold::elf::ObjectFile<mold::elf::X86_64>**, std::vector<mold::elf::ObjectFile<mold::elf::X86_64>*, std::allocator<mold::elf::ObjectFile<mold::elf::X86_64>*> > >, __gnu_cxx::__normal_iterator<mold::elf::ObjectFile<mold::elf::X86_64>**, std::vector<mold::elf::ObjectFile<mold::elf::X86_64>*, std::allocator<mold::elf::ObjectFile<mold::elf::X86_64>*> > >, mold::elf::do_lto<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&)::{lambda(mold::elf::ObjectFile<mold::elf::X86_64>*)#1} const&)':
lto.cc.X86_64.cc:(.text._ZN3tbb6detail2d217parallel_for_eachIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_EEvSH_SH_RKT0_[_ZN3tbb6detail2d217parallel_for_eachIN9__gnu_cxx17__normal_iteratorIPPN4mold3elf10ObjectFileINS6_6X86_64EEESt6vectorISA_SaISA_EEEEZNS6_6do_ltoIS8_EESC_IPNS7_IT_EESaISJ_EERNS6_7ContextISH_EEEUlSA_E_EEvSH_SH_RKT0_]+0x9c): undefined reference to `__aarch64_ldadd8_acq_rel'
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o: In function `mold::elf::ObjectFile<mold::elf::X86_64>* mold::elf::read_lto_object<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&, mold::MappedFile<mold::elf::Context<mold::elf::X86_64> >*)':
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x1c0): undefined reference to `__aarch64_ldadd8_acq_rel'
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o:lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x73c): more undefined references to `__aarch64_ldadd8_acq_rel' follow
CMakeFiles/mold.dir/elf/lto.cc.X86_64.cc.o: In function `mold::elf::ObjectFile<mold::elf::X86_64>* mold::elf::read_lto_object<mold::elf::X86_64>(mold::elf::Context<mold::elf::X86_64>&, mold::MappedFile<mold::elf::Context<mold::elf::X86_64> >*)':
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x830): undefined reference to `__aarch64_cas8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x8f0): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x900): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x964): undefined reference to `__aarch64_cas8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xa64): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xaf4): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xb38): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xb48): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xb5c): undefined reference to `__aarch64_ldclr8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xb80): undefined reference to `__aarch64_ldclr8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xba0): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xd08): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0xd6c): undefined reference to `__aarch64_ldclr8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x1028): undefined reference to `__aarch64_ldadd8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x1044): undefined reference to `__aarch64_cas8_acq_rel'
lto.cc.X86_64.cc:(.text._ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE[_ZN4mold3elf15read_lto_objectINS0_6X86_64EEEPNS0_10ObjectFileIT_EERNS0_7ContextIS4_EEPNS_10MappedFileIS8_EE]+0x1098): undefined reference to `__aarch64_ldadd8_acq_rel'
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 22 (5 by maintainers)
Upgrade binutils can help.