C++ program-build problems for aarch64 -m32 use; examples: undefined symbol: __muldf3 , undefined symbol: __divdf3 , undefined symbol: __ltdf2

From: Mark Millard <marklmi_at_yahoo.com>
Date: Wed, 26 Jul 2023 19:38:36 UTC
I do not yet have a reduced form of this.

This is via use of local makefiles and such, not from a port.
It is a variant of a older not -m32 that I adjusted to use -m32.

clang++ -v -m32 -std=c++20 -Wpedantic -Wall -Wextra   -I../other_src_used  -pedantic  -g3 -O3 -mcpu=cortex-a7 -flto  -pthread -fuse-ld=lld -flto ../objs/cpp_thousandslocale-clang++_16_O3lto-libc++.o  ../objs/cpp_clockinfo-clang++_16_O3lto-libc++.o -o ../cpp_clockinfo_main-HoneyComb-65536MiB-threads_16-ILP32-FreeBSD_main_n264334_215bab7924f6_64bit-clang++_16_O3lto-libc++  -DCPPCLOCKINFO_VERS='"acpphint_0.1.36"'  ../other_src_used/cpp_clockinfo_main.cpp
FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)
Target: arm-unknown-freebsd14.0
Thread model: posix
InstalledDir: /usr/bin
 "/usr/bin/clang++" -cc1 -triple armv7-unknown-freebsd14.0 -emit-llvm-bc -flto=full -flto-unit -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name cpp_clockinfo_main.cpp -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu cortex-a7 -target-feature +soft-float -target-feature +soft-float-abi -target-feature -crc -target-feature +dsp -target-feature -ras -target-feature -sb -target-feature -i8mm -target-feature -lob -target-feature -cdecp0 -target-feature -cdecp1 -target-feature -cdecp2 -target-feature -cdecp3 -target-feature -cdecp4 -target-feature -cdecp5 -target-feature -cdecp6 -target-feature -cdecp7 -target-feature -pacbti -target-feature +hwdiv-arm -target-feature +hwdiv -target-feature -vfp2 -target-feature -vfp2sp -target-feature -vfp3 -target-feature -vfp3d16 -target-feature -vfp3d16sp -target-feature -vfp3sp -target-feature -fp16 -target-feature -vfp4 -target-feature -vfp4d16 -target-feature -vfp4d16sp -target-feature -vfp4sp -target-feature -fp-armv8 -target-feature -fp-armv8d16 -target-feature -fp-armv8d16sp -target-feature -fp-armv8sp -target-feature -fullfp16 -target-feature -fp64 -target-feature -d32 -target-feature -neon -target-feature -dotprod -target-feature -fp16fml -target-feature -bf16 -target-feature -mve -target-feature -mve.fp -target-feature -fpregs -target-feature -crypto -target-feature -sha2 -target-feature -aes -target-feature +strict-align -target-abi aapcs-linux -msoft-float -mfloat-abi soft -Wunaligned-access -mllvm -treat-scalable-fixed-error-as-warning -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=gdb -v -fcoverage-compilation-dir=/usr/home/root/acpphint/acpphint_src -resource-dir /usr/lib/clang/16 -I ../other_src_used -D "CPPCLOCKINFO_VERS=\"acpphint_0.1.36\"" -internal-isystem /usr/include/c++/v1 -internal-isystem /usr/lib/clang/16/include -internal-externc-isystem /usr/include -O3 -Wpedantic -Wall -Wextra -pedantic -std=c++20 -fdeprecated-macro -fdebug-compilation-dir=/usr/home/root/acpphint/acpphint_src -ferror-limit 19 -pthread -fno-signed-char -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/cpp_clockinfo_main-bd1520.o -x c++ ../other_src_used/cpp_clockinfo_main.cpp
clang -cc1 version 16.0.6 based upon LLVM 16.0.6 default target aarch64-unknown-freebsd14.0
#include "..." search starts here:
#include <...> search starts here:
 ../other_src_used
 /usr/include/c++/v1
 /usr/lib/clang/16/include
 /usr/include
End of search list.
 "/usr/bin/ld.lld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-style=both --enable-new-dtags -o ../cpp_clockinfo_main-HoneyComb-65536MiB-threads_16-ILP32-FreeBSD_main_n264334_215bab7924f6_64bit-clang++_16_O3lto-libc++ /usr/lib32/crt1.o /usr/lib32/crti.o /usr/lib32/crtbegin.o -L/usr/lib32 -plugin-opt=mcpu=cortex-a7 -plugin-opt=O3 ../objs/cpp_thousandslocale-clang++_16_O3lto-libc++.o ../objs/cpp_clockinfo-clang++_16_O3lto-libc++.o /tmp/cpp_clockinfo_main-bd1520.o -lc++ -lm -lgcc --as-needed -lgcc_s --no-as-needed -lpthread -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib32/crtend.o /usr/lib32/crtn.o
ld.lld: error: undefined symbol: __muldf3
>>> referenced by cpp_clockinfo_main.cpp:153 (../other_src_used/cpp_clockinfo_main.cpp:153)
>>>               lto.tmp:(main::$_0::operator()(ClkInfo const&) const)
>>> did you mean: __muldc3
>>> defined in: /usr/lib32/libgcc_s.so

ld.lld: error: undefined symbol: __divdf3
>>> referenced by cpp_clockinfo_main.cpp:180 (../other_src_used/cpp_clockinfo_main.cpp:180)
>>>               lto.tmp:(main::$_0::operator()(ClkInfo const&) const)
>>> did you mean: __divdc3
>>> defined in: /usr/lib32/libgcc_s.so

ld.lld: error: undefined symbol: __ltdf2
>>> referenced by cpp_clockinfo_main.cpp:185 (../other_src_used/cpp_clockinfo_main.cpp:185)
>>>               lto.tmp:(main::$_0::operator()(ClkInfo const&) const)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make: stopped in /usr/home/root/acpphint/acpphint_src

===
Mark Millard
marklmi at yahoo.com