Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Bug in ARM Thumb inline asm?"
2018 Dec 04
2
Compiling for baremetal ARMv4 on Ubuntu Linux
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
2018 Dec 07
2
Compiling for baremetal ARMv4 on Ubuntu Linux
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
2018 Dec 10
2
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello again!
Tried out the small Hello World Setup, worked as intended:
root at christian-forschung-virtual-machine:/home/progs# clang -v
--target=arm-linux-gnueabihf hello.c -o hello -fuse-ld=lld
clang version 8.0.0 (https://git.llvm.org/git/clang.git/
a152c7a4b7ba8f4cb9532ead9a38a7121db43d50)
(https://git.llvm.org/git/llvm.git/
1959ce6f3e01241919968ac1911fd45660239d23)
Target:
2018 Dec 14
3
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello again Christian,
I've posted https://reviews.llvm.org/D55709 to see if we can get the
documentation on how to cross-compile compiler-rt improved. I'll be
out of office until next year so I may be a bit slow to respond to any
follow ups.
Peter
On Thu, 13 Dec 2018 at 17:10, Peter Smith <peter.smith at linaro.org> wrote:
>
> Hello Christian,
>
> I've just
2018 Dec 13
2
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello Peter and Lists,
thanks a lot, that way it worked out! The final cmake was
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
2020 Aug 03
2
LLD symbol types for defsym
I noticed that LLD doesn’t preserve the symbol type for a defsym directive. For example:
$ cat f.c
void f() {}
$ clang -c f.c
$ ld.lld -shared --defsym=g=f f.o
$ objdump -T a.out
DYNAMIC SYMBOL TABLE:
00000000000012a0 g DF .text 0000000000000006 f
00000000000012a0 g D .text 0000000000000000 g
f is marked as a function symbol, but g is not.
I recognize this is hard to do in the general
2019 Feb 04
2
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello Christian,
I've put some comments inline,
On Sun, 3 Feb 2019 at 13:11, Christian Richter
<christian.richter at hsu-hh.de> wrote:
>
> Hello again,
>
> so after I successfully build the compiler-rt for armv6 I tried to
> actually use it in compiling a small helloworld for a baremetal arm
> (consisting of barehelloCLANG.c and a small io.h + io.c) , but the
>
2019 Mar 04
2
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello Christian,
I'd expect that adding the library paths (-L) from gcc -v should fix
the unable to find -lc, -lm but it won't fix the
-lclang_rt.builtins-armv6m.a . To get clang_rt.builtins-armv6m.a you
will need to cross compile compiler-rt for v6m and copy it to
/usr/local/myclang/lib/clang/8.0.0/lib/baremetal . Beware that
building compiler-rt for v6m does need quite a bit of fighting
2019 Mar 11
2
Compiling for baremetal ARMv4 on Ubuntu Linux
Hello Christian,
I reran my script with a similar cmake command to yours. After the
build finished the following command from the build directory gave me:
find . -name \*builtins.a
./lib/clang/9.0.0/armv6m-none-eabi/lib/libclang_rt.builtins.a
./lib/clang/9.0.0/armv7m-none-eabi/lib/libclang_rt.builtins.a
./lib/clang/9.0.0/armv7em-none-eabi/lib/libclang_rt.builtins.a
I hope you see something like
2016 Sep 07
5
[LLD] Writing thunks before the corresponding section
Hi,
MIPS LA25 thunk is used to call PIC function from non-PIC code.
Usually it contains three instructions:
lui $25, %hi(func)
addiu $25, $25, %lo(func)
j func
We can write such thunk in an arbitrary place of the generated file.
But if a PIC function requires the thunk is the first routine in a
section, we can optimize the code and escape jump instruction. To do
so we just write the
2018 Mar 12
3
Cross-compiling for ARM Cortex-M3 on x86
Hi all,
I am trying to cross-compile my application for ARM Cortex-M3. Here's how
I'm doing it:
1, Get a pre-built GNU toolchain for ARM Cortex-M processors from
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
2, Create an object file for ARM:
clang -c -target arm-none-eabi -mcpu=cortex-m3 -mthumb -O3 -g
2016 May 03
4
Linux/ARM: Segfault issue when we build clang sources including __thread variable using -O2 flag
A few days ago, I tried to change the optimization flag from -O0 to -O2 to
speed up the execution of the application on Ubuntu/ARM 14.04 32 bit.
When I compiled the source code with -O2 flag instead of -O0 flag, I could
not run the application normally by getting always the segmentation fault.
Here is debugging information with GDB command in case of that. As you can
see, we could not execute
2006 Aug 21
5
[LLVMdev] selecting select_cc
I am trying to add support for select_cc. In ARM it can be implemented with:
mov $dst, $falseVal
cmp $a, $b
moveq $dst, $trueVal
My current strategy is to expand select_cc in two ARM nodes:
ARM::SELECT and ARM::CMP. The two nodes would be connected by a flag
edge.
ARM::CMP would then expand to "cmp $a, $b". This instruction has no
results. It only alters the CPSR (current program
2006 Aug 22
0
[LLVMdev] selecting select_cc
Hi Rafael,
> I am trying to add support for select_cc. In ARM it can be implemented
> with:
>
> mov $dst, $falseVal
> cmp $a, $b
> moveq $dst, $trueVal
The more normal ARM code, as produced by assembly writers and compilers
that I've seen, is
cmp $a, $b
moveq $dst, $trueVal
movne $dst, $falseVal
e.g. at the end of a function returning r0
orr r0, r0, #0x40
2012 Jun 29
0
[LLVMdev] Request for merge: GHC/ARM calling convention.
On 29 June 2012 17:46, Karel Gardas <karel.gardas at centrum.cz> wrote:
> Yes and no. Shortly: original GHC/ARM/LLVM port was done by Stephen on
> ARMv5/Qemu IIRC. I've later added whole VFP support and ARMv7 support. The
> code in GHC is properly #ifdefed, so if there is no VFP available on pre
> ARMv6, then it's not used. ie. GHC STG floating points regs are then
>
2012 Jun 29
2
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Renato,
On 06/25/12 12:13 AM, Renato Golin wrote:
> Hi Karel,
>
> I understand this patch has already been merged (to 3.0), so don't
> take my question as stopping the merge to head, I'm just making sure I
> got it right... The rest looks correct.
>
> + CCIfType<[v2f64], CCAssignToReg<[Q4, Q5]>>,
> + CCIfType<[f64], CCAssignToReg<[D8, D9,
2012 Jan 09
39
[PATCH v4 00/25] xen: ARMv7 with virtualization extensions
Hello everyone,
this is the fourth version of the patch series that introduces ARMv7
with virtualization extensions support in Xen.
The series allows Xen and Dom0 to boot on a Cortex-A15 based Versatile
Express simulator.
See the following announce email for more informations about what we
are trying to achieve, as well as the original git history:
See
2011 Dec 06
57
[PATCH RFC 00/25] xen: ARMv7 with virtualization extensions
Hello everyone,
this is the very first version of the patch series that introduces ARMv7
with virtualization extensions support in Xen.
The series allows Xen and Dom0 to boot on a Cortex-A15 based Versatile
Express simulator.
See the following announce email for more informations about what we
are trying to achieve, as well as the original git history:
See
2017 Oct 09
4
{ARM} IfConversion does not detect BX instruction as a branch
Hi all,
I got a silly bug when compiling our project with the latest Clang.
Here's the outputted assembly:
> tst r3, #255
> strbeq r6, [r7]
> ldreq r6, [r4, r6, lsl #2]
> strne r6, [r7, #4]
> ldr r6, [r4, r6, lsl #2]
> bx r6
For the code to execute correctly, either the _ldr_ should be a _ldrne_
instruction or the _ldreq_ instruction should be removed. The error
seems to
2017 Nov 01
2
[PATCH] pmu/fuc: don't use movw directly anymore
fixes compilation issues with recent envytools, because movw was removed
from fuc5, because it doesn't exist there anymore. The current code is
most likely broken for fuc5 hardware as well and might have triggered all
kinds of random memory reclocking fails.
Changes in fuc3 binaries are tue do opcode optimizations using shorter
opcodes when possible.
Signed-off-by: Karol Herbst <kherbst