[llvm-dev] Compiling for baremetal ARMv4 on Ubuntu Linux

Christian Richter via llvm-dev
Fri, 07 Dec 2018 15:47:54 -0000

Hello,

on the problems cross-building compiler-rt: Tried to follow
https://llvm.org/docs/HowToCrossCompileBuiltinsOnArm.html which lead to
this cmake:

cmake -G "Ninja" ../llvm/projects/compiler-rt/
-DCOMPILER_RT_BUILD_BUILTINS=ON -DCOMPILER_RT_BUILD_SANITIZERS=OFF
-DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
-DCOMPILER_RT_BUILD_PROFILE=OFF
-DCMAKE_C_COMPILER=/usr/local/myclang/bin/clang
-DCMAKE_AR=/usr/local/myclang/bin/llvm-ar
-DCMAKE_NM=/usr/local/myclang/bin/llvm-nm
-DCMAKE_RANLIB=/usr/local/myclang/bin/llvm-ranlib
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
-DCMAKE_C_COMPILER_TARGET="arm-linux-gnueabihf"
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
-DLLVM_CONFIG_PATH=/usr/local/myclang/bin/llvm-config
-DCMAKE_C_FLAGS="--target=arm-linux-gnueabihf -march=armv7a
--gcc-toolchain=/usr/arm-linux-gnueabihf
--sysroot=/usr/arm-linux-gnueabihf/lib"

Some small notes:

- Used -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY instead of
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" as Peter Smith suggested
because
it actually is a library and therefore does not need to be linked. If I
do not change that, the cmake does not work (see below).

- used -G "Ninja" although not explicitly stated in the tutorial as
they
use "ninja builtins" next.

- had to change --march=armv7a to -march=armv7a as clang did not accept
the first one.

the cmake was successful, but the ninja builtins was not (see both
outputs below). Am I doing the --gcc-toolchain / --sysroot part right?
These are just the places where the result of "apt install
arm-linux-gnueabihf" lives.

cmake output with -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld":

root at christian-forschung-virtual-machine:/home/llvm_all/buildrtonly#
cmake -G "Ninja" ../llvm/projects/compiler-rt/
-DCOMPILER_RT_BUILD_BUILTINS=ON -DCOMPILER_RT_BUILD_SANITIZERS=OFF
-DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
-DCOMPILER_RT_BUILD_PROFILE=OFF
-DCMAKE_C_COMPILER=/usr/local/myclang/bin/clang
-DCMAKE_AR=/usr/local/myclang/bin/llvm-ar
-DCMAKE_NM=/usr/local/myclang/bin/llvm-nm
-DCMAKE_RANLIB=/usr/local/myclang/bin/llvm-ranlib
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld"
-DCMAKE_C_COMPILER_TARGET="arm-linux-gnueabihf"
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
-DLLVM_CONFIG_PATH=/usr/local/myclang/bin/llvm-config
-DCMAKE_C_FLAGS="--target=arm-linux-gnueabihf -march=armv7a
--gcc-toolchain=/usr/arm-linux-gnueabihf
--sysroot=/usr/arm-linux-gnueabihf/lib"
-- The C compiler identification is Clang 8.0.0
-- The CXX compiler identification is Clang 8.0.0
-- The ASM compiler identification is unknown
-- Found assembler: /usr/local/myclang/bin/clang
-- Check for working C compiler: /usr/local/myclang/bin/clang
-- Check for working C compiler: /usr/local/myclang/bin/clang -- broken
CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52
(message):
   The C compiler

     "/usr/local/myclang/bin/clang"

   is not able to compile a simple test program.

   It fails with the following output:

     Change Dir: /home/llvm_all/buildrtonly/CMakeFiles/CMakeTmp

     Run Build Command:"/usr/bin/ninja" "cmTC_22d97"
     [1/2] Building C object CMakeFiles/cmTC_22d97.dir/testCCompiler.c.o
     [2/2] Linking C executable cmTC_22d97
     FAILED: cmTC_22d97
     : && /usr/local/myclang/bin/clang --target=arm-linux-gnueabihf
--target=arm-linux-gnueabihf -march=armv7a
--gcc-toolchain=/usr/arm-linux-gnueabihf
--sysroot=/usr/arm-linux-gnueabihf/lib  -fuse-ld=lld
CMakeFiles/cmTC_22d97.dir/testCCompiler.c.o  -o cmTC_22d97 && :
     ld.lld: error: cannot open crt1.o: No such file or directory
     ld.lld: error: cannot open crti.o: No such file or directory
     ld.lld: error: cannot open crtbegin.o: No such file or directory
     ld.lld: error: unable to find library -lgcc
     ld.lld: error: unable to find library -lgcc_s
     ld.lld: error: unable to find library -lc
     ld.lld: error: unable to find library -lgcc
     ld.lld: error: unable to find library -lgcc_s
     ld.lld: error: cannot open crtend.o: No such file or directory
     ld.lld: error: cannot open crtn.o: No such file or directory
     clang-8: error: linker command failed with exit code 1 (use -v to
see invocation)
     ninja: build stopped: subcommand failed.

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
   CMakeLists.txt:10 (project)
-- Configuring incomplete, errors occurred!
See also "/home/llvm_all/buildrtonly/CMakeFiles/CMakeOutput.log".
See also "/home/llvm_all/buildrtonly/CMakeFiles/CMakeError.log".


Note: Googling this error suggested installing gcc-multilib or linking
"sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64" (which both did not
fix it). But the crt1.o that lld does not seem to find is probably the
one from arm-linux-gnueabihf, right? "Locate" says it's right in
/usr/arm-linux-gnueabihf/lib.

Thanks so far!

Christian


cmake output with STATIC_LIBRARY:

-- The C compiler identification is Clang 8.0.0
-- The CXX compiler identification is Clang 8.0.0
-- The ASM compiler identification is Clang
-- Found assembler: /usr/local/myclang/bin/clang
-- Check for working C compiler: /usr/local/myclang/bin/clang
-- Check for working C compiler: /usr/local/myclang/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: /usr/local/myclang/bin/clang++
-- Check for working CXX compiler: /usr/local/myclang/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for unwind.h
-- Looking for unwind.h - found
-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.15")
-- Looking for fopen in c
-- Looking for fopen in c - found
-- Looking for __gcc_personality_v0 in gcc_s
-- Looking for __gcc_personality_v0 in gcc_s - found
-- Performing Test COMPILER_RT_HAS_NODEFAULTLIBS_FLAG
-- Performing Test COMPILER_RT_HAS_NODEFAULTLIBS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FFREESTANDING_FLAG
-- Performing Test COMPILER_RT_HAS_FFREESTANDING_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FPIC_FLAG
-- Performing Test COMPILER_RT_HAS_FPIC_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FPIE_FLAG
-- Performing Test COMPILER_RT_HAS_FPIE_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG
-- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FUNWIND_TABLES_FLAG
-- Performing Test COMPILER_RT_HAS_FUNWIND_TABLES_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG
-- Performing Test COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FRTTI_FLAG
-- Performing Test COMPILER_RT_HAS_FRTTI_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_RTTI_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_RTTI_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_STD_CXX11_FLAG
-- Performing Test COMPILER_RT_HAS_STD_CXX11_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC
-- Performing Test COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC - Success
-- Performing Test COMPILER_RT_HAS_FNO_LTO_FLAG
-- Performing Test COMPILER_RT_HAS_FNO_LTO_FLAG - Success
-- Performing Test COMPILER_RT_HAS_MSSE3_FLAG
-- Performing Test COMPILER_RT_HAS_MSSE3_FLAG - Success
-- Performing Test COMPILER_RT_HAS_MSSE4_2_FLAG
-- Performing Test COMPILER_RT_HAS_MSSE4_2_FLAG - Success
-- Performing Test COMPILER_RT_HAS_SYSROOT_FLAG
-- Performing Test COMPILER_RT_HAS_SYSROOT_FLAG - Success
-- Performing Test COMPILER_RT_HAS_MCRC_FLAG
-- Performing Test COMPILER_RT_HAS_MCRC_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -
Success
-- Performing Test COMPILER_RT_HAS_GR_FLAG
-- Performing Test COMPILER_RT_HAS_GR_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_GS_FLAG
-- Performing Test COMPILER_RT_HAS_GS_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_MT_FLAG
-- Performing Test COMPILER_RT_HAS_MT_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_Oy_FLAG
-- Performing Test COMPILER_RT_HAS_Oy_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG
-- Performing Test COMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG - Success
-- Performing Test COMPILER_RT_HAS_G_FLAG
-- Performing Test COMPILER_RT_HAS_G_FLAG - Success
-- Performing Test COMPILER_RT_HAS_Zi_FLAG
-- Performing Test COMPILER_RT_HAS_Zi_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WALL_FLAG
-- Performing Test COMPILER_RT_HAS_WALL_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WERROR_FLAG
-- Performing Test COMPILER_RT_HAS_WERROR_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WFRAME_LARGER_THAN_FLAG
-- Performing Test COMPILER_RT_HAS_WFRAME_LARGER_THAN_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG
-- Performing Test COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WC99_EXTENSIONS_FLAG
-- Performing Test COMPILER_RT_HAS_WC99_EXTENSIONS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WGNU_FLAG
-- Performing Test COMPILER_RT_HAS_WGNU_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WNON_VIRTUAL_DTOR_FLAG
-- Performing Test COMPILER_RT_HAS_WNON_VIRTUAL_DTOR_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WVARIADIC_MACROS_FLAG
-- Performing Test COMPILER_RT_HAS_WVARIADIC_MACROS_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WUNUSED_PARAMETER_FLAG
-- Performing Test COMPILER_RT_HAS_WUNUSED_PARAMETER_FLAG - Success
-- Performing Test COMPILER_RT_HAS_WCOVERED_SWITCH_DEFAULT_FLAG
-- Performing Test COMPILER_RT_HAS_WCOVERED_SWITCH_DEFAULT_FLAG - Success
-- Performing Test COMPILER_RT_HAS_W4_FLAG
-- Performing Test COMPILER_RT_HAS_W4_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WX_FLAG
-- Performing Test COMPILER_RT_HAS_WX_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4146_FLAG
-- Performing Test COMPILER_RT_HAS_WD4146_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4291_FLAG
-- Performing Test COMPILER_RT_HAS_WD4291_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4221_FLAG
-- Performing Test COMPILER_RT_HAS_WD4221_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4391_FLAG
-- Performing Test COMPILER_RT_HAS_WD4391_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4722_FLAG
-- Performing Test COMPILER_RT_HAS_WD4722_FLAG - Failed
-- Performing Test COMPILER_RT_HAS_WD4800_FLAG
-- Performing Test COMPILER_RT_HAS_WD4800_FLAG - Failed
-- Looking for __func__
-- Looking for __func__ - found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Looking for shm_open in rt
-- Looking for shm_open in rt - found
-- Looking for pow in m
-- Looking for pow in m - found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for setupterm in terminfo
-- Looking for setupterm in terminfo - found
-- Looking for __cxa_throw in c++
-- Looking for __cxa_throw in c++ - found
-- Looking for __cxa_throw in stdc++
-- Looking for __cxa_throw in stdc++ - found
-- Compiler-RT supported architectures: armhf
-- Performing Test COMPILER_RT_HAS_STD_C11_FLAG
-- Performing Test COMPILER_RT_HAS_STD_C11_FLAG - Success
-- Performing Test COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG
-- Performing Test COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG - Success
-- Performing Test COMPILER_RT_HAS_OMIT_FRAME_POINTER_FLAG
-- Performing Test COMPILER_RT_HAS_OMIT_FRAME_POINTER_FLAG - Success
-- Performing Test COMPILER_RT_HAS_FREESTANDING_FLAG
-- Performing Test COMPILER_RT_HAS_FREESTANDING_FLAG - Success
-- Performing Test COMPILER_RT_HAS_XRAY_COMPILER_FLAG
-- Performing Test COMPILER_RT_HAS_XRAY_COMPILER_FLAG - Success
-- Performing Test COMPILER_RT_HAS_ATOMIC_KEYWORD
-- Performing Test COMPILER_RT_HAS_ATOMIC_KEYWORD - Success
-- Builtin supported architectures: armhf
-- Looking for __VFP_FP__
-- Looking for __VFP_FP__ - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/llvm_all/buildrtonly

--------------------------------------

ninja output:


root at christian-forschung-virtual-machine:/home/llvm_all/buildrtonly#
ninja builtins

[1/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapsi2.S.o
FAILED:
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapsi2.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapsi2.S.o -MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapsi2.S.o.d
-o lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapsi2.S.o
-c /home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S:12:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S:25:3:
error: invalid instruction mnemonic 'eor'
   eor r1, r0, r0, ror #16
   ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S:26:15:
error: unknown token in expression
   bic r1, r1, #0xff0000
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S:27:3:
error: unknown use of instruction mnemonic without a size suffix
   mov r1, r1, lsr #8
   ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapsi2.S:28:3:
error: invalid instruction mnemonic 'eor'
   eor r0, r1, r0, ror #8
   ^~~
[2/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapdi2.S.o
FAILED:
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapdi2.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapdi2.S.o -MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapdi2.S.o.d
-o lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/bswapdi2.S.o
-c /home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:12:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:26:5:
error: invalid instruction mnemonic 'eor'
     eor r2, r0, r0, ror #16
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:27:17:
error: unknown token in expression
     bic r2, r2, #0xff0000
                 ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:28:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r2, r2, lsr #8
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:29:5:
error: invalid instruction mnemonic 'eor'
     eor r2, r2, r0, ror #8
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:31:5:
error: invalid instruction mnemonic 'eor'
     eor r0, r1, r1, ror #16
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:32:17:
error: unknown token in expression
     bic r0, r0, #0xff0000
                 ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:33:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r0, r0, lsr #8
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:34:5:
error: invalid instruction mnemonic 'eor'
     eor r0, r0, r1, ror #8
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/bswapdi2.S:39:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r1, r2
     ^
[3/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/comparesf2.S.o
FAILED:
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/comparesf2.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/comparesf2.S.o
-MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/comparesf2.S.o.d
-o
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/comparesf2.S.o
-c /home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:41:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:45:1:
error: unexpected token at start of statement
@ int __eqsf2(float a, float b)
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:50:5:
error: invalid operand for instruction
     vmov r0, s0
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:51:5:
error: invalid operand for instruction
     vmov r1, s1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:53:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r2, r0, lsl #1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:54:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r3, r1, lsl #1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:56:5:
error: invalid instruction mnemonic 'orrs'
     orrs r12, r2, r3, lsr #1
     ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:58:5:
error: invalid instruction mnemonic 'it'
     it ne
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:59:5:
error: invalid instruction mnemonic 'eorsne'
     eorsne r12, r0, r1
     ^~~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:61:5:
error: invalid instruction mnemonic 'it'
     it pl
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:62:5:
error: invalid instruction mnemonic 'subspl'
     subspl r0, r2, r3
     ^~~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:64:5:
error: invalid instruction mnemonic 'it'
     it lo
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:65:5:
error: invalid instruction mnemonic 'mvnlo'
     mvnlo r0, r1, asr #31
     ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:67:5:
error: invalid instruction mnemonic 'it'
     it hi
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:68:5:
error: invalid instruction mnemonic 'movhi'
     movhi r0, r1, asr #31
     ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:70:5:
error: invalid instruction mnemonic 'it'
     it ne
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:71:19:
error: unknown token in expression
     orrne r0, r0, #1
                   ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:167:13:
error: unknown token in expression
     cmp r2, #0xff000000
             ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:168:5:
error: invalid instruction mnemonic 'ite'
     ite ls
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:169:15:
error: unknown token in expression
     cmpls r3, #0xff000000
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:170:15:
error: unknown token in expression
     movhi r0, #1
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:179:1:
error: unexpected token at start of statement
@ int __gtsf2(float a, float b)
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:188:5:
error: invalid operand for instruction
     vmov r0, s0
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:189:5:
error: invalid operand for instruction
     vmov r1, s1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:191:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r2, r0, lsl #1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:192:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r3, r1, lsl #1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:193:5:
error: invalid instruction mnemonic 'orrs'
     orrs r12, r2, r3, lsr #1
     ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:194:5:
error: invalid instruction mnemonic 'it'
     it ne
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:195:5:
error: invalid instruction mnemonic 'eorsne'
     eorsne r12, r0, r1
     ^~~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:196:5:
error: invalid instruction mnemonic 'it'
     it pl
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:197:5:
error: invalid instruction mnemonic 'subspl'
     subspl r0, r2, r3
     ^~~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:198:5:
error: invalid instruction mnemonic 'it'
     it lo
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:199:5:
error: invalid instruction mnemonic 'mvnlo'
     mvnlo r0, r1, asr #31
     ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:200:5:
error: invalid instruction mnemonic 'it'
     it hi
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:201:5:
error: invalid instruction mnemonic 'movhi'
     movhi r0, r1, asr #31
     ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:202:5:
error: invalid instruction mnemonic 'it'
     it ne
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:203:19:
error: unknown token in expression
     orrne r0, r0, #1
                   ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:204:13:
error: unknown token in expression
     cmp r2, #0xff000000
             ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:205:5:
error: invalid instruction mnemonic 'ite'
     ite ls
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:206:15:
error: unknown token in expression
     cmpls r3, #0xff000000
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:207:15:
error: unknown token in expression
     movhi r0, #-1
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:214:1:
error: unexpected token at start of statement
@ int __unordsf2(float a, float b)
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:220:5:
error: invalid operand for instruction
     vmov r0, s0
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:221:5:
error: invalid operand for instruction
     vmov r1, s1
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:224:18:
error: unknown token in expression
     lsls r2, r0, #1
                  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:225:18:
error: unknown token in expression
     lsls r3, r1, #1
                  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:226:14:
error: unknown token in expression
     movs r0, #0
              ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:277:13:
error: unknown token in expression
     cmp r2, #0xff000000
             ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:278:5:
error: invalid instruction mnemonic 'ite'
     ite ls
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:279:15:
error: unknown token in expression
     cmpls r3, #0xff000000
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:280:15:
error: unknown token in expression
     movhi r0, #1
               ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:287:2:
error: invalid operand for instruction
  vmov s0, r0
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:288:2:
error: invalid operand for instruction
  vmov s1, r1
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/comparesf2.S:289:2:
error: invalid instruction mnemonic 'b'
  b __unordsf2
  ^
[4/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzsi2.S.o
FAILED: lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzsi2.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzsi2.S.o -MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzsi2.S.o.d -o
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzsi2.S.o -c
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:16:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:33:2:
error: unknown use of instruction mnemonic without a size suffix
  mov r1, 1
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:35:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:35:19:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
                   ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:35:33:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
                                 ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:36:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:36:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:36:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:37:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:37:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:37:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:38:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:38:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:38:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzsi2.S:40:2:
error: unknown use of instruction mnemonic without a size suffix
  sub r0, r1, r0, lsr #1
  ^
[5/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzdi2.S.o
FAILED: lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzdi2.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzdi2.S.o -MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzdi2.S.o.d -o
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/clzdi2.S.o -c
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:16:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:50:2:
error: unknown use of instruction mnemonic without a size suffix
  cmp r1, 0
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:51:2:
error: invalid instruction mnemonic 'movne'
  movne r0, r1
  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:53:2:
error: invalid instruction mnemonic 'movne'
  movne r1, 1
  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:54:2:
error: invalid instruction mnemonic 'moveq'
  moveq r1, 33
  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:56:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:56:19:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
                   ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:56:33:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 16; movne r0, r2; addeq r1, 16
                                 ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:57:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:57:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:57:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 8; movne r0, r2; addeq r1, 8
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:58:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:58:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:58:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 4; movne r0, r2; addeq r1, 4
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:59:2:
error: invalid instruction mnemonic 'lsrs'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
  ^~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:59:18:
error: invalid instruction mnemonic 'movne'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
                  ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:59:32:
error: invalid instruction mnemonic 'addeq'
  lsrs r2, r0, 2; movne r0, r2; addeq r1, 2
                                ^~~~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/clzdi2.S:61:2:
error: unknown use of instruction mnemonic without a size suffix
  sub r0, r1, r0, lsr #1
  ^
[6/207] Building ASM object
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/divmodsi4.S.o
FAILED:
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/divmodsi4.S.o
/usr/local/myclang/bin/clang -DVISIBILITY_HIDDEN  -fno-lto -std=c11
-fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer
-fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET -MD -MT
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/divmodsi4.S.o
-MF
lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/divmodsi4.S.o.d
-o lib/builtins/CMakeFiles/clang_rt.builtins-armhf.dir/arm/divmodsi4.S.o
-c /home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:24:2:
error: unknown directive
  .syntax unified
  ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:28:1:
error: unexpected token at start of statement
@ int __divmodsi4(int divident, int divisor, int *remainder)
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:29:1:
error: unexpected token at start of statement
@ Calculate the quotient and remainder of the (signed) division. The return
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:30:1:
error: unexpected token at start of statement
@ value is the quotient, the remainder is placed in the variable.
^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:46:11:
error: Invalid rounding mode.
     push {r4-r7, lr} ; add r7, sp, #12
           ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:46:36:
error: unknown token in expression
     push {r4-r7, lr} ; add r7, sp, #12
                                    ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:49:5:
error: invalid instruction mnemonic 'eor'
     eor r4, r0, r1
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:50:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r5, r0
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:51:5:
error: unknown use of instruction mnemonic without a size suffix
     mov r6, r2
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:53:5:
error: invalid instruction mnemonic 'eor'
     eor ip, r0, r0, asr #31
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:54:5:
error: invalid instruction mnemonic 'eor'
     eor lr, r1, r1, asr #31
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:55:5:
error: unknown use of instruction mnemonic without a size suffix
     sub r0, ip, r0, asr #31
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:56:5:
error: unknown use of instruction mnemonic without a size suffix
     sub r1, lr, r1, asr #31
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:58:5:
error: invalid instruction mnemonic 'bl'
     bl __udivmodsi4
     ^~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:60:5:
error: invalid instruction mnemonic 'ldr'
     ldr r1, [r6]
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:61:5:
error: invalid instruction mnemonic 'eor'
     eor r0, r0, r4, asr #31
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:62:5:
error: invalid instruction mnemonic 'eor'
     eor r1, r1, r5, asr #31
     ^~~
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:63:5:
error: unknown use of instruction mnemonic without a size suffix
     sub r0, r0, r4, asr #31
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:64:5:
error: unknown use of instruction mnemonic without a size suffix
     sub r1, r1, r5, asr #31
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:65:5:
error: unknown use of instruction mnemonic without a size suffix
     str r1, [r6]
     ^
/home/llvm_all/llvm/projects/compiler-rt/lib/builtins/arm/divmodsi4.S:66:10:
error: Invalid rounding mode.
     pop {r4-r7, pc}










On 04.12.2018 15:54, Peter Smith via llvm-dev wrote:
> Hello,
>
> Just a few quick observations.
> - It looks like you may have downloaded the linux arm toolchain. For
> bare metal you probably wanted the Arm embedded toolchain,
> https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
> -- That toolchain will have newlib rather than glibc, I don't know
> whether it will have one pre-compiled for v4 though. If not you may
> have to find an older toolchain or build newlib youtself.
> - The bare-metal driver in clang (arm-none-eabi) is not multilib aware
> and won't put the paths to the libraries on the link line, the -L flag
> -- I have found that following the samples in the gnu embedded
> toolchain with gcc using the -v flag to get the paths it is using,
> then use these with lld.
>
> If you can let us know what problems you are seeing building
> compiler-rt then we may be able to help. I'm not sure there is anyone
> building it for arm v4 so you may be hitting new problems. I'm away at
> a conference today and tomorrow but I can try later in the week.
>
> Peter
>
> On Tue, 4 Dec 2018 at 12:21, cscheuer via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at
lists.llvm.org>> wrote:
>
>     I am currently trying to compile a pretty simple program to work
>     on an
>     experimental board. It contains an (FPGA-version of) an ARMv4
>     processor.
>     So basically, I try this (on my Ubuntu 18.04.1 LTS):
>     clang -v --target=arm-none-eabi -c barehello.c -o barehelloCLANG.o
>     clang -v --target=arm-none-eabi -c io.c -o io.o
>     clang -v --target=arm-none-eabi barehelloCLANG.o io.o -o
>     helloCLANGstatic -static -fuse-ld=lld
>
>     Which results in
>
>     clang version 8.0.0 (https://git.llvm.org/git/clang.git/
>     a152c7a4b7ba8f4cb9532ead9a38a7121db43d50)
>     (https://git.llvm.org/git/llvm.git/
>     1959ce6f3e01241919968ac1911fd45660239d23)
>     Target: arm-none-unknown-eabi
>     Thread model: posix
>     InstalledDir: /usr/local/my_clang/bin
>       "/usr/local/my_clang/bin/ld.lld" barehelloCLANG.o io.o
-Bstatic
>     -L/usr/local/my_clang/lib/clang/8.0.0/lib/baremetal -lc -lm
>     -lclang_rt.builtins-arm.a -o helloCLANGstatic
>     ld.lld: error: unable to find library -lc
>     ld.lld: error: unable to find library -lm
>     ld.lld: error: unable to find library -lclang_rt.builtins-arm.a
>     clang-8: error: ld.lld command failed with exit code 1 (use -v to see
>     invocation)
>
>     on the linking part. I downloaded a sysroot from
>
https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads/8-2-2018-08
>
>     and tried to include it via --sysroot=/my/path/to/it, but clang acted
>     unimpressed with the same errors. So I'm missing
>     clang_rt.builtins-arm.a
>     I guess, but that does not exist on my system.
>     So next, I tried basically every version of "how to cross-compile
>     llvm/clang/compiler-rt" That google came up with, but was not able
to
>     get a single one to actually work. Any ideas how to get this running?
>     Thanks in advance!
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20181207/a0b40011/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: christian_richter.vcf
Type: text/x-vcard
Size: 246 bytes
Desc: not available
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20181207/a0b40011/attachment-0001.vcf>